โพสต์นี้เน้นถึงความแตกต่างระหว่างโปรไฟล์ SQL และเส้นฐานใน Oracle® และอธิบายวิธีการทำงานเมื่อปรับแต่งการสืบค้น
ตัวเพิ่มประสิทธิภาพ โปรไฟล์ และเส้นฐาน
ในระดับสูง องค์ประกอบทั้งสามนี้จะทำงานร่วมกันดังนี้:
-
เครื่องมือเพิ่มประสิทธิภาพการสืบค้นใช้ข้อมูล เช่น สถิติของระบบ ผูกตัวแปร และการคอมไพล์เพื่อให้ได้แผนดีที่สุดสำหรับการดำเนินการค้นหา อย่างไรก็ตาม บางครั้งการป้อนข้อมูลผิดพลาดก็นำไปสู่แผนด้อยประสิทธิภาพ
-
โปรไฟล์ SQL มีข้อมูลเสริมที่ช่วยบรรเทาปัญหานี้ ช่วยลดข้อผิดพลาดเหล่านี้และช่วยให้เครื่องมือเพิ่มประสิทธิภาพเลือกแผนที่ดีที่สุด
-
พื้นฐานแผน SQL สำหรับคำสั่ง SQL ประกอบด้วยชุดของแผนงานที่ยอมรับ หลังจากแยกวิเคราะห์คำสั่ง เครื่องมือเพิ่มประสิทธิภาพจะเลือกแผนที่ดีที่สุดจากชุดของแผนที่ยอมรับ หากเครื่องมือเพิ่มประสิทธิภาพต้นทุนพบแผนอื่นที่ดี โปรแกรมจะเพิ่มแผนใหม่ลงในประวัติแผน อย่างไรก็ตาม เครื่องมือเพิ่มประสิทธิภาพจะไม่ใช้แผนใหม่จนกว่าจะยืนยันว่าจะทำงานได้ดีกว่าแผนที่ยอมรับในปัจจุบัน
คิดแบบนี้:โปรไฟล์ SQL ให้ข้อมูลแก่เครื่องมือเพิ่มประสิทธิภาพเพื่อช่วยเลือกแผนที่ดีที่สุด แต่อย่าบังคับให้เครื่องมือเพิ่มประสิทธิภาพเลือกแผนเฉพาะใดๆ พื้นฐานแผน SQL จะจำกัดการเลือกแผนเครื่องมือเพิ่มประสิทธิภาพเป็นชุดของแผนงานที่ยอมรับ หากคุณต้องการ พิจารณาแผนตามต้นทุน รวมไว้ในชุดพื้นฐานที่ยอมรับของแผน
ใช้โปรไฟล์ SQL หากคุณต้องการให้เครื่องมือเพิ่มประสิทธิภาพใช้แผนต้นทุนต่ำและต้องการใช้สถิติล่าสุด ใช้ข้อมูลพื้นฐานเมื่อคุณต้องการใช้แผนชุดใดชุดหนึ่งโดยเฉพาะ หากเส้นพื้นฐานแผน SQL ไม่สามารถรับแผนที่ดีที่สุดจากชุดที่ยอมรับ ให้ใช้โปรไฟล์ SQL แทน
การจัดการแผน SQL
การจัดการแผน SQL (SPM) มีองค์ประกอบดังต่อไปนี้:
- วางแผนการจับภาพ
- การเลือกแผน
- แผนวิวัฒนาการ
การจับภาพแผน SPM
เมื่อคุณดำเนินการคำสั่งใดๆ ระบบจะทำการแยกวิเคราะห์แบบถาวรและสร้างแผนต้นทุนตามโปรไฟล์ SQL ที่มีอยู่ หลังจากที่เลือกแผนตามต้นทุนแล้ว จะเปรียบเทียบแผนที่มีอยู่ในข้อมูลพื้นฐานแผน SQL หากแผนตามต้นทุนตรงกับแผนใดแผนหนึ่งที่ยอมรับ คุณสามารถใช้แผนนั้นได้ หากแผนไม่ตรงกัน ระบบจะเพิ่มลงในแผนพื้นฐานเป็นแผนที่ไม่ยอมรับ
การเลือกแผน SPM
เมื่อคุณรันคำสั่ง SQL ด้วยแผนพื้นฐาน มันจะเลือกแผนที่ดีที่สุดสำหรับ SQL นั้น เครื่องมือเพิ่มประสิทธิภาพใช้กระบวนการเดียวกัน โปรไฟล์ SQL ที่มีอยู่ยังส่งผลต่อต้นทุนโดยประมาณสำหรับแต่ละแผนและเลือกแผนตามนั้น
วิวัฒนาการแผน SPM
องค์ประกอบสุดท้ายของ SPM คือวิวัฒนาการของแผนที่ไม่ยอมรับ ซึ่งทดสอบแผนที่ไม่ยอมรับกับแผนที่ยอมรับ กระบวนการนี้ประเมินแผนที่ดีที่สุดโดยพิจารณาเวลาที่ใช้โดยแบบสอบถามและทรัพยากร CPU ที่จำเป็น ยอมรับแผนดีที่สุดตามต้นทุนของการสืบค้น หากมีโปรไฟล์ SQL จะมีผลกับค่าใช้จ่ายโดยประมาณ
โปรไฟล์เทียบกับการเปรียบเทียบพื้นฐาน
ตารางต่อไปนี้ fromhttps://www.cnblogs.com/princessd8251/articles/3637461.html,เปรียบเทียบโปรไฟล์ SQL และพื้นฐานแผน SQL:
สถาปัตยกรรม
รูปภาพต่อไปนี้แสดงสถาปัตยกรรมพื้นฐานของแผน SQL:
ที่มาของรูปภาพ:https://ittutorial.org/sql-plan-management-using-sql-plan-baselines-in-oracle-oracle-database-performance-tuning-tutorial-14/)
โหลดข้อมูลพื้นฐานแผน SQL
รูปภาพต่อไปนี้แสดงสองวิธีในการโหลดข้อมูลพื้นฐานแผน SQL:
ที่มาของรูปภาพ:https://ittutorial.org/sql-plan-management-using-sql-plan-baselines-in-oracle-oracle-database-performance-tuning-tutorial-14/
ด้วยวิธีแรก คุณสามารถตั้งค่า OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES พารามิเตอร์การเริ่มต้นเป็น TRUE
เพื่อใช้จับภาพแผนอัตโนมัติ พารามิเตอร์การเริ่มต้นนี้คือ FALSE
โดยค่าเริ่มต้น ให้ตั้งค่าเป็น TRUE
ดังแสดงในตัวอย่างต่อไปนี้:
ด้วยวิธีที่สอง คุณสามารถใช้ DBMS_SPM แพ็คเกจเพื่อเปิดใช้งานการจัดการพื้นฐานแผน SQL ด้วยตนเอง โหลดแผนจากชุดปรับแต่ง SQL ตามที่แสดงในตัวอย่างต่อไปนี้:
โหลดข้อมูลพื้นฐานแผน SQL ด้วยตนเอง
ใช้คำสั่งต่อไปนี้เพื่อโหลดพื้นฐานแผนด้วยตนเอง:
ตรวจสอบการใช้งานพื้นฐานของแผน SQL
หลังจากโหลดข้อมูลพื้นฐานแผน SQL คุณต้องดำเนินการ SQL เพื่อดูว่าตัวเพิ่มประสิทธิภาพกำลังใช้พื้นฐานแผน SQL อยู่หรือไม่ คุณสามารถสอบถามข้อมูลพื้นฐานแผน SQL โดยใช้ SQL_TEXT และชื่อแผนดังต่อไปนี้:
แสดงข้อมูลพื้นฐานของแผน SQL
เรียกใช้แบบสอบถามต่อไปนี้เพื่อแสดงพื้นฐานแผน SQL:
วางพื้นฐานแผน SQL
หากต้องการวางพื้นฐานแผน SQL ให้เรียกใช้แบบสอบถามต่อไปนี้เพื่อตรวจสอบว่าตัวเพิ่มประสิทธิภาพ SQL planthe ใดใช้อยู่:
จากนั้น หลังจากที่คุณได้ใช้แผนแล้ว ให้รันคำสั่งต่อไปนี้เพื่อวางบรรทัดฐาน:
โปรไฟล์ Oracle SQL
SQL tunning advisor ซึ่งคุณทริกเกอร์ผ่าน Oracle Enterprise Manager(OEM) หรือโดยใช้การสืบค้นบรรทัดคำสั่ง สามารถสร้างโปรไฟล์ SQL สำหรับคำสั่ง SQL โปรไฟล์นี้มีข้อมูลเพิ่มเติมเกี่ยวกับคำชี้แจง
ตัวอย่าง
ในตัวอย่างนี้ คุณต้องรันโปรแกรมแนะนำการปรับ SQL ก่อนกับ sql_id จากนั้นดำเนินการกับโปรไฟล์ SQL:
1. เรียกใช้ที่ปรึกษาการปรับแต่ง SQL
เรียกใช้โค้ดที่ปรึกษาการปรับค่า SQL ต่อไปนี้สำหรับ sql_id 6dkrnbx1zdwy38
:
เรียกใช้ DBMS_SQLTUNE.report_tuning_task ต่อไปนี้ สำหรับคำแนะนำ:
2. ยอมรับ sql_profile
เรียกใช้รหัสต่อไปนี้เพื่อยอมรับ sql_profile:
3. ตรวจสอบชื่อ sql_profile
ใช้แบบสอบถามต่อไปนี้เพื่อตรวจสอบชื่อ sql_profile:
4. ปิดการใช้งาน sql_profile
เรียกใช้รหัสต่อไปนี้เพื่อปิดใช้งาน sql_profile:
หากต้องการเปิดใช้งาน ให้เปลี่ยนค่าจาก DISABLED
เพื่อ ENABLED
.
5. วาง sql_profile
เรียกใช้รหัสต่อไปนี้เพื่อวาง sql_profile:
บทสรุป
เมื่อคุณดำเนินการคำสั่ง SQL ใดๆ เครื่องมือเพิ่มประสิทธิภาพจะสร้างแผนการดำเนินการเพื่อแยกวิเคราะห์การสืบค้น ดึงข้อมูลจากฮาร์ดดิสก์ และวางลงในหน่วยความจำ โปรไฟล์ SQL และเส้นฐานจะแนะนำเครื่องมือเพิ่มประสิทธิภาพในการเลือกระยะเวลาและ CPU ของ planin ที่มีค่าใช้จ่ายน้อยที่สุด ค่าใช้จ่าย. แผน SQL ที่ดีสามารถเรียกใช้แบบสอบถามได้อย่างมีประสิทธิภาพและให้ผลลัพธ์ที่ต้องการเร็วขึ้น
เรียนรู้เพิ่มเติมเกี่ยวกับบริการฐานข้อมูลของเรา
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้เช่นกัน