Pertimbangkan indeks B-tree pada nilai yang akan selalu meningkat secara monoton, misalnya kolom tipe IDENTITY. Dengan implementasi B-tree konvensional, setiap kali node penuh, ia akan dibagi 50% / 50% dan kita berakhir dengan B-tree di mana (hampir) semua node akan hanya 50% penuh.
Saya tahu bahwa Oracle menemukan ketika nilai semakin meningkat dan dalam kasus ini Oracle melakukan split 90% / 10% sebagai gantinya. Dengan begitu, (hampir) semua node akan 90% penuh dan pemanfaatan halaman yang jauh lebih baik diperoleh untuk kasus-kasus ini, sangat umum.
Saya belum dapat menemukan dokumentasi untuk fitur serupa di SQL Server. Namun, saya telah melakukan dua percobaan di mana saya memasukkan N bilangan bulat acak, dan N bilangan bulat berturut-turut dalam indeks, masing-masing. Kasus pertama menggunakan halaman jauh lebih banyak yang terakhir.
Apakah SQL Server menyediakan fungsionalitas yang serupa? Jika demikian: dapatkah Anda mengarahkan saya ke beberapa dokumentasi tentang fitur ini?
PEMBARUAN: Tampaknya, dari percobaan yang diberikan di bawah ini, bahwa simpul daun dijaga agar tidak dipisahkan dan simpul internal terpecah 50% / 50%. Itu membuat B-tree pada meningkatkan kunci lebih kompak daripada pada kunci acak. Namun, pendekatan 90% / 10% oleh Oracle bahkan lebih baik, dan saya masih mencari beberapa dokumentasi resmi yang dapat memverifikasi perilaku yang terlihat dalam percobaan.