Triệu chứng
Giả định rằng bạn có một bảng bằng cách sử dụng các ràng buộc của khóa nước ngoài được đặt thành thác xóa và số liệu thống kê trên cột khóa ngoại không bao gồm toàn bộ phạm vi của các giá trị then chốt trong bảng (ví dụ: vì số liệu thống kê không được cập nhật sau khi phân phối dữ liệu vào bảng). Trong trường hợp này, khi bạn tìm cách xóa một hàng tương ứng với một giá trị then chốt không được biểu thị trong biểu đồ thống kê và trình tối ưu truy vấn đang sử dụng ước tính cardinality mặc định, thao tác xóa sẽ chậm hơn so với dự kiến. Bạn cũng có thể nhận thấy thao tác quét chỉ mục được dùng để tìm các hàng phù hợp trong bảng tham chiếu.
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".
Giải pháp
Sự cố này đã được khắc phục trong các bản Cập Nhật tích lũy sau đây cho SQL Server:
Lưu ý: Bản sửa lỗi này chỉ được bật khi bạn bật các hotfix trình tối ưu hóa trên (trong đó thông qua tùy chọn cấu hình cơ sở dữ liệu, gợi ý truy vấn hoặc dấu vết 4199).
Giới thiệu về Cập Nhật tích lũy cho SQL Server:
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
Để khắc phục sự cố này, hãy sử dụng một trong các phương pháp sau:
-
Sử dụng dự toán ước tính kế thừa. Để biết thêm thông tin, hãy xem dự toán ước tính (SQL Server).
-
Loại bỏ việc xóa xếp tầng khỏi định nghĩa khóa ngoài và thực hiện thao tác xóa bằng cách sử dụng nối giữa các bảng phụ huynh và con để thực hiện tương đương với việc xóa xếp tầng.
-
Cập Nhật thống kê trên bảng mẹ với FULLSCAN trước khi xóa dữ liệu.
Tham khảo
Tìm hiểu về thuật ngữ mà Microsoft sử dụng để mô tả các bản cập nhật phần mềm.