Ý tưởng cơ bản là bạn muốn các trang của bạn đầy đủ nhất có thể. Càng nhiều hàng được đóng gói vào một trang dữ liệu, bạn càng cần ít trang để đọc và giữ trong vùng đệm của mình.
Vì vậy, cuối cùng bạn muốn tất cả các trang của bạn đầy đủ 100% với dữ liệu.
Tuy nhiên:
Khi tất cả các trang của bạn đầy, bạn gặp phải một số vấn đề:
- Ra khỏi chỉ mục chèn. Những mục nhập phải được đặt ở giữa dữ liệu. Vì trang này đã đầy, các hồ sơ khác buộc phải chuyển sang một trang mới.
- bạn có một lược đồ bảng với một phần lớn của hàng là kiểu dữ liệu biến. Cập nhật thay đổi kích thước hàng có thể gây chia tách trang
- Cập nhật các khóa chỉ mục, làm cho các mục di chuyển trong chỉ mục gây ra sự chia tách trang.
- Phiên bản chụp nhanh thêm thẻ 14byte vào hàng, điều này có thể gây ra sự chia tách trang.
Có những nguyên nhân khác để chia trang nhưng đây là những nguyên nhân lớn nhất.
Tất cả những điều trên sẽ gây ra sự phân mảnh. Bây giờ thì tệ, nhưng theo một cách kỳ lạ thì tốt. Bởi vì đó là về điều duy nhất có thể giúp bạn quyết định đúng yếu tố điền đúng. Tôi sẽ giải thích tại sao.
Những gì bạn làm là:
Xem nếu bất kỳ ở trên áp dụng. Đối với các chỉ số mà làm, làm như sau.
- Bắt đầu với hệ số lấp đầy là 90% (chúng ta phải bắt đầu ở đâu đó)
Trong quy trình bảo trì chỉ mục của bạn, hãy xây dựng để bạn theo dõi tốc độ của các chỉ mục của bạn tạo ra sự phân mảnh. (nói 30% trong một tuần)
- Bây giờ trên thói quen xây dựng lại tiếp theo của bạn, giảm nhẹ hệ số lấp đầy. nói 80%. Xem nếu trong 7 ngày tới, sự phân mảnh của bạn ít hơn 30%.
- Tiếp tục như vậy, cho đến khi phân mảnh không đi xuống, hoặc phân mảnh đã trở nên rất thấp.
Hãy ghi nhớ rằng bạn nên đánh giá điều này theo thời gian. Khối lượng công việc của bạn, (mod dữ liệu) có thể thay đổi theo thời gian.
Cũng ghi nhớ những vấn đề hiện tại của bạn là gì. Trang plits gây thêm tải cho tệp nhật ký (có khả năng rất nhiều). Ghi thêm vào các tệp dữ liệu (đỉnh điểm kiểm tra cao hơn). Và đọc trước đọc trở nên ít hiệu quả hơn vì phân mảnh. Tuy nhiên, hệ số lấp đầy thấp, ăn hết dung lượng bộ đệm, tăng tải đọc.
Một điều cần hết sức cẩn thận là bộ đếm trang / giây không thực sự đáng tin cậy. Họ theo dõi tất cả các phân chia trang. (sql 2012 là tốt hơn) Điều tôi muốn nói là tất cả những gì tôi muốn nói là khi bạn chèn một bản ghi ở cuối chỉ mục, bạn cần một trang mới được thêm vào chỉ mục để tiếp tục. Việc thêm trang dữ liệu mới cũng được tính là một trang. Nhưng trong thực tế không có gì là chia rẽ. Vì vậy, để chèn vào một chỉ mục cụm sẽ vẫn có các phân chia trang khi bạn nhìn vào bộ đếm pageplit / giây, nhưng chúng không tệ. Vì vậy, chỉ nhìn vào quầy này liên quan đến các sự kiện khác. Ví dụ: Tải bản ghi trans cao không thể giải thích được cùng với các phần chèn ngoài đơn hàng cao cùng với các phân chia trang / giây cao.
Một lời cảnh báo cuối cùng. Đặc biệt là trên những chiếc bàn lớn. Luôn kiểm tra mật độ trang hiện tại của chỉ mục của bạn và tính toán tác động kích thước sẽ là gì khi bạn xây dựng lại chỉ mục với hệ số lấp đầy khác nhau. (Xây dựng lại một chỉ mục với mật độ trang 100% với hệ số lấp đầy 50% mới sẽ tăng gấp đôi kích thước của chỉ mục một cách hiệu quả)