คิวรีเมื่อทำ Index Scan ในดรรชนีแบบ CI


Home Page  |   รายการบทความ   |   ลิงค์ที่เกี่ยวข้อง   |   laploy.com  |  เกี่ยวกับผู้เขียน

คิวรีเมื่อทำ Index Scan ในดรรชนีแบบ CI

 

ต่อไปนี้เป็นตัวอย่างการสแกนดรรชนีทั้งตาราแบบ Index Scan คือไล่ตั้งแต่แถวแรกไปถึงแถวที่แสนกว่าๆ ผู้เขียนเลือกฉายข้อมูลเฉพาะคอลัมน์ที่เป็นกุญแจโดยเขียนคิวรีดังนี้

SELECT SalesOrderID, SalesOrderDetailID, OrderQty

FROM Sales.SalesOrderDetail

โปรดสังเกตว่าคอลัมน์ที่ฉายมีสามคอลัมน์คือ SalesOrderID, SalesOrderDetailID, OrderQty วิธีตรวจสอบเพื่อวัดประสิทธิภาพของคิวรีให้ดำเนินการตามขั้นตอนดังนี้

  1. เปิดโปรแกรม SSMS
  2. เชื่อมต่อกับดาต้าเบสเซอฟเวอร์ที่มีฐานข้อมูล AdventureWorks
  3. คลิกที่ไอคอน AdventureWorks
  4. กดปุ่ม New Query บนแถบปุ่มมุมบนด้านซ้าย (อยู่ใต้เมนูของโปรแกรม SSMS)
  5. ป้อนพิมพ์คิวรีข้างบนลงใน QE ทางขวาของจอภาพ
  6. กดปุ่ม Display estimated execution plan เพื่อให้โปรแกรม SQL2008 แสดงแผนภูมิวิเคราะห์แผนการปฏิบัติงาน

 

 

    ภาพ 8-25 : ปุ่ม Display estimated execution plan

ในภาพ 8-26 จะเห็นว่าด้านบนคือคิวรี ด้านล่างคือแผนภูมิวิเคราะห์การปฏิบัติงานของคิวรี วิธีอ่านแผนภูมิให้อ่านจากขวาไปซ้าย ไอคอนแรกคือการทำ Index Scan มี cost หรือค่าใช้จ่ายในการทำงาน 100% ไอคอนทางซ้ายคือ SELECT มี cost 0% การคิด cost คิดจากการกินทรัพยากรของกระบวนการ ทรัพยากรในที่นี้คือทรัพยากรของระบบ เช่น I/O Cost คือการทำงานของอุปกรณ์ที่เชื่อมต่อกับฮาร์ดดิสก์ CPU Cost คือการประมวลผลของซีพียู cost

 

ภาพ 8-26 : แผนภูมิวิเคราะห์การปฏิบัติงานของคิวรีเมื่อทำ Index Scan ในดรรชนีแบบ CI

 

ในคิวรีนี้จะเห็นว่าการทำงานทั้งหมดอยู่ที่ Clustered Index Scan ให้เลื่อนเมาส์ไปทับบนไอคอน Clustered Index Scan โปรแกรม SQL2008 จะแสดงรายงานสรุปการทำงาน มีข้อมูลอยู่หลายบรรทัด แต่บรรทัดที่ท่านควรสนใจคือ Estimated Operator Cost (EOC) ซึ่งแสดงค่าการทำงานโดยรวมของกระบวนการทั้งหมด ค่านี้ยิ่งน้อยยิ่งดี คิวรีนี้ได้ EOC เท่ากับ 1.05006 ซึ่งถือว่าสูงมาก สาเหตุที่ค่า EOC สูงเพราะโปรแกรม SQL2008 จะต้องสแกนตารางทั้งหมดแสนกว่าแถว

โปรดสังเกตอีกอย่างหนึ่งว่าโปรแกรม SQL2008 วิเคราะห์คิวรีนี้แล้วพบว่าควรใช้ดรรชนีหมายเลข 1 ในการทำงานจะเหมาะสุด และโปรดสังเกตว่าดรรชนีหมายเลข 1 เป็นดรรชนีแบบ CI

 

โฆษณา

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Google photo

You are commenting using your Google account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: