Giá trị tốt nhất cho hệ số lấp đầy trong chỉ mục


7

Tôi sử dụng SQL Server 2008 R2và muốn đặt giá trị cho thuộc tính hệ số điền trong mỗi chỉ mục. Tôi tìm công thức để tính giá trị tốt nhất cho thuộc tính này (có hiệu suất tốt hơn khi chèn bản ghi). Ngoài ra làm thế nào tôi có thể đo hiệu suất truy vấn bằng cách đặt giá trị độ trễ cho thuộc tính này.

Cảm ơn rất nhiều trước.


Câu trả lời:


8

Không có một câu trả lời cho tất cả với yếu tố điền. Nó chủ yếu phụ thuộc vào cách sửa đổi dữ liệu của bạn diễn ra trên toàn cơ sở dữ liệu hoặc trong các chỉ mục cụ thể. Giá trị mặc định, ngoài hộp là 0 (100), hầu như không còn chỗ trống trong một trang. Điều này có nghĩa là việc chèn vào giữa trang sẽ gây ra sự phân chia trang.

Theo dõi bộ đếm Chia tách trang / giây của bạn và nếu bạn đang thấy tỷ lệ cao, thì bạn có thể muốn xem xét lại hệ số lấp đầy của mình. Nhưng đừng mù quáng đặt mức thấp đó, vì bạn sẽ sử dụng nhiều dung lượng đĩa hơn với hệ số lấp đầy thấp hơn. Và một cách tự nhiên, nó sẽ khiến số lần đọc IO cao hơn, vì có nhiều trang hơn để chứa dữ liệu.

Tôi khuyên bạn nên xem câu trả lời của tôi ở đây liên quan đến yếu tố điền . Đó là một câu hỏi loại khác, nhưng nó sẽ cho bạn ý tưởng tốt hơn về yếu tố điền và cách nó ảnh hưởng đến bạn.


4

Ý 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 đề:

  1. 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.
  2. 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
  3. 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.
  4. 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.

  1. 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)
  2. 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%.
  3. 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ả)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.