Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kā I/O operāciju izmaksas atšķiras starp indeksu skenēšanu un tabulu skenēšanu


Kā I/O operāciju izmaksas atšķiras starp indeksu skenēšanu un tabulu skenēšanu


I/O operāciju izmaksas indeksa skenēšanai un tabulu skenēšanai atšķiras vairākos veidos:

Indeksa skenēšana

1. I/O operāciju izmaksas: indeksu skenēšana parasti ir efektīvāka I/O darbību ziņā. Viņiem ir jālasa tikai indekss, kas parasti ir mazāks par visu tabulu, kā rezultātā diskam ir mazāk piekļuves.

2. I/O izmaksas: indeksa skenēšanas I/O izmaksas parasti ir zemākas, jo indekss ir kompaktāks un to var nolasīt ātrāk.

3. CPU izmaksas: CPU izmaksas indeksa skenēšanai parasti ir zemākas, jo indekss ir sakārtotāks un tajā var meklēt efektīvāk.

4. Kopējās operatora izmaksas: kopējās operatora izmaksas indeksa skenēšanai parasti ir zemākas, jo tajās ir iekļautas I/O un CPU izmaksas.

Tabulas skenēšana

1. I/O operāciju izmaksas: tabulu skenēšana parasti ir mazāk efektīva I/O darbību ziņā. Viņiem ir jāizlasa visa tabula, kas var izraisīt vairāk piekļuves diskam.

2. I/O izmaksas: I/O izmaksas tabulas skenēšanai parasti ir augstākas, jo tabula ir lielāka un tai nepieciešama lielāka piekļuve diskam.

3. CPU izmaksas: CPU izmaksas tabulas skenēšanai parasti ir augstākas, jo tabula ir lielāka un tai nepieciešama lielāka apstrāde.

4. Kopējās operatora izmaksas: kopējās operatora izmaksas par tabulas skenēšanu parasti ir augstākas, jo tajās ir iekļautas I/O un CPU izmaksas.

Secinājums

Rezumējot, indeksu skenēšana parasti ir efektīvāka I/O darbību un CPU lietojuma ziņā, salīdzinot ar tabulu skenēšanu. Tomēr izvēle starp diviem ir atkarīga no vaicājuma un datu bāzes īpašajām prasībām un ierobežojumiem.

Citāts:
[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