Xem xét một chỉ mục cây B trên một giá trị sẽ luôn tăng đơn điệu, ví dụ: một cột có kiểu IDENTITY. Với cách triển khai cây B thông thường, bất cứ khi nào một nút đầy, nó sẽ được chia 50% / 50% và chúng tôi kết thúc với cây B trong đó (gần như) tất cả các nút sẽ chỉ đầy 50%.
Tôi biết rằng Oracle phát hiện ra khi một giá trị ngày càng tăng và trong những trường hợp này, Oracle thực hiện phân chia 90% / 10% thay thế. Bằng cách đó, (gần như) tất cả các nút sẽ đầy 90% và sử dụng trang tốt hơn nhiều cho các trường hợp này, khá phổ biến.
Tôi chưa thể tìm thấy tài liệu cho một tính năng tương tự trong SQL Server. Tuy nhiên, tôi đã thực hiện hai thử nghiệm trong đó tôi chèn N số nguyên ngẫu nhiên và N số nguyên liên tiếp trong một chỉ mục, tương ứng. Các trường hợp trước sử dụng nhiều trang hơn sau này.
SQL Server có cung cấp chức năng tương tự không? Nếu vậy: bạn có thể chỉ cho tôi một số tài liệu về tính năng này không?
CẬP NHẬT: Dường như, bằng các thí nghiệm được cung cấp dưới đây, các nút lá được giữ nguyên không bị chia tách và các nút bên trong được chia 50% / 50%. Điều đó làm cho cây B trên các phím tăng nhỏ gọn hơn so với các phím ngẫu nhiên. Tuy nhiên, 90% / 10% -approach của Oracle thậm chí còn tốt hơn và tôi vẫn tìm kiếm một số tài liệu chính thức có thể xác minh hành vi được thấy trong các thử nghiệm.