Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Lokale vs. globale temporäre Tabellen – Wann sollte man was verwenden?

Weder noch

Wenn Sie Ergebnissätze unter Ihrer eigenen Kontrolle zwischenspeichern möchten, können Sie keine temporären Tabellen jeglicher Art verwenden. Sie sollten gewöhnliche Benutzertabellen verwenden, die entweder in tempdb gespeichert sind, oder sogar Ihre eigene Ergebnissatz-Cache-Datenbank haben.

Temp-Tabellen, bot #local und ##shared haben eine Lebensdauer, die von der/den Verbindung(en) gesteuert wird. Wenn Ihre Anwendung die Verbindung trennt, wird die temporäre Tabelle gelöscht, und das funktioniert nicht gut mit dem, was Sie beschreiben.

Das wirklich schwierige Problem wird darin bestehen, diese zwischengespeicherten Ergebnissätze unter gleichzeitigen Läufen zu füllen, ohne Dinge zu verwechseln (am Ende Ergebnissätze enthalten, die doppelte Elemente aus gleichzeitigen Berichtsläufen enthalten, von denen beide glaubten, dass sie der „erste“ Lauf waren).

Als Randnotiz macht SQL Server Reporting Services dies bereits out-of-the-box. Sie können Datensätze zwischenspeichern und freigeben, Sie können Berichte zwischenspeichern und freigeben, es funktioniert bereits und wurde für Sie getestet.