เมื่อกำหนดค่าคงที่เหล่านี้แล้ว SQL Server จะสร้างแผนเดียวกันสำหรับแบบสอบถามที่กำหนดหรือไม่ ถ้าไม่มีข้อควรพิจารณาอื่น ๆ อีกไหม? นอกจากนี้ยังมีองค์ประกอบของ nondeterminism ที่ต้องพิจารณาด้วยหรือไม่?
การรวบรวมข้อความค้นหาจะถูกกำหนดเท่าที่ฉันทราบ หนึ่งในเป้าหมายการออกแบบ QO ดั้งเดิมคือควรทำแผนปฏิบัติการในระบบที่แตกต่างกันโดยใช้สำเนาของฐานข้อมูลเท่านั้น มีรายละเอียดย่อยสองสามรอบพารามิเตอร์การกำหนดค่าเช่นจำนวนหน่วยความจำที่มีอยู่และจำนวนของตัวประมวลผลเชิงตรรกะ แต่สิ่งเหล่านี้จะครอบคลุมโดยรายการสิ่งที่คุณจะซิงโครไนซ์
ข้อแม้: นั่นคือความจริงที่มีให้คำว่า 'เดียว' ในรายการของคุณจะนำไปหมายความว่าเหมือนกันทุกประการ ยกตัวอย่างเช่นสถิติ 'เดียว' อาจจะมีอยู่ในทั้งสองระบบ แต่พวกเขาเป็นเพียงตรงเดียวกันหากขั้นตอนแท่งและข้อมูลความหนาแน่นเป็นเหมือนกัน
ที่กล่าวว่ากระบวนการปรับให้เหมาะสมนั้นซับซ้อนมากซึ่งหมายความว่ามันยากที่จะมั่นใจได้ว่าอินพุตทั้งหมดสำหรับกระบวนการกำหนดค่านี้เหมือนกันและสถานะภายในทั้งหมดนั้นคล้ายคลึงกันมากพอที่จะทำให้แน่ใจว่าพา ธ ของรหัสเดียวกันถูกนำมาใช้ผ่านเครื่องมือเพิ่มประสิทธิภาพเฉพาะ การรวบรวม หากแบบสอบถามมีการเข้าถึงภายนอกฐานข้อมูล (ไปยังฐานข้อมูลหรืออินสแตนซ์อื่น) สภาพแวดล้อมเหล่านั้นจะต้องเหมือนกัน
สิ่งหนึ่งที่ฉันจะเพิ่มในรายการของคุณคือการตรวจสอบว่ามีคำแนะนำแผนใด ๆอยู่ในฐานข้อมูลที่สอง
การใช้ฟังก์ชั่นที่ไม่ได้กำหนดไว้อย่างเช่นGETDATE()
ในแบบสอบถามอาจหมายถึงคุณได้รับแผนที่แตกต่างเช่นกัน ในขณะที่เครื่องมือเพิ่มประสิทธิภาพหลักไม่ได้ใช้ค่าโดยตรงการประมาณค่า cardinality สามารถ (ดูการประเมินการพับและการแสดงออกอย่างต่อเนื่องในระหว่างการประมาณค่า Cardinality ) ฉันไม่แน่ใจว่าความแตกต่างของคลาสนี้อยู่ในขอบเขตของคำถามหรือไม่เนื่องจากทั้งสองระบบจะสร้างแผนเดียวกันหากดำเนินการในเวลาเดียวกัน (หรือโดยทั่วไปโดยมีตัวแปรอินพุตพารามิเตอร์และค่าฟังก์ชันเดียวกัน)