ข้อความนำ
Microsoft SQL Server เวอร์ชันที่ใหม่กว่า SQL Server 2000 Service Pack 3 (SP3) ได้ส่งการแก้ไขด่วนส่วนใหญ่ไปยังตัวปรับคิวรีให้เหมาะสมในสถานะปิดตามค่าเริ่มต้นเพื่อป้องกันไม่ให้ลูกค้าที่มีอยู่เห็นการเปลี่ยนแปลงแผนที่คาดไว้ที่อาจทําให้เกิดการถดถอยของประสิทธิภาพ ในตอนแรก การแก้ไขด่วนแต่ละรายการถูกส่งภายใต้ค่าสถานะการติดตามที่แยกต่างหาก หลังจากนั้น หลักปฏิบัตินี้จึงถูกเปลี่ยนแปลงเพื่อให้ค่าสถานะส่วนใหญ่ถูกรวมเข้าด้วยกันภายใต้ค่าสถานะการติดตามค่าเดียว (4199) แนวทางปฏิบัติใหม่นี้เริ่มต้นในหลายเวอร์ชันโดยเริ่มต้นด้วยการอัปเดตต่อไปนี้:
-
SQL Server 2005 Service Pack 3 (SP3) Cumulative Update 6
-
SQL Server 2008 Service Pack 1 (SP1) Cumulative Update Package 7
-
SQL Server 2008 R2 (RTM)
ค่าสถานะการติดตาม 4199 ถูกใช้เพื่อรวบรวมโปรแกรมแก้ไขด่วนที่ถูกตั้งใจให้กลายเป็น On-by-default ในการเผยแพร่ในอนาคต ในขณะที่ใช้ค่าสถานะการติดตามอื่นๆ กับสถานการณ์ที่การแก้ไขไม่ได้ตั้งใจให้กลายเป็นแบบ On-by-default ในฟอร์มปัจจุบัน ตั้งแต่ SQL Server 2016 RTM การตั้งค่าCOMPATIBILITY_LEVELฐานข้อมูลจะถูกใช้เปิดใช้งานการแก้ไขด่วนที่เกี่ยวข้องกับการติดตาม 4199 เมื่อเริ่มต้น บทความนี้อธิบายกลไกกลไกและนโยบายของวิธีที่การแก้ไขด่วนที่ส่งผลต่อแผนจะถูกส่งไปยังเวอร์ชัน SQL Server 2016 และเวอร์ชันที่ใหม่กว่า
ข้อมูลเพิ่มเติม
ใน SQL Server 2016 การติดตามค่าสถานะ 4199 การแก้ไขด่วนที่ถูกสร้างขึ้นใน SQL Server รุ่นก่อนหน้าจะถูกเปิดใช้งานภายใต้ฐานข้อมูล COMPATIBILITY_LEVEL 130 โดยไม่เปิดใช้งานค่าสถานะการติดตาม 4199 ติดตามค่าสถานะ 4199 จะใช้เพื่อเผยแพร่การแก้ไขด่วนใดๆ SQL Server 2016 ในอนาคตของฐานข้อมูลโดยใช้ระดับความเข้ากันได้ 130 เนื่องจากเราแนะให้ติดตามค่าสถานะ 4199 เฉพาะลูกค้าที่เห็นปัญหาด้านประสิทธิภาพการโยกย้ายเฉพาะ เราแนะให้ลูกค้าเอาค่าสถานะการติดตาม 4199 ออกหลังจากที่โยกย้ายฐานข้อมูลของตนไปยังระดับความเข้ากันได้ล่าสุด เนื่องจากค่าสถานะการติดตาม 4199 จะถูกใช้ใหม่เพื่อการแก้ไขในอนาคตที่อาจไม่ได้ใช้กับแอปพลิเคชันของคุณ และอาจทําให้เกิดการเปลี่ยนแปลงประสิทธิภาพแผนที่ไม่คาดคิดบนระบบการผลิต ซึ่งหมายความว่าการแก้ไขด่วนค่าสถานะการติดตาม 4199 ต่างๆ จะถูกเปิดใช้งานในแต่ละระดับความเข้ากันได้ที่ได้รับการสนับสนุนในรุ่นผลิตภัณฑ์ที่ระบุ ระดับความเข้ากันได้ล่าสุดเปิดใช้งานการแก้ไขก่อนหน้าทั้งหมดภายใต้ค่าสถานะการติดตาม 4199 แล้ว ซึ่งหมายความว่า การอัปเกรดฐานข้อมูลเป็นระดับความเข้ากันได้ล่าสุดและการเอาค่าสถานะการติดตามออก 4199 จะยังคงเปิดใช้งานการแก้ไขทั้งหมดที่ปริมาณงานถูกใช้งานก่อนการอัปเกรดฐานข้อมูล แต่ไม่ใช่การแก้ไขใหม่ ถ้าในภายหลังลูกค้าพบปัญหาเกี่ยวกับประสิทธิภาพคิวรี ให้ทดลองเปิดใช้งานตัวเลือกที่จัดขอบเขตฐานข้อมูล QUERY_OPTIMIZER_HOTFIXES หรือเคล็ดลับคิวรี ENABLE_QUERY_OPTIMIZER_HOTFIXES ในสภาพแวดล้อมทดสอบเพื่อตรวจสอบว่าปัญหาได้รับการแก้ไขหรือไม่ ดูเอกสารประกอบเกี่ยวกับQUERY_OPTIMIZER_HOTFIXES
หมายเหตุ ตามค่าเริ่มต้น ฐานข้อมูลที่สร้างขึ้นในเวอร์ชัน SQL Server 2016 จะใช้ความเข้ากันได้ระดับ 130 และเปิดใช้งานตรรกะตัวปรับให้เหมาะสมใหม่ไว้แล้ว
ประโยชน์หลักของตัวแบบนี้ก็คือ การลดความเสี่ยงของระบบการผลิตระหว่างกระบวนการอัปเกรด วิธีนี้จะแยกการติดตั้งเวอร์ชันหลักใหม่ของ SQL Server จากการเปิดใช้งานอัตโนมัติของการเปลี่ยนแปลงตัวประมวลผลคิวรีใหม่ทั้งหมด เนื่องจากการอัปเกรดเวอร์ชันหลักเปลี่ยนรูปแบบไฟล์และย้อนกลับไม่ได้ จึงเป็นความคิดที่ดีที่จะใช้การตั้งค่า COMPATIBILITY_LEVEL เนื่องจากช่วยให้ลูกค้าสามารถดาวน์เกรดได้อย่างรวดเร็วถ้าพบปัญหาด้านประสิทธิภาพของแผนที่ไม่คาดคิดระหว่างการอัปเกรด ถ้าลูกค้าพบการเปลี่ยนแปลงแผนที่ไม่คาดคิดที่บล็อกการอัปเกรดแอปพลิเคชัน ลูกค้าสามารถช่วยให้สถานการณ์ง่ายดายขึ้นโดยการใช้เคล็ดลับแผนที่เหมาะสมโดยใช้ Query Store เพื่อบังคับให้แผนก่อนหน้า หรือสามารถยกเลิกสถานการณ์ได้โดยติดต่อฝ่ายสนับสนุนลูกค้าของ Microsoft เพื่อช่วยในการแก้ไขปัญหาชั่วคราวหรือการแก้ไขด่วน เมื่อปัญหาทั้งหมดน้อยลง การอัปเกรดสามารถเกิดขึ้นต่อไปได้ ลูกค้าควรรวมความสามารถนี้เข้ากับการวางแผนการอัปเกรดSQL Server 2016
ตารางต่อไปนี้อธิบายตัวแบบของวิธีที่ค่าสถานะการติดตาม 4199 จะได้ผลSQL Server 2016
การตั้งค่า |
SQLระดับความเข้ากันได้ |
ติดตามค่าสถานะ 4199 |
การแก้ไขด่วนของ Optimizer SQL Server 2016 RTM |
การแก้ไขด่วนของ Optimizer SQL Server 2016 RTM |
---|---|---|---|---|
1. |
120 |
ปิด |
ปิดใช้งานแล้ว |
ปิดใช้งานแล้ว |
2. |
120 |
เปิด |
เปิดใช้งานแล้ว |
ปิดใช้งานแล้ว |
3. |
130 |
ปิด |
เปิดใช้งานตามระดับความเข้ากันได้ |
ปิดใช้งานแล้ว |
4. |
130 |
เปิด |
เปิดใช้งานตามระดับความเข้ากันได้ |
เปิดใช้งานตามระดับความเข้ากันได้ |
หมายเหตุ การตั้งค่าหมายเลข 3 แนะSQL Server 2016
For major releases after SQL Server 2016, Microsoft plans to continue using this servicing model for optimizer hotfixes. ตามค่าเริ่มต้น หรือแต่ละการเผยแพร่ การแก้ไขด่วนค่าสถานะการติดตาม 4199 ใดๆ จากรุ่นก่อนหน้าจะถูกเปิดใช้งานในระดับความเข้ากันได้ถัดไป ซึ่งหมายความว่า สถานะที่แนะนวใช้ของลูกค้าหลังจากที่ถูกโยกย้ายไปยังระดับความเข้ากันได้ล่าสุดจะถูกปิดใช้งานค่าสถานะการติดตาม 4199 การแก้ไขด่วนในภายหลังจะใช้ค่าสถานะการติดตาม 4199 เพื่อเปิดใช้งานการแก้ไขของลูกค้าที่เปิดใช้งานการแก้ไขด่วนที่ระบุเหล่านั้นในแอปพลิเคชัน ขอขอให้ลูกค้าปิดใช้งานการติดตามค่าสถานะ 4199 หลังจากอัปเกรดแอปพลิเคชันเป็นระดับความเข้ากันได้ล่าสุดเพื่อหลีกเลี่ยงการเปิดใช้งานการเปลี่ยนแปลงที่ปรับให้เหมาะสมในอนาคตที่ไม่คาดคิดบนแอปพลิเคชันโดยไม่คาดคิด การอัปเกรดเป็นระดับความเข้ากันได้ล่าสุดและการเอาค่าสถานะการติดตามออก 4199 ยังคงเปิดใช้งานการแก้ไขทั้งหมดที่ปริมาณงานถูกใช้ประโยชน์จากก่อนการอัปเกรด ไม่ใช่การแก้ไขใหม่
หมายเหตุ ขณะที่การแก้ไขด่วนที่ปรับให้เหมาะสมหลายๆ ตัวถูกเปิดใช้งานภายใต้ค่าสถานะการติดตาม 4199 บางตัวจะใช้ค่าสถานะการติดตามอื่นๆ ติดตามค่าสถานะ 4199 ที่ถูกกล่าวถึงในประวัติศาสตร์ของค่าสถานะการติดตามที่ใช้อย่างกว้างขวางและมีแนวโน้มที่จะเปิดใช้งานตามค่าเริ่มต้นในการเผยแพร่ในอนาคต ค่าสถานะการติดตามอื่นๆ จะใช้ในการแก้ไขด่วนที่มีเงื่อนไขที่เฉพาะเจาะจงกับลูกค้าเพียงไม่กี่รายเท่านั้น ที่การแก้ไขอาจทําให้เกิดการถดถอยของประสิทธิภาพการได้รับในแอปพลิเคชันชนิดอื่นๆ หรือที่ฟังก์ชันการใช้ฟังก์ชันการภายในอาจเห็นการเปลี่ยนแปลงก่อนที่จะพร้อมเปิดใช้งานให้ทุกคนเห็น Microsoft จะยังคงใช้ค่าสถานะการติดตามอื่นๆ ตามที่ต้องการเพื่อให้บริการผลิตภัณฑ์
หมายเหตุ บทความนี้เน้นที่ตัวแบบเพื่อเผยแพร่การแก้ไขด่วนของค่าสถานะการติดตาม 4199 ในระดับความเข้ากันได้ล่าสุดของผลิตภัณฑ์ล่าสุด (เมื่อถึงเวลาเผยแพร่ บทความนี้SQL Server 2016) การแก้ไขด่วนของโปรแกรมปรับให้เหมาะสมอาจเผยแพร่ใน SQL Serverเวอร์ชันที่เก่ากว่าหรือในระดับความเข้ากันได้ที่ต่SQL Server) ของ SQL Server 2016 Microsoft จะประเมินแต่ละกรณีและระบุว่าจะใช้ค่าสถานะการติดตาม 4199 หรือค่าสถานะการติดตามอื่น เนื่องจากการเปลี่ยนแปลงที่ไม่ใช่การแก้ไขด่วนจะเปิดใช้งานเมื่อมีการย้ายไปยังระดับความเข้ากันได้ในภายหลัง จึงไม่มีสัญญาว่าจะไม่มีการเปลี่ยนแปลงแผนเกิดขึ้นระหว่างการอัปเกรด (ที่มีหรือไม่มีการตั้งค่าสถานะการติดตาม 4199) ลูกค้าควรทดสอบการเปลี่ยนแปลงระดับความเข้ากันได้อย่างรอบคอบเพื่อใช้กับแอปพลิเคชันการผลิตและควรใช้เทคโนโลยีการบรรเทาปัญหา เช่น Query Store ถ้ามีปัญหาด้านประสิทธิภาพการใช้เมาส์ตัวเลือกแผน
For reference, the following trace flags were used for query processor hotfixes before the introduction of trace flag 4199:
4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4115, 4116, 4117, 4119, 4120, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4131, 4133, 4135.
SQL Server 2012 และเวอร์ชันที่ใหม่กว่า
ค่าสถานะการติดตาม 4199 จะรวมอยู่ในเวอร์ชันการเผยแพร่SQL Server 2012 และเวอร์ชันที่ใหม่กว่า
วิธีการเปิดใช้งานค่าสถานะการติดตาม 4199
คุณสามารถเปิดใช้งานค่าสถานะการติดตาม 4199 เมื่อเริ่มต้นหรือในเซสชันผู้ใช้ ค่าสถานะการติดตามนี้มีเอฟเฟ็กต์ระดับส่วนกลางหรือระดับเซสชัน เมื่อต้องการเปิดใช้งานค่าสถานะการติดตาม 4199 ให้ใช้สั่ง DBCC TRACEON หรือใช้ –T 4199 เป็นพารามิเตอร์เริ่มต้น
ถ้าใช้ DBCC TRACEON\TRACEOFF สิ่งนี้จะไม่สร้างแผนแคชใหม่เพื่อกระบวนการที่เก็บไว้ แผนอาจอยู่ในแคชที่สร้างขึ้นโดยไม่มีค่าสถานะการติดตาม
For detailed information about how to enable or disable trace flags and for explanations of global and session-level trace flags, refer to the following topics in SQL Server Books Online:
อ้างอิง
For more information about the naming schema for SQL Server updates, click the following article number to view the article in the Microsoft Knowledge Base:
822499
Schema การตั้งชื่อใหม่ For Microsoft SQL Serverแพคเกจอัปเดตซอฟต์แวร์
For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684
อธิบายศัพท์เฉพาะมาตรฐานที่ใช้เพื่ออธิบายเกี่ยวกับการอัปเดตซอฟต์แวร์ของ Microsoft