An meiner Arbeitsstelle ist eine Bewegung im Gange, um von der Verwendung von # temporären Tabellen abzurücken und stattdessen permanente physische Tabellen mit SPIDs zu verwenden. Wann immer man zuvor IN eine #temp-Tabelle eingefügt hatte, ist jetzt eine INSERT INTO dbo.MyPermanentTable (SPID, ...) VALUES (@@SPID, ...)
erforderlich - zusammen mit einer Reihe von DELETE FROM dbo.MyPermanentTable WHERE SPID = @@SPID
Anweisungen am Anfang zB einer gespeicherten Prozedur. Darüber hinaus ist es selbstverständlich, dass überall, wo diese "permanenten Tabellen zum Speichern temporärer Daten" verwendet werden, darauf geachtet werden muss, a einzuschließen WHERE SPID = @@SPID
.
Die Logik hinter dieser Vorgehensweise besteht darin, die Gesamtleistung des Servers zu verbessern, auf dem die Abfragen ausgeführt werden (indem E / A und Konflikte in Tempdb reduziert werden). Ich bin aus mehreren Gründen nicht an diesem Ansatz interessiert - er ist hässlich, potenziell gefährlich und scheint die Leistung der Abfragen zu beeinträchtigen, die das neue Schema verwenden.
Hat jemand Erfahrung mit diesem oder ähnlichen Ansätzen zum Entfernen von # temporären Tabellen?