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ý.