Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hur skiljer sig kostnaderna för I/O-operationer mellan indexskanningar och tabellskanningar


Hur skiljer sig kostnaderna för I/O-operationer mellan indexskanningar och tabellskanningar


Kostnaderna för I/O-operationer skiljer sig mellan indexskanningar och tabellskanningar på flera sätt:

Index Scan

1. Kostnad för I/O-operationer: Indexskanningar är i allmänhet mer effektiva när det gäller I/O-operationer. De behöver bara läsa indexet, som vanligtvis är mindre än hela tabellen, vilket resulterar i färre diskåtkomster.

2. I/O-kostnad: I/O-kostnaden för en indexskanning är vanligtvis lägre eftersom indexet är mer kompakt och kan läsas snabbare.

3. CPU-kostnad: CPU-kostnaden för en indexskanning är vanligtvis lägre eftersom indexet är mer organiserat och kan sökas mer effektivt.

4. Total operatörskostnad: Den totala operatörskostnaden för en indexskanning är vanligtvis lägre eftersom den inkluderar I/O- och CPU-kostnader.

Tabellskanning

1. Kostnad för I/O-operationer: Tabellskanningar är i allmänhet mindre effektiva när det gäller I/O-operationer. De måste läsa hela tabellen, vilket kan resultera i fler diskåtkomster.

2. I/O-kostnad: I/O-kostnaden för en tabellskanning är vanligtvis högre eftersom tabellen är större och kräver fler diskåtkomster.

3. CPU-kostnad: CPU-kostnaden för en tabellskanning är vanligtvis högre eftersom tabellen är större och kräver mer bearbetning.

4. Total operatörskostnad: Den totala operatörskostnaden för en tabellskanning är vanligtvis högre eftersom den inkluderar I/O- och CPU-kostnader.

Slutsats

Sammanfattningsvis är indexskanningar generellt sett mer effektiva när det gäller I/O-operationer och CPU-användning jämfört med tabellskanningar. Men valet mellan de två beror på de specifika kraven och begränsningarna för frågan och databasen.

Citat:
[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