เหตุผลที่ปิดใช้งานการอัปเดตสถิติโดยอัตโนมัติ


13

ฉันเพิ่งรู้ว่า บริษัท ลูกค้าที่ฉันทำงานอยู่ได้ตัดสินใจที่จะปิดตัวเลือกสถิติการอัปเดตอัตโนมัติสำหรับเซิร์ฟเวอร์ SQL บางตัวของพวกเขาและ DBAs แก้ไขปัญหาด้วยตนเองเมื่อเกิดปัญหาขึ้น

อย่างไรก็ตามการทำเช่นนี้ไม่สมเหตุสมผลสำหรับฉัน เหตุใดคุณต้องการป้องกันไม่ให้มีการอัปเดตสถิติ

คำตอบ:


11

คำแนะนำของฉัน:

  • ปล่อยให้ 'สถิติการอัปเดตอัตโนมัติ' เปิด (จนกว่าคุณจะพบเหตุผลที่ดีที่จะไม่ทำ) - คุณไม่ต้องการให้มีการลบครั้งใหญ่ในหนึ่งวันเพื่อละทิ้งแผนการสืบค้นจนกระทั่งครั้งต่อไปที่คุณทำการบำรุงรักษา
  • อย่างไรก็ตามกำหนดเวลาการบำรุงรักษาดัชนี / ปรับปรุงสถิติในเวลาที่เงียบ sp_updatestatsจะอัปเดตสถิติทั้งหมดสำหรับตารางทั้งหมดในฐานข้อมูลสำหรับคุณ แต่จะทำให้คอมไพล์ recompiles ที่เก็บไว้ดังนั้นเลือกเวลาของคุณอย่างระมัดระวัง (เช่นsp_updatestatsถูกต้องก่อนการรายงานสิ้นเดือนของคุณน่าจะไม่ดี)

ความถี่ที่คุณต้องการเรียกใช้ดัชนีการบำรุงรักษา / สร้างสถิติขึ้นอยู่กับโหลดฐานข้อมูลของคุณโดยเฉพาะความถี่ในการแก้ไขข้อมูลของคุณ (เช่นINSERT/ UPDATE/ DELETE) หากคุณกำลังแก้ไขข้อมูลทั้งหมดในการแสดง (เช่นตารางการแสดงละครสำหรับกระบวนการแบทช์รายสัปดาห์) คุณอาจต้องการอัปเดตสถิติ / จัดระเบียบดัชนีใหม่ทุกคืน หากข้อมูลของคุณค่อนข้างคงที่คุณสามารถกำหนดให้เป็นรายสัปดาห์หรือรายปักษ์ได้


7

ฉันเห็นมันครั้งเดียวด้วยแอปที่ไม่ดีซึ่งมีการจัดทำดัชนีกองไม่ดีและมี ETL หนัก
นี่เป็นขยะและโชคดีที่ไม่ใช่ของฉัน

มิฉะนั้นจะไม่มีเหตุผล

หากคุณได้รับการอัปเดตสถิติในเวลาที่ไม่เหมาะสมแสดงว่าคุณกำลังทำการบำรุงรักษาดัชนี / สถิติที่ไม่ถูกต้องหรือมีการลบ / โหลดจำนวนมากที่มีค่าถึงเกณฑ์

ด้วย SQL Server 2005+ คุณสามารถเลื่อนการอัพเดตสถิติได้
ดูที่"เมื่อใดจึงจะใช้การอัปเดตสถิติแบบซิงโครนัสหรือแบบอะซิงโครนัส"

มันน่าสนใจที่จะดูว่าพวกเขาได้ติดตามบทความหรืออ่านเกี่ยวกับตัวเลือกนี้ ...


มันอาจเป็นปัญหาที่สืบทอดมาหรือไม่? การบำรุงรักษาสถิติแตกต่างกันใน 2k หรือไม่
JNK

@JNK: IIRC มีการเปลี่ยนแปลงเกณฑ์การเปลี่ยนแถว แต่ฉันต้องค้นหามัน ... อ่าใช่ตอนนี้มีการติดตามต่อคอลัมน์ไม่ใช่ต่อตารางmsdn.microsoft.com/en-us/library/ms190283.aspx
gbn

มันคือ 20% ในปี 2008?
JNK


20% + 500 สำหรับ> 500 ต่อคอลัมน์ตั้งแต่ SQL Server 2005+
gbn

7

