T-SQL - TÙY CHỌN (FAST x) và cờ theo dõi 8722


9

Tôi đã tìm kiếm trong một thời gian dài và vẫn chưa tìm thấy câu trả lời cho vấn đề của mình.

Dynamics AX của chúng tôi đang tạo các truy vấn với gợi ý truy vấn TÙY CHỌN (FAST x), đôi khi buộc phải sử dụng một kế hoạch thực hiện tồi. Các nhà phát triển nói rằng nó là mặc định và khó thay đổi (phải được sửa trên tất cả các hình thức có khả năng).

Vì vậy, tôi đã theo một cách để ghi đè những gợi ý này bằng cách sử dụng cờ theo dõi. Tôi đã tìm thấy cờ theo dõi đáng yêu 8722 được tuyên bố là làm cho SQL Server bỏ qua một số gợi ý truy vấn, đặc biệt là các cờ trong mệnh đề TÙY CHỌN.

Tuy nhiên, điều này không hoạt động trong trường hợp của tôi. Tôi cũng đã cố gắng bật cờ theo dõi 8602 (vô hiệu hóa gợi ý chỉ mục), nhưng truy vấn của tôi vẫn đang chạy với gợi ý FAST x (chậm hơn nhiều so với khi tôi thực sự xóa mệnh đề TÙY CHỌN).

Tôi đã cố gắng để xóa bộ nhớ cache kế hoạch là tốt, nhưng không có kết quả.

Có ý kiến ​​gì không? Tôi có thiếu thứ gì không?

PS Tôi đã bật cờ theo dõi trên toàn cầu, đây là phiên bản Nhà phát triển SQL Server 2012


1
Làm thế nào bạn bật cờ theo dõi? Bạn đã bật nó thông qua máy chủ khởi động hoặc sử dụng dbcc trackon chưa? dbcc trackon là cờ theo dõi trên mỗi kết nối, vì vậy bật nó trong một kết nối máy khách không ảnh hưởng đến các kết nối máy chủ khác. Để mở rộng máy chủ, bạn cần thêm -T <trackflagnumber> vào dòng lệnh khởi động. Tôi tin rằng bạn có thể sử dụng một dấu vết dbcc (flag1, flag2, ..., - 1) để áp dụng rộng rãi máy chủ của nó, nhưng tôi chưa bao giờ thử nó.
Mike

Xin chào Mike, tôi đã kích hoạt các cờ theo dõi trên toàn cầu bằng DBCC TRACEON (8722, -1) và sau đó kiểm tra trạng thái với DBCC TRACESTATUS. Có thể cờ theo dõi không còn được hỗ trợ chính thức hoặc tôi thực sự cần đặt nó vào tham số khởi động và khởi động lại dịch vụ, hoặc đó là chủ đề của CU3 (Tôi đang chạy 2012 SP2 RTM).

Câu trả lời:


10

Theo tôi biết, cờ theo dõi 8722, 8755 và 8602 chưa bao giờ được ghi nhận chính thức. Lần cuối cùng tôi nhớ rằng chúng có hiệu quả là trong SQL Server 2000, vì vậy không có gì đáng ngạc nhiên khi bạn thấy chúng bị bỏ qua trong SQL Server 2012.

Đối với các mẫu truy vấn cụ thể, thường có thể xóa FAST ngợi ý bằng cách sử dụng các hướng dẫn kế hoạch. Mặc dù vậy, cách khắc phục tốt nhất là yêu cầu các nhà phát triển AX sửa nó ở khía cạnh ứng dụng.

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.