I costi delle operazioni di I/O differiscono tra le scansioni degli indici e le scansioni delle tabelle in diversi modi:
Scansione dell'indice
1. Costo delle operazioni di I/O: le scansioni dell'indice sono generalmente più efficienti in termini di operazioni di I/O. Devono solo leggere l'indice, che in genere è più piccolo dell'intera tabella, con conseguente minor numero di accessi al disco.
2. Costo I/O: il costo I/O per una scansione dell'indice è generalmente inferiore perché l'indice è più compatto e può essere letto più rapidamente.
3. Costo CPU: il costo CPU per una scansione dell'indice è in genere inferiore perché l'indice è più organizzato ed è possibile effettuare ricerche in modo più efficiente.
4. Costo totale dell'operatore: il costo totale dell'operatore per una scansione dell'indice è generalmente inferiore perché include i costi di I/O e CPU.
Scansione tabella
1. Costo delle operazioni di I/O: le scansioni delle tabelle sono generalmente meno efficienti in termini di operazioni di I/O. Devono leggere l'intera tabella, il che può comportare più accessi al disco.
2. Costo I/O: il costo I/O per una scansione di tabella è in genere più elevato perché la tabella è più grande e richiede più accessi al disco.
3. Costo CPU: il costo CPU per la scansione di una tabella è in genere più elevato perché la tabella è più grande e richiede più elaborazione.
4. Costo totale dell'operatore: il costo totale dell'operatore per la scansione di una tabella è in genere più elevato perché include i costi di I/O e CPU.
Conclusione
In sintesi, le scansioni degli indici sono generalmente più efficienti in termini di operazioni di I/O e utilizzo della CPU rispetto alle scansioni delle tabelle. Tuttavia, la scelta tra i due dipende dai requisiti e dai vincoli specifici della query e del database.
Citazioni:[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