Náklady na I/O operácie sa medzi skenovaním indexov a skenovaním tabuliek líšia niekoľkými spôsobmi:
Indexové skenovanie
1. Cena I/O operácií: Indexové skenovanie je vo všeobecnosti efektívnejšie z hľadiska I/O operácií. Potrebujú iba prečítať index, ktorý je zvyčajne menší ako celá tabuľka, čo vedie k menšiemu počtu prístupov na disk.
2. Cena I/O: Cena I/O pre skenovanie indexu je zvyčajne nižšia, pretože index je kompaktnejší a možno ho čítať rýchlejšie.
3. Náklady na CPU: Náklady na CPU na skenovanie indexu sú zvyčajne nižšie, pretože index je organizovanejší a možno v ňom efektívnejšie vyhľadávať.
4. Celkové náklady operátora: Celkové náklady operátora na skenovanie indexu sú zvyčajne nižšie, pretože zahŕňajú náklady na vstup/výstup a náklady na CPU.
Skenovanie tabuľky
1. Cena I/O operácií: Prehľadávanie tabuliek je vo všeobecnosti menej efektívne z hľadiska I/O operácií. Potrebujú prečítať celú tabuľku, čo môže viesť k väčšiemu počtu prístupov na disk.
2. Cena I/O: Cena I/O na skenovanie tabuľky je zvyčajne vyššia, pretože tabuľka je väčšia a vyžaduje viac prístupov na disk.
3. Náklady na CPU: Náklady na CPU na skenovanie tabuľky sú zvyčajne vyššie, pretože tabuľka je väčšia a vyžaduje si viac spracovania.
4. Celkové náklady operátora: Celkové náklady operátora na skenovanie tabuľky sú zvyčajne vyššie, pretože zahŕňajú náklady na I/O a CPU.
Záver
Stručne povedané, skenovanie indexov je vo všeobecnosti efektívnejšie z hľadiska I/O operácií a využitia procesora v porovnaní so skenovaním tabuliek. Voľba medzi nimi však závisí od konkrétnych požiadaviek a obmedzení dopytu a databázy.
Citácie:[1] https://www.ibm.com/docs/en/db2/11.5?topic=methods-data-access-through-index-scans
[2] https://stackoverflow.com/questions/8702905/table-scan-and-index-scan-in-sql
[3] https://dba.stackexchange.com/questions/250474/shouldnt-operator-cost-at-least-be-as-large-as-i-o-or-cpu-cost-that-comprises-i
[4] https://forums.oracle.com/ords/r/apexds/community/q?question=cost-of-a-full-table-scan-is-less-than-an-index-unique-scan -1453
[5] http://venkatsqlinterview.blogspot.com/2011/05/difference-between-index-scan-and-index.html