Tôi đang chạy Microsoft SQL Server 2016 SP2-CU6 (13.0.5292.0) trên máy ảo 4 vCPU max degree of parallelism
được đặt thành 2
và cost threshold for parallelism
được đặt thành 50
.
Vào buổi sáng, khi cố gắng hiển thị Kế hoạch thực hiện ước tính cho truy vấn CHỌN 100 , tôi gặp phải sự chờ đợi lớn và thao tác để hiển thị kế hoạch ước tính mất vài phút, thường là trong khoảng 5 - 7 phút. Một lần nữa, đây không phải là thực thi thực tế của truy vấn, đây chỉ là quá trình để hiển thị Kế hoạch thực hiện ước tính .
sp_WhoIsActive
sẽ hiển thị hoặc PAGEIOLATCH_SH
chờ hoặc LATCH_EX [ACCESS_METHODS_DATASET_PARENT]
chờ và khi tôi chạy tập lệnh WaitingT task.sql của Paul Randal trong quá trình hoạt động, nó hiển thị CXPACKET
chờ với các luồng công nhân hiển thị PAGEIOLATCH_SH
chờ:
* trường mô tả tài nguyên = exchangeEvent id=Port5f6069e600 WaitType=e_waitPortOpen waiterType=Coordinator nodeId=1 tid=0 ownerActivity=notYetOpened waiterActivity=waitForAllOwnersToOpen
Các luồng công nhân dường như sẽ đưa toàn bộ stats
bảng vào bộ nhớ (vì các số trang đó cũng như các số trang tiếp theo được hiển thị từ điểm truy vấn của Paul Randal trở lại khóa cụm cho stats
bảng). Khi kế hoạch quay trở lại, về cơ bản là ngay lập tức trong phần còn lại của ngày, ngay cả sau khi tôi thấy hầu hết sự stats
tiêu hao bảng từ bộ đệm chỉ còn lại các bản ghi khác (mà tôi cho rằng đã bị kéo do tìm kiếm các hoạt động từ các truy vấn tương tự).
Tôi sẽ mong đợi hành vi ban đầu này nếu truy vấn thực sự được thực thi với một kế hoạch sử dụng các toán tử SCAN, nhưng tại sao nó lại thực hiện điều này khi đánh giá các kế hoạch thực hiện chỉ đến một toán tử XEMK như trong kế hoạch được liên kết ở trên? Tôi có thể làm gì (ngoài việc chạy tuyên bố này trước giờ hành chính để dữ liệu của tôi được lưu trong bộ nhớ cache phù hợp) để giúp cải thiện hiệu suất ở đây? Tôi cho rằng một cặp chỉ số bao trùm sẽ có lợi, nhưng liệu chúng có thực sự đảm bảo bất kỳ thay đổi nào trong hành vi không? Tôi phải làm việc trong một số giới hạn cửa sổ lưu trữ và bảo trì ở đây và chính truy vấn được tạo từ giải pháp của nhà cung cấp, vì vậy mọi đề xuất khác (ngoài việc lập chỉ mục tốt hơn) sẽ được hoan nghênh tại thời điểm này.