หากมีการMAXDOP
ตั้งค่าอินสแตนซ์ที่ 1 และคำแนะนำแบบสอบถามถูกใช้เพื่ออนุญาตให้แบบสอบถามเฉพาะขนานกันเป็นเกณฑ์ต้นทุนสำหรับค่า Parallelism ที่ SQL ยังคงใช้เพื่อตัดสินใจว่าจริงหรือไม่ขนานกันหรือไม่
คำตอบง่ายๆ: ใช่
รายละเอียด
มีสองสิ่งที่แยกกันเกิดขึ้นที่นี่ซึ่งเป็นสิ่งสำคัญที่จะแยก:
อะไรคือสิ่งที่มีประสิทธิภาพระดับสูงสุดของการขนานสามารถใช้ได้กับการค้นหาหรือไม่?
ผู้มีส่วนร่วมในเรื่องนี้คือ (กว้าง ๆ ตามลำดับความสำคัญ):
MAX_DOP
การตั้งค่าผู้ว่าราชการทรัพยากร
MAXDOP
การตั้งค่าคำใบ้ข้อความค้นหา
max degree of parallelism
ตัวเลือกการกำหนดค่าอินสแตนซ์
มีการอธิบายรายละเอียดในการตั้งค่า“ ระดับสูงสุดของความเท่าเทียม” ของเซิร์ฟเวอร์, MAX_DOP ของผู้ว่าการทรัพยากรและคำแนะนำการสืบค้น MAXDOP - SQL Server ใดที่ควรใช้ โดย Jack Li วิศวกรการเลื่อนขั้นสูงสำหรับฝ่ายบริการลูกค้าและสนับสนุน Microsoft SQL Server ตารางด้านล่างนี้ทำซ้ำจากลิงค์นั้น:
แผนคิวรีจะใช้การขนานหรือไม่
เครื่องมือเพิ่มประสิทธิภาพการสืบค้น SQL Server จะค้นหาแผนอนุกรมก่อนเสมอ
จากนั้นถ้า:
- การเพิ่มประสิทธิภาพเพิ่มเติมเป็นธรรม; และ
- ค่าใช้จ่ายของแผนอนุกรมที่ดีที่สุดเกินกว่า
cost threshold for parallelism
ค่าการกำหนดค่า
... เครื่องมือเพิ่มประสิทธิภาพจะพยายามค้นหาแผนขนาน
จากนั้นถ้า:
- พบแผนขนาน (เช่นเป็นไปได้) และ
- ต้นทุนของแผนขนานนั้นน้อยกว่าแผนอนุกรมที่ดีที่สุด
... จะสร้างแผนคู่ขนาน
หมายเหตุ:cost threshold for parallelism
จะมีผลต่อการเพิ่มประสิทธิภาพไม่ว่าจะเป็นรูปลักษณ์สำหรับแผนขนาน เมื่อแผนขนานถูกแคชก็จะดำเนินการโดยใช้ความขนานเมื่อมันถูกนำมาใช้ใหม่ (ตราบเท่าที่กระทู้มี) โดยไม่คำนึงถึงการตั้งค่า CTFP
ตัวอย่าง
สำหรับทั้งสองตัวอย่างเช่นอินสแตนซ์ maxdop 1 และคำใบ้แบบสอบถาม maxdop 2 DOP ที่มีประสิทธิภาพที่มีอยู่คือ 2 หากเลือกแผนคู่ขนานมันจะใช้ DOP 2
ตัวอย่างที่ 1
CTFP ที่กำหนดไว้ที่ 50 และแผนอนุกรมที่ถูกที่สุดพบว่ามีค่าใช้จ่าย 30 SQL Server จะไม่พยายามค้นหาแผนขนาน แผนอนุกรมจะถูกสร้างขึ้น
ตัวอย่างที่ 2
CTFP ที่กำหนดไว้ที่ 50 และแผนอนุกรมที่ถูกที่สุดพบว่ามีค่าใช้จ่าย 70, SQL Server จะพยายามค้นหาแผนขนาน ถ้าแผนนี้ (ถ้าพบ) มีต้นทุนน้อยกว่า 70 (ต้นทุนแผนอนุกรม) แผนขนานจะถูกสร้างขึ้น
ผลลัพธ์สุดท้ายของการปรับให้เหมาะสมของแบบสอบถามจะเป็นแผนแคชเดียวเสมอ: อนุกรมหรือขนาน เครื่องมือเพิ่มประสิทธิภาพค้นหาเฉพาะแผนการอนุกรมในเฟสการค้นหา 0 (TP) และsearch1 (QP)
มันอาจแล้ว (ตามที่อธิบายไว้) re-run search1กับความต้องการในการผลิตแผนขนาน ตัวเลือกจะถูกเลือกระหว่างอนุกรมและขนานโดยพิจารณาจากต้นทุนแผนทั้งหมดที่ดีที่สุด ตัวเลือกนั้นมีผลผูกพันในกรณีที่การปรับให้เหมาะสมไปที่การค้นหา2 (การเพิ่มประสิทธิภาพเต็มรูปแบบ) แต่ละขั้นตอนของการปรับให้เหมาะสมพิจารณาทางเลือกมากมาย แต่ผลลัพธ์จากสเตจนั้นเป็นแผนที่ดีที่สุดเพียงครั้งเดียวเสมอซึ่งเป็นแบบอนุกรมหรือแบบขนาน
ฉันเขียนเกี่ยวกับเรื่องนี้ในMyth: SQL Server แคชแผนอนุกรมกับทุกแผนขนาน