Que le déchiquetage du XML sur le serveur plutôt que de le faire sur le client soit bon ou mauvais dépend de divers facteurs, les exigences peuvent être parfaitement valides. Le broyage XML sur le serveur, compte tenu de la prise en charge étendue de SQL Server 2005 et après avoir pour XML (index XPath/XQuery/XML) est souvent une approche très judicieuse.
Cependant, ce que vous avez dans votre message est un exemple de modélisation sémantique des données, utilisant XML. Je vous recommande de parcourir quelques livres blancs :
- Meilleures pratiques de modélisation sémantique des données pour les performances et l'évolutivité
- Meilleures pratiques XML pour Microsoft SQL Server 2005
- Optimisations des performances pour le type de données XML dans SQL Server 2005
- Conseils de performance pour l'utilisation de données XML dans SQL Server
Je ne sais pas si le @table1 dans votre exemple est juste un exemple ou la structure de données réelle que vous utilisez en production, mais certains points ressortiront immédiatement après avoir lu ces articles :
- utiliser du XML typé lorsque cela est possible (ajouter un schéma)
- utilisez un index XML approprié pour le traitement dont vous avez besoin
- essayez de déchiqueter tout le XML en une seule transformation au lieu de 3 étapes consécutives
Et enfin, si vous avez besoin de déchiqueter chaque fois que vous interrogez, vous devez peut-être analyser le modèle de données (c'est là que le premier article de ma liste est utile).