Triệu chứng

Giả định rằng bạn đã áp dụng Microsoft SQL Server 2012 gói dịch vụ 2 (SP2) trên máy tính của bạn. Bạn gọi cdc.fn_cdc_get_net_changes_<capture_instance> thay đổi truy vấn chụp dữ liệu (CDC) trong quy trình được lưu trữ sp_executesql và có thể đến từ một nguồn ứng dụng như SQL Server Management Studio Server (SSMS), CDC chính, hoặc các gói dịch vụ tích hợp SQL Server (SSIS). Trong tình huống này, bạn gặp phải hiệu suất kém trong SQL Server 2012.Lưu ý Hiệu suất giảm có thể lớn. Ví dụ, một truy vấn có thể kết thúc trong một vài giây trong SQL Server 2012 SP1. Tuy nhiên, cùng một truy vấn có thể mất vài giờ để chạy trong SQL Server 2012 SP2. Ngoài ra, Cập Nhật thống kê sẽ không trợ giúp về vấn đề này.

Nguyên nhân

Sự cố này xảy ra do sự cố trong dự toán cardinality ảnh hưởng đến hiệu suất của cdc.fn_cdc_get_net_changes_<capture_instance truy vấn>.

Mỗi bản Cập Nhật tích lũy mới cho SQL Server chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:

Cách giải quyết

Để giải quyết vấn đề này, hãy sử dụng gợi ý truy vấn tùy chọn (biên dịch lại) trong truy vấn của bạn. Trong trường hợp truy vấn được kích hoạt từ SSIS CDC Components, tùy chọn (biên dịch lại) gợi ý có thể bị bắt buộc bằng cách tạo một hướng dẫn lập kế hoạch như trong ví dụ sau đây:Exec sp_create_plan_guide @name = N'CDC_Query1_PlanGuide', @stmt = N'select [__$start_lsn],[__$operation],[__$update_mask],[Column1],[Column2],[Column3] from [cdc].[fn_cdc_get_net_changes_dbo_Table1](CONVERT(binary(10), @cs, 1), CONVERT(binary(10), @ce, 1), @mode)',@type = N'SQL',@module_or_batch = NULL, @params = N'@ce nvarchar(22),@mode nvarchar(14),@cs nvarchar(22)', @hints = N'OPTION (RECOMPILE)'; Lưu ý Bạn phải thay thế truy vấn ví dụ với truy vấn mà bạn đang gặp phải vấn đề. Nó có thể được lấy từ hồ sơ theo dõi, vì vậy không thêm ký tự nào là vô tình thêm vào. Ngoài ra, hãy đảm bảo rằng truy vấn chọn được đặt trong một dòng đơn (ví dụ, nó không nên có bất kỳ nguồn cấp dịch chuyển hoặc đường kẻ nào khác) để hướng dẫn lập kế hoạch có thể hoạt động thành công. Bạn cũng có thể phải sử dụng DBCC FREEPROCCACHE để tắt kế hoạch cũ từ bộ đệm ẩn.

Trạng thái

Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Bạn cần thêm trợ giúp?

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Microsoft dùng nội bộ

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?

Cảm ơn phản hồi của bạn!

×