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

TSQL Shred XML - È giusto o esiste un modo migliore (principiante @ shredding XML)

Se distruggere l'XML sul server invece di farlo sul client è buono o cattivo dipende da una varietà di fattori, i requisiti possono essere perfettamente validi. La distruzione di XML sul server, dato l'ampio supporto di SQL Server 2005 e successivi per XML (indici XPath/XQuery/XML) è spesso un approccio molto sensato.

Tuttavia, quello che hai nel tuo post è un esempio di modellazione semantica dei dati, usando XML. Ti consiglio di leggere un paio di white paper:

Non so se la @table1 nel tuo esempio sia solo un esempio o la struttura dati effettiva che usi in produzione, ma alcuni punti saltano fuori subito dopo aver letto quei documenti:

  • usa XML tipizzato quando possibile (aggiungi uno schema)
  • utilizza un indice XML appropriato per l'elaborazione di cui hai bisogno
  • prova a distruggere tutto l'XML in un'unica trasformazione invece di 3 passaggi consecutivi

E infine, se hai bisogno di distruggere ogni volta che si interroga, forse è necessario analizzare il modello di dati (è qui che il primo articolo della mia lista è utile).