สรุป
เพิ่มแอตทริบิวต์แผนการดำเนินการคิวรี EstimateRowsWithoutRowGoal ใหม่ไปยัง SQL Server ๒๐๑๗ Update ที่สะสม 3 (CU3) และ Microsoft SQL Server ๒๐๑๖ Service Pack 2 (SP2)
เมื่อตัวเพิ่มประสิทธิภาพของคิวรีประเมินค่าใช้จ่ายของแผนการดำเนินการคิวรีโดยทั่วไปแล้วจะถือว่าแถวที่มีการระบุทั้งหมดจากแหล่งข้อมูลทั้งหมดต้องได้รับการประมวลผล อย่างไรก็ตามคิวรีบางอย่างจะทำให้ตัวเพิ่มประสิทธิภาพของคิวรีค้นหาแผนที่จะส่งกลับจำนวนแถวที่มีขนาดเล็กลงได้เร็วขึ้น กรณีนี้อาจเกิดขึ้นได้ถ้าแบบสอบถามใช้ส่วนคำสั่งบนสุดคำแนะนำคิวรีNumber_rows อย่างรวดเร็วคำแนะนำในหรือที่มีอยู่หรือการตั้งค่า ROWCOUNT {number | @number_var} ในกรณีนี้ตัวเพิ่มประสิทธิภาพจะใช้เป้าหมายแถวเมื่อประเมินแผนคิวรี ถ้ามีการนำแผนเป้าหมายแถวไปใช้จำนวนแถวที่ประเมินในแผนการดำเนินการคิวรีจะลดลง นี่คือเนื่องจากแผนสันนิษฐานว่าจำนวนแถวที่มีขนาดเล็กจะต้องถูกประมวลผลเพื่อให้เข้าถึงเป้าหมายของแถว
หมายเหตุ การประเมินที่ทำโดยใช้เป้าหมายแถวจะอยู่ที่ประมาณ ถ้าการแจกจ่ายข้อมูลที่แท้จริงเป็นแบบที่ไม่ใช่เหมือนกันอาจมีจำนวนแถวน้อยกว่าจำนวนแถวที่ต้องดำเนินการ ดังนั้นจึงไม่สามารถสร้างแผนการสอบถามที่ต่ำได้ ในฐานะที่เป็นวิธีแก้ไขปัญหาชั่วคราวสำหรับปัญหานี้คุณสามารถใช้ตัวเลือกคิวรีแบบ ใช้คำใบ้ (' DISABLE_OPTIMIZER_ROWGOAL ') หรือติดตามค่าสถานะ๔๑๓๘
สำหรับข้อมูลเพิ่มเติมให้ดูที่คำแนะนำในการอัปเดตใช้อาร์กิวเมนต์คำแนะนำคิวรีใน SQL Server ๒๐๑๖ อย่างไรก็ตามอาจเป็นสิ่งที่ท้าทายในการระบุแบบสอบถามที่ซับซ้อนว่ามีการนำเป้าหมายแถวไปใช้และจำนวนเท่าไหร่ที่จะมีผลต่อตัวเลือกแผน
โดยใช้แอตทริบิวต์ EstimateRowsWithoutRowGoalคุณสามารถเปรียบเทียบผลลัพธ์ของแอตทริบิวต์ EstimateRows เพื่อดูจำนวนของเป้าหมายแถวที่มีผลต่อการประเมินเพิ่มประสิทธิภาพของคิวรี
หมายเหตุ ถ้าไม่มีการนำเป้าหมายแถวไปใช้กับตัวดำเนินการแผนแบบสอบถามเฉพาะแอตทริบิวต์นี้จะไม่ถูกรวมไว้
ข้อมูลเพิ่มเติม
การอัปเดตนี้จะรวมอยู่ในการอัปเดตที่สะสมต่อไปนี้สำหรับ SQL Server:
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ ตรวจสอบการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
ข้อมูล service pack สำหรับ SQL Server
การอัปเดตนี้จะถูกนำมาใช้ใน service pack ต่อไปนี้สำหรับ SQL Server:
เซอร์วิสแพ็คจะได้รับการสะสม Service pack ใหม่แต่ละชุดจะมีการแก้ไขทั้งหมดที่อยู่ใน service pack ก่อนหน้านี้พร้อมกับการแก้ไขใหม่ คำแนะนำของเราคือการนำ service pack ล่าสุดและการอัปเดตที่สะสมล่าสุดสำหรับ service pack นั้นไปใช้ คุณไม่จำเป็นต้องติดตั้ง service pack ก่อนหน้าก่อนที่คุณจะติดตั้ง service pack ล่าสุด ใช้ตาราง1ในบทความต่อไปนี้เพื่อค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ service pack ล่าสุดและการอัปเดตล่าสุดที่สะสม
วิธีการตรวจสอบความถูกต้องของระดับเวอร์ชันและการอัปเดตของ SQL Server และคอมโพเนนต์
อ้างอิง
เรียนรู้เกี่ยวกับคำ ศัพท์เฉพาะทางที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์