SQL Server rozdělí každý index až na 200 se pohybuje s následujícími údaji (z zde
):
Většina vyplněných hodnot obvykle přechází do RANGE_HI_KEY .
Mohou se však dostat do rozsahu a to může vést ke zkreslení distribuce.
Představte si tyto údaje (mimo jiné):
Hodnota klíče Počet řádků
1 1
2 1
3 10000
4 1
SQL Server obvykle vytváří dva rozsahy:1 až 3 a 4 na další naplněnou hodnotu, díky čemuž budou tyto statistiky:
RANGE_HI_KEY RANGE_ROWS EQ_ROWS AVG_RANGE_ROWS DISTINCT_RANGE_ROWS
3 2 10000 1 2
, což znamená, že při hledání, řekněme, 2 , existuje ale 1 řádek a je lepší použít přístup k indexu.
Ale pokud 3 spadá do rozsahu, statistiky jsou tyto:
RANGE_HI_KEY RANGE_ROWS EQ_ROWS AVG_RANGE_ROWS DISTINCT_RANGE_ROWS
4 10002 1 3334 3
Optimalizátor si myslí, že existují 3334 řádků pro klíč 2 a přístup k indexu je příliš drahý.