Skip to main content

ทำอย่างไร หากเจอปัญหา ระบบทำงาน ช้าลง

การที่ระบบทำงานช้าลงหลังจากที่ทำงานไปแล้วระยะเวลาหนึ่ง (ขึ้นอยู่กับปริมาณ Transaction) ตัวอย่างเช่น ใช้งานไป 1 ปี การดึงข้อมูลรายงาน หรือระบบสแกนต่างๆ ทำงานได้ช้าลงในแทบจะทุกส่วน มักมีผลมาจากระบบฐานข้อมูล ที่มีข้อมูลมากขึ้น และต้องทำการ maintenance ระบบฐานข้อมูล ให้มีประสิทธิภาพอยู่เสมอ

การเพิ่มประสิทธิภาพที่ง่าย และเร็วที่สุด คือการเพิ่มประสิทธิภาพของ Server ทั้ง CPU และ RAM เป็นต้น แต่ในมุมของงานระบบมีวิธีการอื่นๆที่สามารถดำเนินการเพิ่มเติมได้เช่นกัน

รายการด้านล่าง คือ ความรู้ในการดูแล ระบบฐานข้อมูลทั่วไป ที่เราแนะนำให้ เจ้าของ Host ดูแล Server ของท่านเองเป็นประจำ

  1. Backup: สำรองข้อมูลอย่างประจำเพื่อป้องกันการสูญเสียข้อมูล. ควรมีแผนการสำรองข้อมูลที่ครอบคลุมทั้ง full backups, differential backups และ transaction log backups.

  2. Update and Patching: ติดตั้ง updates และ patches ล่าสุดเพื่อปรับปรุงประสิทธิภาพและป้องกันข้อบกพร่องด้านความปลอดภัย.

  3. Index Maintenance: ดูแลรักษา index โดยการทำ defragmentation และ rebuilds อย่างประจำเพื่อปรับปรุงประสิทธิภาพการค้นหา.

  4. Check for Corruption: ใช้คำสั่ง DBCC CHECKDB อย่างประจำเพื่อตรวจสอบความเสียหายในฐานข้อมูล.

  5. Monitor Disk Space: ตรวจสอบพื้นที่ disk อย่างประจำเพื่อป้องกันการเต็ม disk ที่อาจทำให้ฐานข้อมูลหยุดทำงาน.

  6. Performance Monitoring: ตรวจสอบและติดตามประสิทธิภาพของฐานข้อมูลเพื่อตรวจจับปัญหาที่อาจเกิดขึ้น.

  7. Security Audits: ตรวจสอบความปลอดภัยอย่างประจำเพื่อตรวจจับการเข้าถึงที่ไม่ได้รับอนุญาตและข้อบกพร่องด้านความปลอดภัยอื่น ๆ.

  8. Statistics Update: ปรับปรุงสถิติฐานข้อมูลเพื่อปรับปรุงประสิทธิภาพการคิวรี.

  9. Purge Old Data: ลบข้อมูลเก่าที่ไม่จำเป็นออกจากฐานข้อมูลเพื่อปรับปรุงประสิทธิภาพและประหยัดพื้นที่ disk.

  10. Review Logs: ตรวจสอบ logs อย่างประจำเพื่อตรวจจับปัญหาที่อาจเกิดขึ้น.

  11. Query Range: ตรวจสอบ Reports ที่ดึงข้อมูล อาจจะมีความกว้างเกินไป เช่นดึงหลักปี โดยทั่วไปการดึงข้อมูลไม่ควรเกิน 3 เดือน และไม่ควร Join Table กันมากจนเกินไป

  12. Seperate Service: คือ การแยก Service Web Server ออกมาจาก Reporting Server เพื่อไม่ให้ทั้ง 2 service ทำงานอยู่บน Server เดียวกัน และทำให้กระทบการทำงานกันโดยไม่จำเป็น

ทั้งนี้ หากดำเนินการตามข้อแนะนำ Regular Routine 12 ข้อนี้แล้ว รวมถึงการเพิ่มประสิทธิภาพ Database Server แล้ว ยังรู้สึกว่าไม่เพียงพอต่อการใช้งานอยู่ อาจจะจำเป็นต้องพิจารณาดำเนินในขั้นที่สูงขึ้นถัดไปดังนี้

  1. Connection Pool Turning: คือการปรับขยาย Max Pool Size ให้รองรับโหลดได้มากขึ้น โดยจำเป็นต้อง Adjust ให้เหมาะสมกับ Hardware ที่ Host นั้นๆใช้

  2. Database Partitioning: คือ การแบ่งข้อมูลภายในตารางหรือ index ออกเป็นส่วนย่อยๆ ที่เรียกว่า "partitions". แต่ละ partition สามารถจัดการและเข้าถึงข้อมูลได้แยกจากกัน ซึ่งช่วยในการปรับปรุงประสิทธิภาพการค้นหาและการบำรุงรักษาข้อมูล

  3. Database Sharding: คือ การ shard ฐานข้อมูลหมายถึงการแบ่งข้อมูลออกเป็นหลายส่วน (หรือ "shards") และจัดเก็บแต่ละส่วนในเซิร์ฟเวอร์ที่แตกต่างกัน. แต่ละ shard จะทำงานอย่างอิสระและไม่ขึ้นต่อกัน. การ shard ฐานข้อมูลสามารถช่วยเพิ่มประสิทธิภาพและสามารถขยายได้ (scalable) แต่การจัดการฐานข้อมูลที่ถูก shard อาจจะซับซ้อนขึ้น

  4. Separate Data file and Log file: คือ การแยกไฟล์ข้อมูล (data files) และไฟล์ log (log files) ให้อยู่คนละ disk หรือ storage subsystem ใน SQL Server

  5. Multi Tanant/Replication: คือ การเพิ่ม Node ของ Database ขึ้นมา เพื่อกระจาย Connection ไปสู่ Database หลายๆตัว และการแยก READ/WRITE server.

  6. RAID & SSD: หาก Server ของท่านเป็น OnPrem แบบติดตั้งบน Hardware ตนเอง ควรพิจารณาใช้ RAID 10 และใช้เป็น SSD

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

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.