none
SQL server 2008 R2 std x64 query ช้ามาก

    คำถาม

  • ที่บริษัทใช้งาน MS Dynamics AX4.0 sp1

    Database เป็น SQL server 2008 R2 std x64 

    Database size = 300 GB

    Server spec ดังนี้

    Server type : Application object server
    Server specification
    1 Run on virtualize
    2 CPU : XEON E5-2690 2.9 GHz. 6 Thread
    3 RAM : 16 GB
    4 Disk : 200 GB Raid 10
    5 Network : 1 Gbps
    6 OS : Windows server 2003 R2 Standard x64

    Server type : Database server
    Server specification
    1 Run on physical server
    2 CPU : XEON E5-2690 2.9 GHz 32 Thread
    3 RAM : 128 GB
    4 Disk : 2TB Raid 10
    5 Network : 1GBX2
    6 OS : Windows server 2008 R2 Datacenter x64

    ปัญหาคือเมื่อทำการ run Inventory recalculation หรือ Closing inventory ทุกๆสิ้นๆ เดือนแล้วจะทำงานได้ช้ามาก

    การแก้ไขปัญหาทุกวันนี้คือ Update statistic กับ Rebuil index ของ SQL Server ก่อนที่จะทำการ Inventory recalculation หรือ Closing inventory ซึ่งจากขั้นตอนทั้งหมดจะใช้เวลาทั้งสิ้น 9-8 ชั่วโมง และต้องทำกันตอนที่ไม่มี user online อยู่ซึ่งก็คือหลัง 4 ทุ่มเป็นต้นไป

    อยากทราบแนวทางแก้ไขปัญหาในระยะยาว ว่าทำอย่างไรจึงจะ run Inventory recalculation หรือ Closing inventory ได้เร็วกว่านี้ครับ

    12 กุมภาพันธ์ 2557 4:52

คำตอบ

  • การปรับโครงสร้างใหม่หรือการสร้าง index ใหม่สามารถแก้ไข index fragmentation ซึ่งเกิดขึ้นโดยการบวนการในการแก้ไขข้อมูล (INSERT UPDATE และ DELETE statements) ในส่วนของดารางและ index ที่ให้คำจำกัดความไว้ในดาราง คุณสามารถตรวจสอบ fragmentation โดยใช้ sys.dm_db_index_physical_stats แล้วจึงทำการสร้างใหม่หรือปรับโครงสร้างใหม่เพื่อแก้ไข fragmentation

    query optimizer ตัวนี้ใช้ข้อมูลสถิติในการสร้าง query plan เพื่อปรับปรุงประสิทธิภาพในการค้นหาให้ดีขึ้น อัพเดทข้อมูลสถิติเพื่อให้แน่ใจว่า query คอมไพล์ด้วยข้อมูลสถิติล่าสุด ฉันขอแนะนำให้เก็บรักษาการตั้งค่าของ AUTO_UPDATE_STATISTICS คงที่ ON เพื่อให้ query optimizer สามารถอัพเดทข้อมูลสถิติเป็นประจำต่อ

    นอกจากนี้ คุณสามารถลองใช้ Database Engine Tuning Advisor ในการวิเคราะห์ผลกระทบในประสิทธิภาพของปริมาณงานที่รันในฐานข้อมูลของคุณ Tuning Advisor ตัวนี้จะจัดหาให้คำแนะนำที่มีคุณภาพสูงเพื่อที่จะปรับปรุงประสิทธิภาพหลังวิเคราะห์ผลกระทบของปริมาณงาน

    อ้างอิงจาก Understanding Database Engine Tuning Advisor


    • เสนอเป็นคำตอบโดย Diana191 17 กุมภาพันธ์ 2557 7:36
    • แก้ไขโดย Diana191 28 กุมภาพันธ์ 2557 2:50
    • ทำเครื่องหมายเป็นคำตอบโดย Fon WeiMicrosoft, Moderator 3 มีนาคม 2557 8:25
    17 กุมภาพันธ์ 2557 1:25