Một phong trào đang diễn ra ở nơi tôi sử dụng lao động để tránh sử dụng các bảng #temp và thay vào đó để sử dụng các bảng vật lý vĩnh viễn với SPID. Bất cứ khi nào trước đây người ta đã CHỈ VÀO một bảng #temp, thì bây giờ INSERT INTO dbo.MyPermanentTable (SPID, ...) VALUES (@@SPID, ...)
bắt buộc phải có - cùng với một loạt các DELETE FROM dbo.MyPermanentTable WHERE SPID = @@SPID
câu lệnh ở đầu ví dụ như một thủ tục được lưu trữ. Ngoài ra, không cần phải nói rằng bất cứ nơi nào mà các 'bảng cố định để lưu trữ dữ liệu tạm thời' này được sử dụng, người ta phải cẩn thận để bao gồm một WHERE SPID = @@SPID
.
Logic đằng sau động thái hướng tới thực tiễn này là nó sẽ cải thiện hiệu suất tổng thể của máy chủ nơi các truy vấn đang chạy (bằng cách giảm I / O và tranh chấp trong tempdb). Tôi không quan tâm đến phương pháp này vì một số lý do - nó xấu, có khả năng nguy hiểm và có vẻ như nó có thể gây hại cho hiệu suất của những truy vấn sử dụng lược đồ mới.
Có ai có bất kỳ kinh nghiệm nào với cách tiếp cận này hoặc tương tự để loại bỏ các bảng #temp không?