Microsoft phân phối Microsoft SQL Server 2008 R2 hoặc Microsoft SQL Server 2008 hoặc các bản sửa lỗi Microsoft SQL Server 2012 trong một tệp được tải xuống. Vì bản sửa lỗi được tích lũy, mỗi bản phát hành mới chứa tất cả các hotfix và tất cả các bản Cập Nhật bảo mật được bao gồm trong phiên bản SQL Server 2008 R2 hoặc SQL Server 2008 hoặc Microsoft SQL Server 2012 Update Release.
Triệu chứng
Hãy cân nhắc tình huống sau đây. Bạn chạy một truy vấn có chứa một số và vị từ trong Microsoft SQL Server 2008, trong Microsoft SQL Server 2008 R2, hoặc trong Microsoft SQL Server 2012. Các điều kiện của và vị từ có tương quan. Trong trường hợp này, bạn có kinh nghiệm hiệu suất kém trong SQL Server 2008. Ví dụ, sự cố này xảy ra khi bạn chạy một truy vấn giống như sau:
(column1 = constant1 or column1 = constant2 or …) and (column2 = constant3 or column2 = constant4 or …) and …
Nguyên nhân
Sự cố này xảy ra vì trình tối ưu hóa truy vấn sẽ chọn kế hoạch truy vấn không hiệu quả nếu truy vấn có chứa tương quan và predicates. Khi số hàng ước tính đáp ứng các điều kiện của a và predicate, SQL Server giả định rằng tất cả các điều kiện đều độc lập. Nếu các điều kiện tương quan, SQL Server sẽ cố định tính toán cho và predicates.
Giải pháp
Để giải quyết vấn đề này, hãy áp dụng bản Cập Nhật tích lũy sau đây. Sau khi bạn áp dụng bản Cập Nhật, bạn phải bật theo dõi gắn cờ 4137 để thêm lô-gic mới cho dự toán ước tính và predicates.Lưu ý Bản cập nhật này chỉ áp dụng cho các predicates lọc.
Thông tin Cập Nhật tích lũy
Gói dịch vụ SQL Server 2008 3
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong Cumulative Update 7 cho SQL Server 2008 Service Pack 3. Để biết thêm thông tin về cách tải gói Cập Nhật tích lũy này, hãy bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2738350 Gói Cập Nhật tích lũy 7 cho SQL Server 2008 gói dịch vụ 3Lưu ý Vì bản dựng được tích lũy, mỗi bản phát hành khắc phục sự cố mới 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 phát hành SQL Server 2008 gói dịch vụ trước đó 3. Chúng tôi khuyên bạn nên cân nhắc việc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2629969 Bản dựng SQL Server 2008 đã được phát hành sau khi SQL Server 2008 Service Pack 3 đã được phát hành
SQL Server 2012
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong Cumulative Update 1 cho SQL Server 2012. Để biết thêm thông tin về gói Cập Nhật lũy tích này, hãy bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2679368 Gói Cập Nhật tích lũy 1 cho SQL Server 2012Lưu ý Vì bản dựng được tích lũy, mỗi bản phát hành khắc phục sự cố mới 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 phát hành khắc phục SQL Server 2012 trước đó. Microsoft khuyên bạn nên cân nhắc việc áp dụng bản phát hành khắc phục gần đây nhất có chứa các hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2692828 Bản dựng SQL Server 2012 đã được phát hành sau khi SQL Server 2012 đã được phát hành Bạn phải áp dụng một hotfix SQL Server 2012 vào một bản cài đặt của SQL Server 2012.
Gói dịch vụ SQL Server 2008 R2 1
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong bản Cập Nhật tích lũy 5 cho SQL Server 2008 R2 Service Pack 1. Để biết thêm thông tin về cách tải gói Cập Nhật tích lũy này, hãy bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2659694 Gói Cập Nhật tích lũy 5 cho SQL Server 2008 R2 gói dịch vụ 1Lưu ý Vì bản dựng được tích lũy, mỗi bản phát hành khắc phục sự cố mới 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 phát hành khắc phục SQL Server 2008 trước đó. Chúng tôi khuyên bạn nên cân nhắc việc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2567616 Bản dựng SQL Server 2008 R2 đã được phát hành sau khi SQL Server 2008 R2 Service Pack 1 đã được phát hành
Gói dịch vụ SQL Server 2008 2
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong Cumulative Update 8 cho SQL Server 2008 Service Pack 2. Để biết thêm thông tin về gói Cập Nhật lũy tích này, hãy bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2648096 Gói Cập Nhật tích lũy 8 cho SQL Server 2008 gói dịch vụ 2Lưu ý Vì bản dựng được tích lũy, mỗi bản phát hành khắc phục sự cố mới 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 phát hành khắc phục SQL Server 2008 trước đó. Microsoft khuyên bạn nên cân nhắc việc áp dụng bản phát hành khắc phục gần đây nhất có chứa các hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2402659 Bản dựng SQL Server 2008 đã được phát hành sau khi SQL Server 2008 Service Pack 2 đã được phát hành Các hotfix Microsoft SQL Server 2008 được tạo cho các gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng SQL Server 2008 gói dịch vụ 2 để cài đặt gói dịch vụ SQL Server 2008 2. Theo mặc định, mọi hotfix được cung cấp trong gói dịch vụ SQL Server sẽ được đưa vào gói dịch vụ SQL Server tiếp theo.
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".
Tham khảo
Để biết thêm thông tin về mô hình dịch vụ gia tăng cho SQL Server, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
935897 Mô hình dịch vụ gia tăng sẵn dùng từ nhóm SQL Server để cung cấp hotfixes cho các vấn đề được báo cáoĐể biết thêm thông tin về lược đồ đặt tên cho các bản Cập Nhật SQL Server, hãy bấm số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
822499Lược đồ đặt tên cho gói cập nhật phần mềm Microsoft SQL ServerĐể biết thêm thông tin về các thuật ngữ Cập nhật phần mềm, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
824684 Mô tả thuật ngữ chuẩn được sử dụng để miêu tả các bản cập nhật phần mềm của Microsoft