Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Tabelas temporárias locais vs globais - Quando usar o quê?


Nenhum

Se você quiser armazenar em cache os conjuntos de resultados sob seu próprio controle, não poderá usar tabelas temporárias de nenhum tipo. Você deve usar tabelas de usuário comuns, armazenadas em tempdb ou até mesmo ter seu próprio banco de dados de cache de conjunto de resultados.

Tabelas temporárias, bot #local e ##shared têm um tempo de vida controlado pela(s) conexão(ões). Se seu aplicativo se desconectar, a tabela temporária será excluída e isso não funcionará bem com o que você descreve.

O verdadeiro problema difícil será preencher esses conjuntos de resultados em cache em execuções simultâneas sem misturar as coisas (acabe com conjuntos de resultados contendo itens duplicados de execuções de relatórios simultâneos que ambos acreditavam ser a 'primeira' execução).

Como uma observação lateral, o SQL Server Reporting Services já faz isso pronto para uso. Você pode armazenar em cache e compartilhar conjuntos de dados, pode armazenar em cache e compartilhar relatórios, já funciona e foi testado para você.