SQL 2016 - It Just Runs Faster: Column Store Uses Vector Instructions (SSE/AVX)

SQL Server's Column Store feature is designed to accommodate large amounts of data and associated compression capabilities. Microsoft studied numerous data layouts associated with column store and the CPU instructions required to process that data. Various algorithms have been optimized throughout the column store code base.

 

A specific, SQL Server 2016 enhancement is the use of vector based hardware capabilities. When compressing, building dictionaries and processing data a vectored design is leveraged. SQL Server 2016 detects the level of CPU support for the following extensions and when supported SQL Server 2016 takes full advantage of the hardware scalability and performance capabilities.

 

SQL Server uses the order of the following list to select the hardware extension.

 

  1. AVX 2 (Advanced Vector Extensions)
  2. SSE 4 (Streaming SIMD Extensions 4)
  3. AVX and SSE are not supported: Software based, using common CPU instruction set

 

'It Just Runs Faster' - SQL Server 2016 detects the CPU capabilities for AVX or SSE and leverages the hardware, based vector capabilities to improve scalability and performance.

 

Bob Dorr - Principal SQL Server Software Engineer