Bảng tạm thời là một KHÔNG lớn trong SQL Server.
- Chúng kích động việc biên dịch lại kế hoạch truy vấn gây tốn kém.
- Tạo và xóa bảng cũng là những thao tác tốn kém mà bạn đang thêm vào quy trình của mình.
- Nếu có một lượng lớn dữ liệu chuyển đến dữ liệu tạm thời, hoạt động của bạn sẽ chậm do thiếu chỉ mục. Bạn CÓ THỂ tạo chỉ mục trên các bảng tạm thời. Nhưng tôi sẽ không bao giờ đề xuất một bảng tạm thời cho bất kỳ thứ gì có lượng hồ sơ lớn.
Cách tiếp cận khác của bạn:Để tạo và sau đó thả các bảng thông thường, chỉ cần tạo cùng một chi phí.
Một cách tiếp cận khác:Sử dụng các bảng hiện có, tăng cường các hàng bằng một cột bổ sung để phân biệt hàng nào liên quan đến từng người dùng / phiên có thể được sử dụng. Loại bỏ gánh nặng để tạo / xóa các bảng nhưng sau đó, bạn sẽ cần phải hoang tưởng với mã tạo ra giá trị để phân biệt các hàng VÀ bạn sẽ phải phát triển cách duy trì bảng cho những trường hợp phiên kết thúc sớm và còn thừa (các hàng chưa được xóa khi kết thúc quá trình xử lý).
Tôi khuyên bạn nên suy nghĩ lại về chiến lược xử lý của mình. Một số lựa chọn thay thế dễ dàng như sử dụng truy vấn tương quan, bảng dẫn xuất hoặc biến bảng. Hãy xem: http://www.sql-server- performance.com/articles/per/temp_tables_vs_variables_p1.aspx
Chỉnh sửa: Cách tiếp cận tạo và loại bỏ các bảng thông thường và cách tiếp cận sử dụng lại bảng thông thường được bổ sung bằng một trường bổ sung:Cả hai sẽ tạo ra các bản biên dịch lại kế hoạch truy vấn vì lượng dữ liệu thay đổi sẽ kích hoạt việc đánh giá lại thống kê bảng. Một lần nữa, cách tiếp cận tốt nhất của bạn là tìm các cách thay thế để xử lý dữ liệu của bạn.