ครั้งเดียวที่ฉันปิดสถิติอัตโนมัติคือเมื่อฉันใช้คำสั่งที่ไม่มีเอกสารเพื่อสร้างสถิติปลอมซึ่งฉันไม่ต้องการให้ระบบล้างข้อมูลเมื่อมีการโหลดข้อมูล นี่เป็นกรณีขอบมาก


5

ในวันเก่า (SQL Server 2000) ที่มีการตั้งค่าสถิติการอัปเดตอัตโนมัติอาจส่งผลให้ "หยุด" ขนาดใหญ่ในแอปพลิเคชัน OLTP เมื่อ SQL ตัดสินใจทำการอัปเดตสถิติ

จาก SQL Server 2005 เป็นต้นไปมีตัวเลือกแบบอะซิงโครนัสซึ่งจะไม่ส่งผลให้ "หยุด" เมื่อสถิติล้าสมัยและคอมไพล์ในภายหลัง สถิติจะได้รับการคอมไพล์ใหม่แบบอะซิงโครนัสในครั้งต่อไปที่จำเป็น

โปรดทราบว่ามีความสมดุลที่จะมี - สำหรับชุดข้อมูลขนาดใหญ่คุณอาจต้องการให้แบบสอบถามปัจจุบันคำนึงถึงสถิติที่ทันสมัยที่สุดเนื่องจากแบบสอบถามอาจใช้เวลานานขึ้นในการอธิบายแผนแบบสอบถามที่ไม่มีประสิทธิภาพ

คุณยังสามารถตรวจสอบจำนวนของการคอมไพล์ต่อวินาทีและตัวชี้วัดประสิทธิภาพที่สำคัญอื่น ๆ โดยใช้ตัวนับperfmonที่เผยแพร่โดย SQL Server ตามที่พวกเขาบอกว่าการพิสูจน์อยู่ในพุดดิ้ง


4

ระบบทำงานอย่างไร

หากพวกเขาส่วนใหญ่อ่านระบบที่คุณอาจได้รับโดยไม่ต้องอัปเดตหากพวกเขากำลังทำด้วยตนเองเมื่อพวกเขาเปลี่ยนข้อมูล (แทรกปรับปรุงลบ)

อย่างไรก็ตามเพื่อการปฏิบัติที่ดีที่สุดขอแนะนำให้เก็บไว้ในสาเหตุที่ฉันคิดว่ามันจะยากสำหรับมันที่จะเป็นปัญหาด้านประสิทธิภาพ ฉันอาจส่งบทความและบล็อกโพสต์ถึงพวกเขา Kimberly Trippมีบางอย่างที่ดี


4

ในขณะที่ฉันจะไม่ขัดแย้งหรือจงใจทำให้นางดีนี่ไม่ทางใดก็ทางหนึ่ง (เคารพมากเกินไปต่อความรู้และการมีส่วนร่วมในชุมชนของฉัน) ฉันสังเกตเห็นเอกสาร MS ที่แนะนำให้ปิดสถิติการอัปเดตอัตโนมัติ

ที่การจัดเก็บข้อมูลและการวางแผนและกำหนดค่าความจุ SQL Server (SharePoint Server 2010) MS แนะนำให้ทำการตั้งค่า

ฉันได้อ่านคำแนะนำเดียวกันโดย MS สำหรับ SP รุ่นก่อนหน้า แต่ไม่พบลิงก์ในตอนนี้

แต่ฉันไม่ใช่ผู้เชี่ยวชาญ SP DBA ดังนั้นคุณอาจต้องการตรวจสอบสิ่งที่ชุนหลิวผู้จัดการสาขา MS Permier ได้พูดเกี่ยวกับเรื่องนี้ที่จุนหลิวใน SharePointหรือเพียงเพิกเฉยต่อโพสต์นี้


5
คำแนะนำของคุณเฉพาะกับฐานข้อมูล SharePoint โดยทั่วไปไม่สามารถใช้ได้กับการติดตั้ง SQL Server ทั้งหมด
Simon Righarts

0

โดยปกติแล้วคุณจะปิดพวกเขาหากคุณมีวิธีการปรับปรุงพวกเขาด้วยตัวเอง ฉันทำสิ่งนี้ตลอดเวลาเนื่องจากเราต้องการการสุ่มตัวอย่างที่ดีกว่าหรือแตกต่างจากสถิติอัตโนมัติจะทำ เป็นเรื่องปกติ แต่คุณจะไม่ปิดและไม่ทำอะไรเลย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.