Author Archives: Robert Haken

About Robert Haken

Software Architect, Founder at HAVIT, Microsoft MVP - ASP.NET/IIS

My upgrade from Lenovo X1 Carbon 4gen to 6gen

Image result for lenovo x1 carbon 6th generation

My Confguration (20KH006MMC)

  • Intel Core i7 8550U Kaby Lake Refresh (Intel UHD Graphics 620)
  • 14″ LED 2560×1440 IPS HDR antireflex, 500 nits
  • RAM 16GB LPDDR3
  • 1TB SSD (M.2 PCIe NVMe)
  • 4G LTE

First Impressions

My first impressions of 6th gen in comparison to 4th gen:

  • The X1 Carbon 6gen looks great, the quality is almost perfect.
  • It is a little bit smaller and super-light (1,2kg).
  • The display is glossy. I usually prefer matte, but this one seems to be exceptional. It looks much more “bright”, although the red color is weird (over-saturated?).
  • It has rubber/soft texture (for me already known from my former T440s – looks good but is difficult to maintain + the edges will probably get bare soon).
  • The keyboard is softer and does not make any weird noises (MyX1-4gen produced rattling noises when typing). The typing seems to be more comfortable than the X1-4gen. The keyboard rattling was in fact the major deficiency I had with 4gen.
  • It produces more heat. Noticeably less comfortable to have it on a lap.
  • The 6gen battery gets exhausted pretty quickly. No improvement in comparison to 4gen.
  • Wake-up from sleep is pretty quick. It is ready right as you open the lid.
  • In Sleep mode it stays quite warm (= consumes battery).

Sleep Mode

Well, the last two items seems to be interconnected. The X1 6gen comes with so called “Standby (S0 Low Power Idle) Network Connected” power profile which keeps the notebook half-alive (able to download updates etc.). After switching the Sleep mode to S3 (switch sleep mode from “Windows 10” to “Linux” in BIOS) it is cold during Sleep. The wake-up is a little bit slower in S3 than in S0, but still pretty fast.

SQL: Index statistics update date

Simple query can help you get basic insights on when the index statistics where updated:

SELECT
		o.name AS TableName,
		i.name AS IndexName,
		STATS_DATE(i.object_id, i.index_id) AS StatisticsUpdate
	FROM sys.objects o
		INNER JOIN sys.indexes i ON (o.object_id = i.object_id)
	WHERE
		(i.type > 0)
		AND (o.type_desc NOT IN ('INTERNAL_TABLE', 'SYSTEM_TABLE'))
	ORDER BY TableName, IndexName
	-- ORDER BY StatisticsUpdate

See also:

SQL LocalDB: Upgrade to 2017 (14.0.1000)

For me it was quite confusing to find the 2017 version of LocalDB and it is not a streamline process to upgrade your local default instance. The link for “SQL Server 2017 Express LocalDB” on official website (https://www.microsoft.com/en-us/sql-server/sql-server-editions-express) leads to “SQLServer2016-SSEI-Expr.exe” which runs a SQL Server 2016 with SP2 installer. Now what?

The easiest way to upgrade your LocalDB instance to 2017 is:

  1. Download the LocalDB 2017 installer directly:
    https://download.microsoft.com/download/E/F/2/EF23C21D-7860-4F05-88CE-39AA114B014B/SqlLocalDB.msi
  2. Before running the installer, delete your current MSSQLLocalDB instance:
    sqllocaldb stop MSSQLLocalDB
    sqllocaldb delete MSSQLLocalDB
    
  3. Run the LocalDB 2017 installer. It will create a new MSSQLLocalDB instance.
  4. [OPTIONAL] If you did not delete the older instance before running the installer, you can delete it now and recreate the instance. It will be created as new version:
    sqllocaldb stop MSSQLLocalDB
    sqllocaldb delete MSSQLLocalDB
    sqllocaldb create MSSQLLocalDB
    
  5. Now you can re-attach your original databases using SQL Server Management Studio (RClick + Attach…)
  6. Done.

Credits: