Un mouvement est en cours à mon lieu de travail pour s'éloigner de l'utilisation des tables #temp et utiliser des tables physiques permanentes avec des SPID. Chaque fois que l' on aurait déjà inséré dans une table #temp, maintenant INSERT INTO dbo.MyPermanentTable (SPID, ...) VALUES (@@SPID, ...)
est nécessaire - avec un tas de DELETE FROM dbo.MyPermanentTable WHERE SPID = @@SPID
déclarations au début, par exemple , une procédure stockée. De plus, il va sans dire que partout où ces «tables permanentes de stockage de données temporaires» sont utilisées, il faut veiller à inclure a WHERE SPID = @@SPID
.
La logique derrière cette évolution est qu'elle améliorera les performances globales du serveur sur lequel les requêtes s'exécutent (en réduisant les E / S et les conflits dans tempdb). Je n'apprécie pas cette approche pour un certain nombre de raisons - elle est moche, potentiellement dangereuse et semble pouvoir nuire aux performances des requêtes qui utilisent le nouveau schéma.
Quelqu'un a-t-il une expérience avec cette approche ou des approches similaires pour éliminer les tables #temp?