Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

โปรไฟล์ Oracle SQL และเส้นฐาน

โพสต์นี้เน้นถึงความแตกต่างระหว่างโปรไฟล์ 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:

โปรไฟล์ Oracle SQL และเส้นฐาน

สถาปัตยกรรม

รูปภาพต่อไปนี้แสดงสถาปัตยกรรมพื้นฐานของแผน SQL:

โปรไฟล์ Oracle SQL และเส้นฐาน

ที่มาของรูปภาพ:https://ittutorial.org/sql-plan-management-using-sql-plan-baselines-in-oracle-oracle-database-performance-tuning-tutorial-14/)


โหลดข้อมูลพื้นฐานแผน SQL

รูปภาพต่อไปนี้แสดงสองวิธีในการโหลดข้อมูลพื้นฐานแผน SQL:

โปรไฟล์ Oracle 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 ดังแสดงในตัวอย่างต่อไปนี้:

โปรไฟล์ Oracle SQL และเส้นฐาน

ด้วยวิธีที่สอง คุณสามารถใช้ DBMS_SPM แพ็คเกจเพื่อเปิดใช้งานการจัดการพื้นฐานแผน SQL ด้วยตนเอง โหลดแผนจากชุดปรับแต่ง SQL ตามที่แสดงในตัวอย่างต่อไปนี้:

โปรไฟล์ Oracle SQL และเส้นฐาน
โหลดข้อมูลพื้นฐานแผน SQL ด้วยตนเอง

ใช้คำสั่งต่อไปนี้เพื่อโหลดพื้นฐานแผนด้วยตนเอง:

โปรไฟล์ Oracle SQL และเส้นฐาน

ตรวจสอบการใช้งานพื้นฐานของแผน SQL

หลังจากโหลดข้อมูลพื้นฐานแผน SQL คุณต้องดำเนินการ SQL เพื่อดูว่าตัวเพิ่มประสิทธิภาพกำลังใช้พื้นฐานแผน SQL อยู่หรือไม่ คุณสามารถสอบถามข้อมูลพื้นฐานแผน SQL โดยใช้ SQL_TEXT และชื่อแผนดังต่อไปนี้:

โปรไฟล์ Oracle SQL และเส้นฐาน

แสดงข้อมูลพื้นฐานของแผน SQL

เรียกใช้แบบสอบถามต่อไปนี้เพื่อแสดงพื้นฐานแผน SQL:

โปรไฟล์ Oracle SQL และเส้นฐาน

วางพื้นฐานแผน SQL

หากต้องการวางพื้นฐานแผน SQL ให้เรียกใช้แบบสอบถามต่อไปนี้เพื่อตรวจสอบว่าตัวเพิ่มประสิทธิภาพ SQL planthe ใดใช้อยู่:

โปรไฟล์ Oracle SQL และเส้นฐาน

จากนั้น หลังจากที่คุณได้ใช้แผนแล้ว ให้รันคำสั่งต่อไปนี้เพื่อวางบรรทัดฐาน:

โปรไฟล์ Oracle SQL และเส้นฐาน

โปรไฟล์ Oracle SQL

SQL tunning advisor ซึ่งคุณทริกเกอร์ผ่าน Oracle Enterprise Manager(OEM) หรือโดยใช้การสืบค้นบรรทัดคำสั่ง สามารถสร้างโปรไฟล์ SQL สำหรับคำสั่ง SQL โปรไฟล์นี้มีข้อมูลเพิ่มเติมเกี่ยวกับคำชี้แจง

ตัวอย่าง

ในตัวอย่างนี้ คุณต้องรันโปรแกรมแนะนำการปรับ SQL ก่อนกับ sql_id จากนั้นดำเนินการกับโปรไฟล์ SQL:

1. เรียกใช้ที่ปรึกษาการปรับแต่ง SQL

เรียกใช้โค้ดที่ปรึกษาการปรับค่า SQL ต่อไปนี้สำหรับ sql_id 6dkrnbx1zdwy38 :

โปรไฟล์ Oracle SQL และเส้นฐาน โปรไฟล์ Oracle SQL และเส้นฐาน

เรียกใช้ DBMS_SQLTUNE.report_tuning_task ต่อไปนี้ สำหรับคำแนะนำ:

โปรไฟล์ Oracle SQL และเส้นฐาน

2. ยอมรับ sql_profile

เรียกใช้รหัสต่อไปนี้เพื่อยอมรับ sql_profile:

โปรไฟล์ Oracle SQL และเส้นฐาน

3. ตรวจสอบชื่อ sql_profile

ใช้แบบสอบถามต่อไปนี้เพื่อตรวจสอบชื่อ sql_profile:

โปรไฟล์ Oracle SQL และเส้นฐาน

4. ปิดการใช้งาน sql_profile

เรียกใช้รหัสต่อไปนี้เพื่อปิดใช้งาน sql_profile:

โปรไฟล์ Oracle SQL และเส้นฐาน

หากต้องการเปิดใช้งาน ให้เปลี่ยนค่าจาก DISABLED เพื่อ ENABLED .

5. วาง sql_profile

เรียกใช้รหัสต่อไปนี้เพื่อวาง sql_profile:

โปรไฟล์ Oracle SQL และเส้นฐาน

บทสรุป

เมื่อคุณดำเนินการคำสั่ง SQL ใดๆ เครื่องมือเพิ่มประสิทธิภาพจะสร้างแผนการดำเนินการเพื่อแยกวิเคราะห์การสืบค้น ดึงข้อมูลจากฮาร์ดดิสก์ และวางลงในหน่วยความจำ โปรไฟล์ SQL และเส้นฐานจะแนะนำเครื่องมือเพิ่มประสิทธิภาพในการเลือกระยะเวลาและ CPU ของ planin ที่มีค่าใช้จ่ายน้อยที่สุด ค่าใช้จ่าย. แผน SQL ที่ดีสามารถเรียกใช้แบบสอบถามได้อย่างมีประสิทธิภาพและให้ผลลัพธ์ที่ต้องการเร็วขึ้น

เรียนรู้เพิ่มเติมเกี่ยวกับบริการฐานข้อมูลของเรา

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้เช่นกัน