To, czy rozdrabnianie XML na serwerze, a nie robienie tego na kliencie, jest dobre czy złe, zależy od wielu czynników, wymagania mogą być całkowicie poprawne. Rozdrabnianie XML na serwerze, biorąc pod uwagę szerokie wsparcie SQL Server 2005, a później XML (indeksy XPath/XQuery/XML) jest często bardzo rozsądnym podejściem.
Jednak to, co masz w swoim poście, jest przykładem semantycznego modelowania danych za pomocą XML. Polecam przejrzeć kilka białych ksiąg:
- Najlepsze praktyki dotyczące semantycznego modelowania danych pod kątem wydajności i skalowalności
- Najlepsze praktyki XML dotyczące Microsoft SQL Server 2005
- Optymalizacja wydajności dla typu danych XML w SQL Server 2005
- Wskazówki dotyczące wydajności korzystania z danych XML w SQL Server
Nie wiem, czy @table1 w twoim przykładzie jest tylko przykładem, czy rzeczywistą strukturą danych, której używasz w produkcji, ale niektóre punkty wyskoczą natychmiast po przeczytaniu tych artykułów:
- użyj wpisywanego XML, jeśli to możliwe (dodaj schemat)
- użyj odpowiedniego indeksu XML do przetwarzania, którego potrzebujesz
- spróbuj zniszczyć cały XML w jednej transformacji zamiast w 3 kolejnych krokach
I na koniec, jeśli chcesz zniszczyć co kiedy zapytasz, być może musisz przeanalizować model danych (tutaj przydaje się pierwszy artykuł na mojej liście).