W moim miejscu pracy następuje ruch, aby odejść od używania tabel #temp i zamiast tego używać stałych fizycznych tabel z identyfikatorami SPID. Ilekroć ktoś wcześniej WSTAWIŁO DO tabeli #temp, teraz INSERT INTO dbo.MyPermanentTable (SPID, ...) VALUES (@@SPID, ...)jest wymagane - wraz z wiązką DELETE FROM dbo.MyPermanentTable WHERE SPID = @@SPIDinstrukcji na początku np. Procedury składowanej. Ponadto nie trzeba dodawać, że wszędzie tam, gdzie używane są te „stałe tabele do przechowywania danych tymczasowych”, należy zachować ostrożność, aby dołączyć WHERE SPID = @@SPID.
Logika stojąca za przejściem do tej praktyki polega na tym, że poprawi ona ogólną wydajność serwera, na którym działają zapytania (poprzez zmniejszenie I / O i rywalizacji w tempdb). Nie podoba mi się to podejście z wielu powodów - jest brzydkie, potencjalnie niebezpieczne i wydaje się, że może zaszkodzić wydajności zapytań korzystających z nowego schematu.
Czy ktoś ma jakieś doświadczenie z tym lub podobnym podejściem do eliminowania tabel #temp?