Stroški I/O operacij med indeksnimi pregledi in pregledi tabele se bistveno razlikujejo glede na dostop do podatkov, število branih strani in učinkovitost na podlagi selektivnosti poizvedb in organizacije podatkov.
Indeksni pregledi vključujejo dostop do podatkov s prehodom indeksne strukture (pogosto B-drevo). Stroški tukaj vključujejo predvsem dve komponenti: stroški dostopa do indeksnih strani in stroški pridobivanja ustreznih strani tabele. Indeksne strani imajo običajno vzorce naključnega dostopa, ker vozlišča indeksnih listov morda niso fizično sosednja na disku, kar vodi do naključnih operacij V/I. Vsak logični korak navzdol po indeksnem drevesu od korena do lista zahteva bralne strani in ta strošek je ocenjen z uporabo parametra naključnih strani sistema. Po iskanju vnosov indeksa za ustrezne vrstice sistem pridobi ustrezne strani podatkov tabele. Število takšnih podatkovnih strani je odvisno od selektivnosti poizvedbe in fizične korelacije med shranjenimi podatki in indeksnim vrstnim redom (znano kot korelacija). Visoka korelacija pomeni, da indeks vnosa lokacije vrstic tesno ustrezajo fizičnemu vrstnem redu podatkov, kar zmanjšuje naključni V/I in naredi indeksno skeniranje učinkovitejše. Po drugi strani pa nizka korelacija vodi do številnih naključnih prizorov, kar bistveno poveča stroške V/I.
Stroški CPU -ja v indeksnih pregledih vključujejo obdelavo vsake posamezne vrstice, ki je bila pridobljena, vendar je glavna skrb za stroške I/O. Obstaja tudi vidik vidnosti: če ima baza podatkov zemljevida vidljivosti, katere strani podatkov so v celoti vidne za vse transakcije, lahko sistem včasih popolnoma preskoči odčitavanje nekaterih strani med pregledi, ki so samo za indeks, in drastično zniža stroške V/I.
V nasprotju s tem delujejo tabele ali polne tabele, tako da zaporedno preberete vse strani podatkov iz tabele. V/I je tukaj večinoma zaporedna, ki je ponavadi hitrejša od naključnega V/I na predenje diskov ali manj kaznovana na SSD -jih. Stroški skeniranja polne tabele so razmeroma konstantni, saj bere celotno tabelo ne glede na število vrstic, ki izpolnjujejo poizvedbo. Ta strošek je odvisen od skupnega števila strani v tabeli in ne od števila izbranih vrstic. Pregledi celotne tabele nimajo koristi od selektivnosti; Morajo prebrati vsako stran, tudi če poizvedba močno filtrira vrstice. Vendar pa so s sodobnimi tehnologijami za shranjevanje in optimizacijami, kot so odčitki z več bloki, vzporedni odčitki in razstavljanje slojev shranjevanja, stroški pregledov polne tabele so lahko konkurenčni ali celo manj kot indeksni pregledi za poizvedbe, ki pridobijo pomemben del tabele.
Optimizer, ki temelji na stroških (CBO), odloča med uporabo indeksnega skeniranja in celotnim skeniranjem tabele na podlagi ocenjenih stroškov. Za zelo selektivne poizvedbe, kjer je treba le majhen del vrstic pridobiti samo indeksne preglede, imajo nižje stroške V/I, ker je pridobljenih manj strani za mizo. Ko se prag selektivnosti povečuje (potrebno je več vrstic), se stroški V/I za indeksne preglede dvignejo zaradi večjega števila naključnih poti in indeksnih prehodov, kar sčasoma presega stroške celotnega skeniranja tabele. Na tej točki CBO daje prednost pregledu tabele, ker so zaporedni stroški V/I manjši od naključnega bremena V/I številnih indeksov.
Drug pomemben dejavnik, ki vpliva na razlike v stroških V/I, je "faktor združevanja" ali fizično združevanje vrstic, ki ustrezajo indeksnim tipkam. Nižji faktor grozda (boljše grozdanje) pomeni, da so vrstice, ki jih dostopajo prek indeksa, fizično nahajajo, zmanjšajo naključno V/I in izboljšanje učinkovitosti skeniranja indeksa. Višji faktor grozda vodi do bolj naključnega V/I med indeksnim skeniranjem in zmanjšuje njegovo korist v primerjavi s pregledom tabele.
Sodobni sistemi baz podatkov lahko izvajajo tudi vzporedne preglede indeksa in polne tabele, kjer se viri V/I in CPU delijo med več delavcev, kar lahko skrajša skupni čas poizvedb. Vendar temeljna narava V/I za indeksne preglede (naključni dostop do strani) v primerjavi s pregledi tabele (večinoma zaporedni dostop do strani) ostaja ključni razlikovalnik.
Če povzamem ključne točke glede razlik v stroških V/I:
- Indeksni pregledi imajo stroške V/I iz strani branja indeksov (naključni dostop) in pridobivanje ustreznih podatkovnih strani (potencialno naključni dostop). Stroški so občutljivi na selektivnost, korelacijo in faktor grozda.
- Pregledi celotne tabele izvajajo zaporedno V/I branje vseh strani z razmeroma stabilnimi stroški V/I, ne glede na selektivnost.
- Indeksni pregledi lahko presegajo, ko poizvedbe ciljajo na majhne podskupine podatkov, vendar trpijo zaradi naključnih V/I, ko se selektivnost dvigne.
- Pregledi celotne tabele so lahko učinkovitejši, če velik del tabele potrebuje dostop zaradi učinkovitega zaporednega V/I.
- Zemljevidi vidnosti in samo indeksni pregledi lahko v nekaterih primerih skeniranja indeksov zmanjšajo stroške V/I, tako da se izognete odčitkom podatkovne strani.
- Paralelizem lahko izboljša obe vrsti skeniranja, vendar ne spreminja temeljnih značilnosti V/I.
- Optimizer uravnoteži te stroške, da izberejo najučinkovitejšo metodo, ki temelji na značilnostih poizvedb in podatkov.