Gerakan sedang berlangsung di tempat kerja saya untuk menjauh dari menggunakan tabel #temp dan alih-alih menggunakan tabel fisik permanen dengan SPID. Kapan pun seseorang sebelumnya akan menyisipkan ke tabel #temp, sekarang INSERT INTO dbo.MyPermanentTable (SPID, ...) VALUES (@@SPID, ...)
diperlukan - bersama-sama dengan sekelompok DELETE FROM dbo.MyPermanentTable WHERE SPID = @@SPID
pernyataan di awal misalnya prosedur tersimpan. Selain itu, tidak perlu dikatakan bahwa dimanapun 'tabel permanen untuk menyimpan data sementara' ini digunakan, kita harus berhati-hati untuk memasukkan a WHERE SPID = @@SPID
.
Logika di balik langkah menuju praktik ini adalah bahwa ia akan meningkatkan kinerja keseluruhan server tempat kueri berjalan (dengan mengurangi I / O dan pertikaian dalam tempdb). Saya tidak tertarik pada pendekatan ini karena sejumlah alasan - itu jelek, berpotensi berbahaya dan sepertinya itu mungkin merusak kinerja pertanyaan-pertanyaan yang menggunakan skema baru.
Apakah ada yang punya pengalaman dengan ini atau pendekatan serupa untuk menghilangkan tabel #temp?