Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Visualizzazione indicizzata e indici su tabella

Una vista indicizzata causerà gli stessi problemi di un indice sulla colonna, perché le viste indicizzate richiedono with schemabinding , che lo legano direttamente alla tabella, impedendoti di modificare/alterare lo schema di quella tabella in alcun modo, forma o forma. Ciò include il ridimensionamento di una colonna (ad esempio, da varchar(50) a varchar(255) ), modificando il tipo di dati di una colonna (ad es.-da double a decimal(18,5) ), ecc. Li ho visti causare molti mal di testa inaspettati a causa di questo fatto.

Il mio suggerimento è di impostare una stored procedure o un pacchetto SSIS che creerà una tabella di report che verrà eseguita ogni ora circa. In questo modo, puoi indicizzarlo e goderti tutti i vantaggi in termini di prestazioni che produce. Evito di segnalare da un sistema live, in corso. In realtà devo ancora vedere il caso in cui ciò sia necessario. Ai fini dei rapporti, le informazioni di un'ora sono generalmente assolutamente sufficienti per portare a termine il lavoro.