ทันใดนั้นแบบสอบถาม SQL ใช้เวลานานในการทำงาน


1

ฉันมีแอปพลิเคชั่นที่กำลังประมวลผลรายการจำนวนมากจากฐานข้อมูล sql มันทำงานได้ดีและหลังจากประมวลผลประมาณ 4 ล้านรายการมันเริ่มวางสาย

การใช้ผู้สร้างโปรไฟล์เซิร์ฟเวอร์ sql ฉันติดตามปัญหาไปยังแบบสอบถามที่กระโดดจากระยะเวลาประมาณ 1,000 ถึงระยะเวลา 2,000,000

แบบสอบถามที่เรียบง่ายมีลักษณะดังนี้:

เลือก t.field1, t.field2 จาก table1 t โดยที่ t.id ใน (เลือก 1,000 t2.id อันดับแรกจาก table2 t2 โดยที่ t2.id> คำสั่ง XXXX โดย t2.id)

มีความคิดใดบ้างที่อาจใช้เวลานานกว่าจะดำเนินการได้ทันใด?

คำตอบ:


5

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

สถิติของ SQL Server ไม่ถูกต้องเมื่อมีการใช้งานฐานข้อมูลและธุรกรรมจำนวนมากเกิดขึ้น

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

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

คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับสถิติได้ที่นี่: สถิติ


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