Eu tenho escrito alguns novos procedimentos armazenados e me encontro retornando entre 6-8 conjuntos de resultados em alguns casos. Sempre trabalhei com a suposição de que havia certas ineficiências com conjuntos de resultados que deveriam ser evitadas.
Parece que minhas opções são usar conjuntos de resultados ou construir uma representação xml dos objetos complexos e retorná-los usando canais SQL-XML ( isso é para evitar truncamento dos blogs, por clientes ADO ). Alguém tem alguma experiência com o desempenho e/ou eficiências relativas dessas escolhas e talvez forneça algumas percepções do lado bom e ruim de cada uma?
Para contexto adicional...
- Cada conjunto de resultados não teria mais de 30 colunas, com a maioria em torno de 10
- Os dados da coluna são principalmente números inteiros ( 1 a 8 bytes ) e algumas strings entre 50 e 2.000 caracteres
- Durante o pico de carga, esperamos entre 5 a 9 consultas por segundo para os SPROCs em questão, embora haja um caso de uso que possa ser de 10 por segundo
- Desnormalizar para uma visão mais plana não é realmente uma opção razoável na medida em que podemos ver
Eu prefiro conjuntos de resultados múltiplos porque é mais rápido e usa menos memória e muito mais fácil de lidar.
Mas tudo depende do consumidor dos dados - por exemplo se ele pode receber apenas XML - você não tem escolha 8-)