ต้นทุนของการดำเนินการ I/O แตกต่างกันระหว่างการสแกนดัชนีและการสแกนตารางในหลายวิธี:
สแกนดัชนี
1. ต้นทุนการดำเนินการ I/O: โดยทั่วไปการสแกนดัชนีจะมีประสิทธิภาพมากกว่าในแง่ของการดำเนินการ I/O พวกเขาจำเป็นต้องอ่านดัชนีเท่านั้น ซึ่งโดยทั่วไปจะมีขนาดเล็กกว่าทั้งตาราง ส่งผลให้เข้าถึงดิสก์น้อยลง
2. ต้นทุน I/O: โดยทั่วไปต้นทุน I/O สำหรับการสแกนดัชนีจะต่ำกว่า เนื่องจากดัชนีมีขนาดเล็กกว่าและสามารถอ่านได้รวดเร็วกว่า
3. ต้นทุน CPU: โดยทั่วไปต้นทุน CPU สำหรับการสแกนดัชนีจะลดลง เนื่องจากดัชนีมีการจัดระเบียบมากขึ้นและสามารถค้นหาได้อย่างมีประสิทธิภาพมากขึ้น
4. ต้นทุนรวมของผู้ดำเนินการ: โดยทั่วไปต้นทุนรวมของผู้ดำเนินการสำหรับการสแกนดัชนีมักจะต่ำกว่า เนื่องจากค่าใช้จ่ายดังกล่าวรวมต้นทุน I/O และ CPU แล้ว
สแกนตาราง
1. ต้นทุนการดำเนินการ I/O: โดยทั่วไปการสแกนตารางจะมีประสิทธิภาพน้อยกว่าในแง่ของการดำเนินการ I/O พวกเขาจำเป็นต้องอ่านทั้งตาราง ซึ่งอาจส่งผลให้มีการเข้าถึงดิสก์มากขึ้น
2. ต้นทุน I/O: โดยทั่วไปต้นทุน I/O สำหรับการสแกนตารางจะสูงกว่า เนื่องจากตารางมีขนาดใหญ่กว่าและต้องการการเข้าถึงดิสก์มากขึ้น
3. ต้นทุน CPU: โดยทั่วไปต้นทุน CPU สำหรับการสแกนตารางจะสูงกว่า เนื่องจากตารางมีขนาดใหญ่กว่าและต้องมีการประมวลผลมากขึ้น
4. ค่าใช้จ่ายรวมของผู้ให้บริการ: โดยทั่วไปแล้ว ค่าใช้จ่ายรวมของผู้ให้บริการสำหรับการสแกนตารางจะสูงกว่า เนื่องจากค่าใช้จ่ายดังกล่าวรวมค่าใช้จ่าย I/O และ CPU แล้ว
บทสรุป
โดยสรุป โดยทั่วไปการสแกนดัชนีจะมีประสิทธิภาพมากกว่าในแง่ของการดำเนินการ I/O และการใช้งาน CPU เมื่อเปรียบเทียบกับการสแกนตาราง อย่างไรก็ตาม ตัวเลือกระหว่างทั้งสองขึ้นอยู่กับข้อกำหนดและข้อจำกัดเฉพาะของการสืบค้นและฐานข้อมูล
การอ้างอิง:[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
-