- การจำที่ร้อนแรงคืออะไร
แอรอนถูกต้องแล้วและฉันจะไม่ทำสิ่งที่เขาพูดไว้ข้างต้น แต่มันไม่ใช่แค่ดิสก์ IO ส่วนหลักที่คนส่วนใหญ่มีปัญหากับใน TempDB เกิดจากการช่วงชิงโครงสร้างการติดตามบางอย่าง
เนื่องจากการมีไฟล์ tempdb หลายไฟล์ทำให้อัลกอริทึมการเติมและปัดเศษเป็นสัดส่วนได้อย่างมีประสิทธิภาพในการเป็น "ยุติธรรม" ในการจัดสรรการเพิ่มไฟล์ใหม่โดยไม่มีการจัดสรรเกิดขึ้น ฉันไม่เห็นด้วยว่าเป็นคำเตือน "ไก่ตัวเล็ก" (ดูอัปเดตผลิตภัณฑ์ด้านล่าง) หากคุณเริ่มเห็นการPAGELATCH_*
รอไฟล์ใหม่ที่กล่าวมาและไม่มากหรือน้อยในไฟล์อื่น ๆ สิ่งนี้มักเกิดขึ้นกับระบบที่มีกิจกรรม TempDB สูงและมีมากกว่าหนึ่งไฟล์
โปรดทราบว่ามีตัวเลือกใน SQL Server 2019 เพื่อเปลี่ยนตารางระบบพื้นฐานบางส่วนเป็นตารางในหน่วยความจำซึ่งอาจมีการปรับปรุงเนื่องจากวัตถุในหน่วยความจำได้รับการจัดสรรแตกต่างจากตารางที่ทำจากดิสก์ ตารางที่ยึดตามดิสก์เป็นตารางดั้งเดิมที่เราทุกคนทำงานด้วยกันมาหลายปี SQL Server 2014 แนะนำตารางที่ปรับให้เหมาะสมกับหน่วยความจำ SQL Server 2019 สามารถจัดการข้อมูลเมตาของการจัดสรรบางอย่างในตารางปรับให้เหมาะสมหน่วยความจำ
มีการเปลี่ยนแปลงอื่นใน SQL Server 2019 เพื่อช่วยในการเปลี่ยนแปลง PFS ที่เกิดขึ้นพร้อมกันซึ่งโดยทั่วไปแล้วสิ่งที่การโต้แย้งสำหรับโครงสร้างหน่วยความจำในการจัดสรรกำลังPAGELATCH_*
รออยู่
- สิ่งที่เกี่ยวกับการจำร้อนทำให้สิ่งเลวร้ายยิ่งขึ้นใน tempdb?
IMHO ใช่ TempDB มีรายการเพิ่มเติมที่สามารถทำให้เขียนได้โดยไม่ต้องใช้โดยตรงเพื่อให้สามารถขัดขวางบางรายการ อย่างไรก็ตามฐานข้อมูลผู้ใช้ที่ยุ่งมากในแง่ของอัตราการเปลี่ยนแปลงข้อมูลนั้นไม่ดีเท่าที่ควร ไม่ จำกัด เพียงแค่ TempDB
- มีอะไรพิเศษในฐานข้อมูลที่จะแย่ลงไปอีก?
ฉันชอบการเปรียบเทียบของแอรอนจริงๆ! นั่นคือสาระสำคัญของสิ่งที่เกิดขึ้น สิ่งที่แย่กว่านั้นคือการจัดสรรและติดตามพื้นที่สำหรับวัตถุในฐานข้อมูล หากฐานข้อมูลผู้ใช้ของคุณส่วนใหญ่คงที่ (อัตราการเปลี่ยนแปลงต่ำ) หรือไม่ได้ใช้งาน TempDB จริง ๆ คุณจะไม่สังเกตเห็นอะไรเลย อย่างไรก็ตามหากเป็นเซิร์ฟเวอร์ที่ค่อนข้างยุ่งคุณสามารถเริ่มต้นหรือทำให้หน้าเจดีย์แย่ลงซึ่งอาจนำไปสู่การปิดกั้นขบวน
แอรอนชี้ให้เห็นแล้วว่าในเวอร์ชั่นเก่ามีแฟล็กการติดตามเพื่อให้แน่ใจว่ามีการใช้ extents สม่ำเสมอและไฟล์ทั้งหมดในกลุ่มไฟล์เติบโตร่วมกัน (แอรอนชี้ให้เห็นว่า 1117 และ 1118 ซึ่งเป็น NOP ในปี 2559+) สิ่งอื่น ๆ ที่ฉันต้องการจะชี้ให้เห็นอีกครั้งคือสิ่งนี้ไม่เพียง แต่สำหรับ TempDB แต่สำหรับฐานข้อมูลใด ๆ และรูปแบบทางกายภาพควรคำนึงถึงตามความต้องการ
นี่ไม่เพียง แต่สำหรับปัญหาฮอตสปอต แต่ใช้ได้กับส่วนอื่น ๆ ของระบบเช่นการสำรอง / กู้คืนการจัดการไฟล์การกระจายตัวเมตาดาต้าของระบบไฟล์ ฯลฯ ซึ่งทั้งหมดสามารถช่วยได้ด้วยการมีหลายไฟล์
คุณสามารถเห็นการช่วงชิงโครงสร้างการจัดสรรโดยค้นหาwaitresource
หน้า PFS (ซึ่งก็คือหน้า 1 และหน้า 8088 ทุกหน้า) หากคุณเห็นว่าทั้งหมดในไฟล์เดียวกัน (2: ไฟล์: หน้า) จากนั้นคุณรู้ว่าสิ่งนี้เกิดขึ้น