sql >> Databasteknik >  >> RDS >> Sqlserver

Lokala vs Globala temp tabeller - När ska man använda vad?

Intedera

Om du vill cacha resultatuppsättningar under din egen kontroll, kan du inte använda temporära tabeller, av något slag. Du bör använda vanliga användartabeller, lagrade antingen i tempdb eller till och med ha en egen cachedatabas för resultatuppsättningar.

Temp-tabeller, bot #local och ##shared har en livstid som kontrolleras av anslutningen/anslutningarna. Om din applikation kopplas bort raderas temptabellen, och detta fungerar inte bra med det du beskriver.

Det verkliga svåra problemet kommer att vara att fylla dessa cachade resultatuppsättningar under samtidiga körningar utan att blanda ihop saker och ting (sluta upp med resultatuppsättningar som innehåller dubbletter från samtidiga rapportkörningar som båda trodde var den "första" körningen).

Som en sidoanteckning gör SQL Server Reporting Services redan detta direkt. Du kan cachelagra och dela datauppsättningar, du kan cachelagra och dela rapporter, det fungerar redan och har testats för dig.



  1. SQL Server prestanda för ändra tabell ändra kolumn ändra datatyp

  2. Använder tvåfas commits på postgres

  3. Hur man går med och extraherar i SQL

  4. varchar(20) och varchar(50) är samma?