Microsoft Columnstore Indexes

Een "columnstore" index bnnen SQL Server 2012 slaat elke kolom in een afzonderlijke reeks disk pages op, in tegenstelling tot het opslaan van meerdere rijen per disk page zoals op traditionele manier wordt opgeslagen.

Voordelen hiervan zijn:

  • Alleen de kolommen nodig om een ??zoekopdracht uit te voeren worden opgehaald op schijf (vaak minder dan 15% van de kolommen in een typische feiten-tabel)
  • Het is makkelijker om de data te comprimeren vanwege de redundantie binnen een kolom
  • Buffer cache hit rates worden verbeterd omdat de gegevens sterk gecomprimeerd zijn en vaak geraadpleegde delen van veel gebruikte kolommen blijven in het geheugen, terwijl zelden gebruikte onderdelen verdwijnen uit de cache
  • Gemiddeld verbetert dit de query performantie met een factor van 10 in vergelijking met traditionele row based indexen

Er is echter één beperking met columnstore indexen binnnen Microsoft SQL Server 2012. Je kan tabellen met een "columnstore" index niet direct updaten met INSERT, UPDATE, DELETE en MERGE statements, of met bulk load handelingen. Om gegevens te laden in een tabel met columnstore index, moet de index eerst verwijderd worden vooraleer u de data in de tabel laadt en vervolgens de index opnieuw aanmaken. Dit kan behoorlijk lang duren als je zeer grote tabellen hebt. Men kan gebruik maken van "partities" om dit probleem op te lossen en de columnstore index alleen uitschakelen op de nieuwe partitie die u zojuist hebt gemaakt.

"Columnstore" indexen zijn van groot nut zal in een Data Warehouse omgeving. Het zal de tijd, besteed aan query performantie optimalisatie en de noodzaak om extra geaggregeerde tabellen te maken, verminderen. Deze functionaliteit zal waarschijnlijk een hernieuwde belangstelling voor relationele rapporteringsoplossingen creëren en het ook de prestaties en het gebruik van de onderste lagen van de data warehouse-architectuur verbeteren.

We kunnen alleen maar betreuren dat de columnstore index optie geen deel uitmaakt van de SQL Server Business Intelligence versie (in termen van de licensering), ook al zal het intensief worden gebruikt door Business Intelligence applicaties. U moet de Enterprise License van SQL Server 2012 kopen om gebruik te kunnen maken van de columnstore index.