Nel mio posto di lavoro è in atto un movimento per allontanarmi dall'uso delle tabelle #temp e invece di utilizzare tabelle fisiche permanenti con SPID. Ogni volta che uno avrebbe precedentemente INSERITO IN una tabella #temp, ora INSERT INTO dbo.MyPermanentTable (SPID, ...) VALUES (@@SPID, ...)è richiesto - insieme a un mucchio di DELETE FROM dbo.MyPermanentTable WHERE SPID = @@SPIDistruzioni all'inizio di una procedura memorizzata. Inoltre, è ovvio che ovunque si utilizzino queste "tabelle permanenti per l'archiviazione di dati temporanei", bisogna fare attenzione a includere a WHERE SPID = @@SPID.
La logica alla base di questa pratica è che migliorerà le prestazioni generali del server su cui sono in esecuzione le query (riducendo l'I / O e la contesa in tempdb). Non sono appassionato di questo approccio per una serie di motivi: è brutto, potenzialmente pericoloso e sembra che potrebbe danneggiare le prestazioni di quelle query che utilizzano il nuovo schema.
Qualcuno ha esperienza con questo o simili approcci per eliminare le tabelle #temp?