SQL Server
membagi setiap indeks menjadi hingga 200
rentang dengan data berikut (dari di sini
):
Biasanya, nilai yang paling banyak diisi masuk ke RANGE_HI_KEY
.
Namun, mereka dapat masuk ke dalam jangkauan dan ini dapat menyebabkan distribusi yang tidak seimbang.
Bayangkan data ini (antara lain):
Nilai kunci Jumlah baris
1 1
2 1
3 10000
4 1
SQL Server
biasanya membangun dua rentang:1
ke 3
dan 4
ke nilai populasi berikutnya, yang membuat statistik ini:
RANGE_HI_KEY RANGE_ROWS EQ_ROWS AVG_RANGE_ROWS DISTINCT_RANGE_ROWS
3 2 10000 1 2
, yang berarti ketika mencari, katakanlah, 2
, hanya ada 1
baris dan lebih baik menggunakan akses indeks.
Tetapi jika 3
masuk ke dalam rentang, statistiknya adalah sebagai berikut:
RANGE_HI_KEY RANGE_ROWS EQ_ROWS AVG_RANGE_ROWS DISTINCT_RANGE_ROWS
4 10002 1 3334 3
Pengoptimal menganggap ada 3334
baris untuk kunci 2
dan akses indeks terlalu mahal.