The Clustered Columnstore Index feature allows users to column-order data in SQL Server. Because the data is stored and compressed by column rather than row, users achieve better performance. Microsoft claims it offers performance 10 times faster than to row-oriented storage, while data compression can be seven times faster than uncompressed data. Microsoft also notes:
“For example, columnstore indexes improve data compression and query performance for data warehousing workloads that primarily perform bulk loads and read-only queries. Since the clustered columnstore index is updateable, the workload can perform some insert, update, and delete operations. … [W]e view the clustered columnstore index as the standard for storing large data warehousing fact tables, and expect it will be used in most data warehousing scenarios.”
Although this feature existed in SQL Server 2012, its use was restricted. What changed? The new software features a new storage engine that allows the table to execute data manipulation language operations normally.
“Just like a normal clustered index, a clustered columnstore index defines how the data is physically stored on the disc. A columnstore backed table is initially organized into segments known as row groups. Each rowgroup holds from 102,400 to 1,048,576 rows. Once a rowgroup is identified it is broken up into column segments, which are then compressed and inserted into the actual columnstore.”
Arshad Ali, writing in Database Journal, walks through several possible use scenarios for the feature, including showing readers performance testing options to check the claims for themselves.
There are some limitations, observes Allen:
“Unlike the previous version of columnstore indexes, the clustered version must include all columns in the table. This is because there is no other heap or clustered index to fall back on for the rest of the row. In fact, clustered columnstore indexes cannot be combined with other types of indexes at all.”
Those wanting to learn more about the enhanced columnstore indexes had several opportunities to attend workshop sessions devoted to the subject at SQL Pass Summit 2013, held earlier this month. Some of Datavail employees attended these sessions to gain an edge.
How will you use columnstore indexes? What insights or information did you take away from SQL Pass Summit 2013? Let us know by adding your comment to the discussion.
Of course, we at Datavail can apply our expertise with SQL Server to a wide variety of issues you may have, including performance tuning. Contact us to discuss your organization’s specific needs.
Image by Rafael Saldana/ikarusmedia.
Subscribe to Our Blog
Never miss a post! Stay up to date with the latest database, application and analytics tips and news. Delivered in a handy bi-weekly update straight to your inbox. You can unsubscribe at any time.
Most people will encounter this error when their application tries to connect to an Oracle database service, but it can also be raised by one database instance trying to connect to another database service via a database link.