Domanda

Ho una tabella con ~ 200 milioni di righe e colonne ~ 15 in esso. Sto progettando di creare un indice COLUMNSTORE sul mio tavolo.

Ci sarà alcun cambiamento nelle prestazioni in base all'ordine di colonne che uso nell'indice columnstore? Se sì, qual è la logica dietro di esso?

È stato utile?

Soluzione

No, l'ordine non importa. Ogni colonna è considerato singolarmente.

Dal team di SQL Server (enfasi aggiunta):

In genere si consiglia di mettere tutte le colonne nella tabella nell'indice columnstore. Non importa quale ordine si elencano le colonne a causa di un indice columnstore non dispone di una chiave come un B-tree indice fa. Internamente, i dati saranno ri-ordinati automaticamente per ottenere la migliore compressione.

Altri suggerimenti

ordine non importa, ciò che conta se che si dovrebbe includere tutte le colonne della tabella di base dell'indice columnstore - più via mia precedente risposta a questa domanda qui

In SQL Server 2012-2016 si ha il concetto di eliminazione Segment ( http://social.technet.microsoft.com/wiki/contents/articles/5651.understanding-segment-elimination.aspx ) e in realtà si può forzare l'dell'ordine di almeno 1 colonna (più 1 in più all'interno di ogni della partizione).

Si consideri il seguente articolo che spiega il caricamento dei dati per una migliore eliminazione segmento: dati di carico per una migliore segmento eliminazione

C'è un grande risposta esistente da Aaron dal 2012, Per espandere su quel ...

indici

??Con SQL Columnstore 2014+ avete cluster disponibili. Quando si crea un indice columnstore cluster non ci sono la selezione delle colonne o opzioni di acquisto disponibili. rilevamenti Columnstore Descritto

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top