Thực hiện truy vấn "" không thành công với lỗi sau: "Chỉ mục" "(phân vùng 1) trên bảng" "không thể được tổ chức lại vì khóa cấp độ trang bị vô hiệu hóa."
Kế hoạch bảo trì phải được thử ALTER INDEX REORGANIZE, đây là một hoạt động trực tuyến. Để xóa phân mảnh (các trang không theo thứ tự), các trang phải được khóa và di chuyển, điều này là không thể nếu khóa trang đã bị vô hiệu hóa. Cách duy nhất để chống phân mảnh mà không cần khóa trang là khóa toàn bộ phân vùng, điều này là không thể đối với REORGANIZE vì nó chỉ trực tuyến.
Sự khác biệt giữa hai chương trình khóa và hậu quả trong thế giới thực (trong sản xuất) của chúng là gì?
Bạn cần nắm được bản ghi và trang là gì để đánh giá tác động của việc không cho phép một loại khóa cụ thể. Nếu bạn không quen thuộc với các bộ lưu trữ SQL Server, hãy bắt đầu với Anatomy of a Record and Anatomy of a Page . Đặt rất đơn giản:
- hàng = hồ sơ
- hàng được lưu trữ trong các trang 8kb
Nếu bạn đã thay đổi các loại khóa được phép:
- Vô hiệu hóa khóa trang = Chỉ khóa hàng và bảng
- Vô hiệu hóa khóa hàng = Chỉ khóa trang và bảng
- Vô hiệu hóa cả hai = Chỉ khóa bảng
Có hai kịch bản tôi biết nơi nào có thể có ích khi không cho phép loại khóa. Không có nghĩa là không có người khác, hy vọng người khác sẽ bước vào với các ví dụ.
Bảng tra cứu được truy cập thường xuyên, thay đổi không thường xuyên - Bằng cách vô hiệu hóa cả khóa cấp độ trang và hàng, tất cả người đọc sẽ thực hiện khóa bảng chia sẻ. Điều này nhanh hơn / rẻ hơn thay vì chia sẻ ý định thông thường trên bàn, theo sau là chia sẻ ý định trên một trang và cuối cùng là khóa chia sẻ trên một hàng hoặc hàng cụ thể.
Ngăn chặn một kịch bản bế tắc cụ thể - Nếu bạn gặp phải các bế tắc gây ra bởi các quy trình đồng thời có được các khóa thường xuyên trên cùng một trang, việc không cho phép khóa hàng dẫn đến việc khóa trang được thực hiện thay thế. Chỉ một quá trình sau đó có thể truy cập trang tại một thời điểm, quá trình khác phải chờ.
Ví dụ đầu tiên là tối ưu hóa vi mô và không có khả năng mang lại lợi ích có thể đo lường được trên một hệ thống điển hình. Thứ hai sẽ giải quyết tình huống bế tắc cụ thể đó nhưng có thể gây ra các tác dụng phụ không mong muốn, ví dụ như tiêu diệt đồng thời trong một phần khác của mã. Khó đánh giá tác động đầy đủ, tiếp cận thận trọng!
Mặc định là cho cả hai được kích hoạt và điều này không nên thay đổi mà không có lý do chính đáng.