Có vấn đề gì khi một Spool háo hức chỉ ra


27

Hiện đang chạy trên SQL Server 2008 R2

Tôi đang cố gắng tăng hiệu suất của một câu lệnh CẬP NHẬT. Tôi nhận thấy một hoạt động Eager Spool trong showplan bật lên. Sự hiểu biết của tôi về các hoạt động lưu trữ là khá cơ bản - chúng tạo lưu trữ tạm thời cho bảng trong quá trình cập nhật.

Tôi cũng biết rằng, trong khi chúng đang ngăn chặn thời gian thực hiện tồi tệ hơn nhiều, các ống cuộn háo hức thường biểu thị các vấn đề tiềm ẩn với cấu trúc bảng và / hoặc các câu lệnh truy vấn.

Câu hỏi của tôi khá đơn giản: Khi bạn thấy Spool Eager trong kế hoạch truy vấn của mình, bạn gặp vấn đề gì trước tiên?

Tôi sẽ phân tích mọi bộ phận trong hệ thống của chúng tôi để tăng hiệu suất - Tôi chỉ tìm kiếm hướng dẫn về nơi tôi nên bắt đầu.


Bạn có thể hiển thị kế hoạch? Ống cuốn có thể có nghĩa là nhiều thứ khác nhau.
usr

Và một vài trường hợp khác mà trường hợp này có thể xuất hiện UPDATElà nếu bảng có khóa ngoại tự tham chiếu hoặc truy cập UDF có quyền truy cập dữ liệu hoặc không bị ràng buộc lược đồ
Martin Smith

Câu trả lời:


18

Tôi đang cố gắng tăng hiệu suất của một câu lệnh CẬP NHẬT. Tôi nhận thấy một hoạt động Eager Spool trong showplan bật lên.

Spager Eager có thể được thêm vào vì nhiều lý do, bao gồm cả Bảo vệ Halloween hoặc để tối ưu hóa I / O khi duy trì các chỉ mục không bao gồm .

Không nhìn thấy (thậm chí là một bức tranh về) kế hoạch thực hiện, thật khó để chắc chắn kịch bản nào trong số những kịch bản này có thể áp dụng trong trường hợp cụ thể của bạn. Nếu độ nhạy dữ liệu là một mối quan tâm, hãy xem xét tải lên một phiên bản ẩn danh của kế hoạch để phân tích bằng SentryOne Plan Explorer .

Cũng có thể là Spager Eager không phải là thứ bạn nên tập trung vào dù sao; nhiều yếu tố ảnh hưởng đến hiệu suất thực tế của các truy vấn thay đổi dữ liệu. Nếu bạn đang dựa trên nỗ lực điều chỉnh của mình về chi phí phần trăm ước tính được hiển thị cho toán tử Eager Spool, vui lòng xem xét các ước tính đó được tạo bằng mô hình không nhằm mục đích phù hợp với khả năng của cấu hình phần cứng cụ thể của bạn.


2

Đôi khi, bộ đệm háo hức có thể tránh được khi các toán tử chặn khác được đặt - ví dụ như sắp xếp. Vì vậy, đó là một ý tưởng tốt để đảm bảo rằng dữ liệu đã được sắp xếp theo thời gian đạt đến giai đoạn đó. (thiếu chỉ mục có lẽ?)

Nếu nó ở đó để bảo vệ Halloween thì như những người khác đã nói, có rất ít bạn có thể làm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.