Se destruir o XML no servidor em vez de fazê-lo no cliente é bom ou ruim depende de vários fatores, os requisitos podem ser perfeitamente válidos. A fragmentação de XML no servidor, dado o amplo suporte do SQL Server 2005 e posterior para XML (índices XPath/XQuery/XML), geralmente é uma abordagem muito sensata.
Porém, o que você tem em seu post é um exemplo de modelagem semântica de dados, usando XML. Eu recomendo que você leia alguns white papers:
- Práticas recomendadas para modelagem de dados semânticos para desempenho e escalabilidade
- Práticas recomendadas de XML para Microsoft SQL Server 2005
- Otimizações de desempenho para o tipo de dados XML no SQL Server 2005
- Dicas de desempenho ao usar dados XML no SQL Server
Não sei se @table1 no seu exemplo é apenas um exemplo ou a estrutura de dados real que você usa na produção, mas alguns pontos vão aparecer imediatamente depois que você ler esses artigos:
- use XML digitado quando possível (adicione um esquema)
- use um índice XML apropriado para o processamento necessário
- tente destruir todo o XML em uma única transformação em vez de três etapas consecutivas
E, finalmente, se você precisar destruir todo vez que você consulta, talvez você precise analisar o modelo de dados (é aqui que o primeiro artigo da minha lista é útil).