SQL Server Denali: column store index

Oopps! Upgrade your browser pretty please. Oopps! Upgrade your browser pretty please.

I nästa version av SQL server, codename Denali, så har Microsoft lagt till en ny typ av index, column store index,  som är värdefull i Datawarehouse lösningar. I andra typer av index så sparas datat i rader i ett så kallat B-tree, men i column store index så sparas datat kolumnvis.

En fördelen med denna typ av index är att komprimeringsalgoritmerna kan komprimera datat mycket bättre och på så vis minskas mängden IO operationer som behövs vid läsning av stora datamängder. En annan fördel med column store index är att i datawarehouse lösningar så har man oftast väldigt många kolumner i faktatabellerna (och väldigt många rader), men att i en rapport eller i en analys kanske man använder 10- 15% av alla kolumnerna och eftersom datat är lagrat kolumnvis så behöver inte hela raden läsas vilket reducerar IO med 85 – 90%.

När IO flaskhalsen reduceras så ökar belastningen på CPU vilket kan orsaka en ny flaskhals i CPU:n, men för att reducera detta så har Microsoft lagt till batch mode processing som ökar prestandan i joinar, aggregeringar och i filtrering. Efter att ett column store index har skapats så kan man inte längre uppdatera, lägga till eller radera poster i tabellen och man får antingen ta bort indexet och skapa om efter uppdateringen, eller använda sig av “fast partition switching” för att lägga till nya rader.

Vill du veta mer om nyheterna i SQL server Denali så är du välkommen att kontakta någon av våra SQL server konsulter så berättar vi gärna mer.