Columnstore Index Compression in a Nutshell
summary
Describes how SQL Server stores analytic data in rowgroups (up to 2^20 ≈ 1M rows) with one column per segment compressed separately, using dictionary and value encoding, then reorders rows with vertipack optimization and applies xVelocity run‑length or bit‑array compression. Demonstrates DMVs (sys.column_store_segments, sys.column_store_dictionaries) to inspect sizes, shows the 16 MB dictionary limit that can split rowgroups, cites typical compression of 10–30:1 and occasional 100:1, and notes rebuilds vs memory‑optimized tradeoffs.
AI-written summary · about
chapters (10)
- 0:00Introduction to speaker
- 1:00Columnstore index basics
- 2:43Fundamentals of compression
- 3:56Dictionary encoding process
- 5:57Value encoding
- 7:48Vertipaq optimization
- 10:01Physical compression methods
- 12:30Optimizing for compression
- 14:55DMV monitoring demonstration
- 18:33Conclusion and Q&A
related talks
20mColumnstore Index Compression in a Nutshell
20mColumnstore Index Compression in a Nutshell
59mIndex Internals: RowStore, ColumnStore, and NoStore!
01h 00mColumnar DBMS: The Magic of Data Compression and Super-Fast Queries
34mIn core compression-How to shrink your database
50mQuery Store Best Practices
50mQuery Store Best Practices
50mTime Series with SQL Server 2022
