2009-12-18 38 views
8

Tôi có một truy vấn tạo ra một số bảng tạm thời và sau đó chèn dữ liệu vào chúng. Từ những gì tôi hiểu đây là nguyên nhân tiềm năng của Table Spool. Khi tôi nhìn vào kế hoạch thực hiện của tôi, phần lớn công việc xử lý của tôi được chi cho Bảng Spool. Có bất kỳ kỹ thuật tốt nào để cải thiện các loại vấn đề hiệu suất này không? Việc sử dụng chế độ xem hoặc CTE có mang lại cho tôi bất kỳ lợi ích nào trên các bảng tạm thời không?Loại bỏ Bảng Spool trong SQL Server Kế hoạch thực hiện

Tôi cũng nhận thấy rằng khi tôi di chuột qua mỗi bảng, danh sách đầu ra là từ cùng một bảng tạm thời.

Trả lời

15

Vâng, với thông tin bạn đã cung cấp, tôi có thể chỉ nói rằng: trình tối ưu hóa truy vấn đã chọn gói tốt nhất có thể. Nó sử dụng các cuộn bảng để tăng tốc độ thực thi. Các giải pháp thay thế không sử dụng các cuộn bảng sẽ còn chậm hơn.

Cách hiển thị truy vấn, sơ đồ bảng và thẻ, và kế hoạch.

Cập nhật

tôi chắc chắn hiểu nếu bạn không thể chỉ cho chúng ta truy vấn. Nhưng thực sự khó đoán tại sao spooling được preffered bởi động cơ whithout biết bất kỳ chi tiết cụ thể. Tôi khuyên bạn nên xem qua blog của Craig Freedman, anh ấy là kỹ sư trong nhóm tối ưu hóa truy vấn và đã giải thích rất nhiều hoạt động bên trong của trình tối ưu hóa SQL 2005/2008. Dưới đây là một số mục tôi có thể nhanh chóng tìm thấy rằng chạm vào chủ đề của spooling trong một hình thức này hay cách khác:

SQL đội ngũ hỗ trợ khách hàng cũng có một blog thú vị tại http://blogs.msdn.com/psssql/
Và 'sqltips' (blog của nhóm công cụ quan hệ) có một số mẹo, như Spool operators in query plan...

+0

Thật không may tôi nghĩ công việc của tôi sẽ không giống như tôi chia sẻ thông tin đó. Sự hiểu biết của tôi về spooling là có hạn, nhưng tôi nghĩ rằng spooling đã được sử dụng khi bạn tham khảo lại một bảng tạm thời. Sẽ không đưa thông tin đó vào một chế độ xem được lập chỉ mục giúp chúng tôi thoát khỏi điều đó mà không ảnh hưởng xấu đến hiệu suất? –

Các vấn đề liên quan