เรามีปัญหานี้ในสภาพแวดล้อมการผลิตของเรา
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) - รุ่นองค์กร (64 บิต) บน Windows NT 6.1 (รุ่น 7601: Service Pack 1)
SQL Server กำลังวางแผนปฏิบัติการเกือบทั้งหมด (เกือบ 100%) และสร้างใหม่ทุกวันข้ามคืน (จาก 11:00 PM ถึง 8:00 AM) สิ่งนี้เกิดขึ้นเมื่อ 'สถิติการอัปเดตอัตโนมัติ' อยู่ในสถานะปิดใช้งาน เราได้เปิด 'สถิติการอัปเดตอัตโนมัติ' ในช่วง 2-3 สัปดาห์ที่ผ่านมา แต่มันก็ยังคงเกิดขึ้น
เราไม่รู้จริง ๆ ว่าอะไรเป็นต้นเหตุของแผนยุคใหม่นี้ แต่เรามั่นใจว่าเราจะไม่ทำด้วยตนเอง
สิ่งเดียวที่เกิดขึ้นจริงกับช่วงเวลาของแผนที่ถูกสร้างใหม่คืองานบำรุงรักษาฐานข้อมูลที่เรามี: ดัชนีรายวันปรับโครงสร้างองค์กรใหม่ (เมื่อการแยกส่วนเป็น 5-30%) และดัชนีสร้างใหม่ทุกวัน (เมื่อการแยกส่วนมากกว่า 30% ) งาน โดยปกติงานบำรุงรักษารายวันนี้จะจัดระเบียบใหม่เท่านั้น (เนื่องจากการกระจายตัวของดัชนีไม่เกิน 30% ทุกวัน)
ผลกระทบ:
แผนที่สร้างขึ้นใหม่เหล่านี้ทำให้การเรียก UDF / การเรียกแบบสอบถาม (ที่เรียกจาก UI / หน้าเว็บ) ใช้เวลานานขึ้น (นาทีเมื่อเทียบกับน้อยกว่า 1 วินาที) ดังนั้นเซสชันเพิ่งรับซ้อนโดยใช้ CPU ใกล้ 90% .
ปัญหาหายไปทันทีที่เซสชันที่ติดอยู่นั้นถูกลบไปอย่างแรง (ทางด้าน DB) และ 1) เมื่อแผนการดำเนินการที่เกี่ยวข้องทั้งหมดถูกล้างด้วยตนเอง (สำหรับการค้นหา) หรือ 2) เมื่อ UDFs ถูกเปลี่ยน (สำหรับฟังก์ชั่น) แผนใหม่ใด ๆ ที่สร้างขึ้นโดยเซิร์ฟเวอร์ SQL จากช่วงเวลานั้นทำงานได้อย่างสมบูรณ์แบบตลอดทั้งวันจนกว่าจะมีปัญหาเดียวกันในเช้าวันรุ่งขึ้น พฤติกรรมนี้ไม่สอดคล้องกัน 100% เราไม่ได้เห็นมันทุกเช้า แต่มีช่วงเวลาที่เราได้เห็นมันอย่างต่อเนื่องเป็นเวลา 4-5 วันติดต่อกัน
ปัญหาเกิดขึ้นในตอนเช้าของธุรกิจนั่นคือเมื่อ UI / หน้าเว็บมีการเข้าถึงอย่างเข้มข้นมากขึ้นดูเหมือนว่า
ไม่มีใครมีเงื่อนงำสิ่งที่ทำให้เกิดสิ่งนี้และวิธีการแก้ปัญหานี้หรือไม่? ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก