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

Microsoft SQL Server 2005/2008:tipo di dati XML e testo/varchar

Se memorizzi xml in una colonna digitata xml, i dati non verranno archiviati come testo semplice, come nel caso di nvarchar, verranno archiviati in una sorta di albero di dati analizzato, che a sua volta sarà più piccolo della versione xml non analizzata. Questo non solo riduce le dimensioni del database, ma ti offre altri vantaggi, come la convalida, la facile manipolazione ecc. (anche se non ne stai utilizzando nessuno, sono comunque disponibili per un uso futuro).

D'altra parte, il server dovrà analizzare i dati al momento dell'inserimento, il che probabilmente rallenterà il tuo database:devi prendere una decisione sulla velocità rispetto alle dimensioni.

Modifica:

Personalmente, penso che i dati nel database debbano essere archiviati come xml solo quando hanno una struttura difficile da implementare in un modello relazionale, ad es. layout, descrizioni di stile ecc. Di solito ciò significa che non ci saranno molti dati e la velocità non è un problema, quindi sono state aggiunte funzionalità xml, come la convalida dei dati e la capacità di manipolazione (anche, ultimo ma non meno importante, la possibilità di fare clic sul valore in managment studio e vedi xml formattato - adoro questa funzione!), surclassa i costi.

Non ho esperienza diretta nell'archiviazione di grandi quantità di xml nel database e non lo farei se ne avessi la possibilità, poiché è quasi sempre più lento di un modello relazionale, ma se fosse così, io' d consiglia di profilare entrambe le opzioni e di scegliere tra la dimensione e la velocità più adatte alle tue esigenze.