Ho un database che manterrà le voci del registro.Qual è la penalità delle prestazioni del tipo di dati XML in SQL Server rispetto a NVARCHAR (MAX)?
Una delle colonne nella tabella del registro contiene oggetti serializzati (in XML) e un ragazzo del mio team ha proposto di utilizzare il tipo di dati XML anziché NVARCHAR (MAX). Questa tabella avrà i log mantenuti "per sempre" (l'archiviazione di alcune voci molto vecchie potrebbe essere presa in considerazione in futuro).
Sono un po 'preoccupato per il sovraccarico della CPU, ma sono ancora più preoccupato che DB possa crescere più velocemente (FoxyBOA dalla domanda di riferimento ha ottenuto il 70% di DB più grande quando si utilizza XML).
Ho letto questo question e mi ha dato alcune idee, ma sono particolarmente interessato a chiarire se le dimensioni del database aumentano o diminuiscono.
Potete per favore condividere le vostre intuizioni/esperienze in questa materia.
BTW. Al momento non ho alcun bisogno di dipendere dalle funzionalità XML di SQL Server (ci sono quasi zero vantaggi per me nel caso specifico). Verranno estratte le voci di log occasionalmente, ma preferisco gestire XML usando .NET (scrivendo un piccolo client o utilizzando una funzione definita in un assembly .NET).
Ma questo è per le voci di registro, quindi presumibilmente che ci si vuole scrivere senza il sovraccarico di indicizzazione (che potrebbe essere sostanziale se l'oggetto serializzato è di grandi dimensioni), anche se ha fatto la lettura molto più lento? – MusiGenesis
Sì, certo: basta che mostri l'intero XML (quando hai bisogno di guardare una voce di registrazione), quindi gli indici XML non sono di grande aiuto, ma sicuramente costano un sovraccarico! –