แผนการเรียนรู้
/

Week 13: AI-Driven
Performance Optimization

Query Optimization & Workload Forecasting with Machine Learning

Project Milestone

Phase 4: ML-driven Cloud Resource Scaling

"Let AI predict the workload — and scale cost-efficiently before it happens."

Learning Outcomes

1
Explain how ML is applied to query optimization and index tuning
2
Build a workload / capacity forecasting model from query logs
3
Use predictions to auto-scale cloud resources and control cost
4
Identify AI-native patterns in modern data warehouses

ทำไมประสิทธิภาพ DW ถึงสำคัญ?

⏱️ Query ที่ช้า = ผู้ใช้รอคอยนาน ความพึงพอใจลดลง และการตัดสินใจล่าช้า
💰 บนคลาวด์ ยิ่งประมวลผลช้า/ใช้ทรัพยากรมาก ยิ่งเสียค่าใช้จ่ายสูง (Pay-as-you-go)
🤖 AI เอเจนต์ต้องดึงข้อมูลแบบเรียลไทม์ — ถ้าช้า AI ก็ตอบช้าและไม่มีประโยชน์

Traditional vs AI-driven Tuning

Traditional (Rule-based)

  • • 👨‍🔧 DBA ปรับ Index คู่มือโดยดู Query Plan
  • • 📏 ใช้ Heuristics / Best Practices
  • • ⚠️ ไม่ทันการเปลี่ยนแปลงของ workload
  • • 🕐 เสียเวลาคน และเสี่ยงพลาด

AI / ML-driven

  • • 🤖 เรียนรู้จาก Query Log และสถิติข้อมูลจริง
  • • 📈 พยากรณ์ปริมาณงานล่วงหน้า
  • • ⚡ ปรับ Index / Partition อัตโนมัติ
  • • 🎯 Scale ทรัพยากรก่อนเกิดเหตุการณ์

Workload / Capacity Forecasting

ใช้ Time-Series ML เพื่อพยากรณ์ปริมาณ Query และทรัพยากรที่ต้องใช้ในอนาคต

1
เก็บข้อมูลประวัติ: Query log, CPU/Memory usage, จำนวนผู้ใช้ ต่อช่วงเวลา
2
ฝึกโมเดล: ใช้ ARIMA / Prophet / LSTM / Gradient Boosting
3
พยากรณ์: ทำนาย peak หน้าเทศกาล, ช่วงเวลาเร่งด่วน ฯลฯ
4
ดำเนินการ: Auto-scaling หรือแจ้งเตือนก่อน resource เกิน
Workshop (20 นาที)

อ่านผลการพยากรณ์ปริมาณงาน

โมเดลพยากรณ์พยากรณ์ว่าใน "ช่วง 11.11 (Single's Day)" ปริมาณ Query จะเพิ่มขึ้น 5 เท่า จากปกติ

1. ระบบควรทำอะไรล่วงหน้า ก่อนถึงช่วงเวลาดังกล่าว?
2. จะทำอย่างไรให้ต้นทุนไม่บานปลายเมื่อ workload กลับมาปกติ?
3. ตัวชี้วัดอะไรที่ใช้วัดว่า "พยากรณ์แม่นยำ"?

เฉลย: Preemptive Scaling

1. ลงมือก่อนถึง peak

เพิ่ม compute warehouse / cluster อัตโนมัติไว้ล่วงหน้า (Vertical/Horizontal Scaling) โดยใช้ผลพยากรณ์เป็นตัวกระตุ้น

2. ควบคุมต้นทุนเมื่อกลับมาปกติ

ตั้ง Auto-suspend / Auto-pause หลัง workload ลดลง + กำหนดขีด $\max$ ของค่าใช้จ่ายรายวัน

3. วัดความแม่นยำ

ใช้ MAPE, RMSE และเทียบ "ค่าจริง vs ค่าพยากรณ์" ของ Query volume / latency

💡 แนวคิด: "Scale-out ล่วงหน้า + Scale-in อัตโนมัติ" คือสูตรลดต้นทุนที่ AI ช่วยได้จริง

Part 2: AI for Query Optimization

"Optimize the optimizer"

Machine Learning ช่วยให้คำสั่ง SQL และโครงสร้างข้อมูลทำงานเร็วขึ้น

ML-based Index Tuning

แทนที่จะให้ DBA คิดว่า "ควรสร้าง index ไหน" AI เรียนรู้จากรูปแบบ Query ที่เกิดขึ้นจริง

  • • 📊 วิเคราะห์ Query Log: หา column ที่ถูก WHERE / JOIN บ่อยที่สุด
  • • 🧠 RL (Reinforcement Learning): ทดลองสร้าง/ลบ index แล้วให้รางวัลตาม latency
  • • ⚡ Adaptive Indexing: สร้าง index บนข้อมูลแบบ Hot (เข้าถึงบ่อย) โดยอัตโนมัติ
  • • 🧹 การลบ index ไร้ประโยชน์: ลดต้นทุนพื้นที่และเขียนที่ช้าลง
ตัวอย่าง: SQL Server Automatic Tuning, PostgreSQL Tuning

Learned Cardinality Estimation

ปัญหาเดิม

Query Optimizer เดา "จำนวนแถว" ไม่ถูก (Cardinality) โดยเฉพาะจากสถิติเก่า/ข้อมูลเอนเอียง → เลือกแผนผิด → ทำงานช้า

ทางแก้ด้วย ML

ใช้โมเดลเรียนรู้ความสัมพันธ์ระหว่างคอลัมน์และค่า distribution เพื่อพยากรณ์ cardinality แม่นยำขึ้น → แผนการ Query ดีขึ้น

🧠 ยังมีที่น่าสนใจ: Learned Storage Layout (tile order), Learned Partitioning และ Learned Join Order
กิจกรรมกลุ่ม (25 นาที)

ออกแบบ AI-driven Optimization Loop

ออกแบบวงรอบ (Loop) ที่ใช้ AI ปรับแต่งคลังข้อมูลในโครงการของคุณ:

1. ข้อมูลใดที่ระบบต้องเก็บเป็น "สัญญาณ" (Query log, latency, cost)?
2. AI ควรปรับอะไร? (Index, Partition, Compute, Query Rewrite)
3. จะแน่ใจได้ว่าการปรับแต่งไม่ทำให้ระบบพัง?

เฉลย: AI Optimization Loop

  1. 1. 🎯 Observe: เก็บ Query Log, execution time, CPU, cost ต่อ query
  2. 2. 🧠 Analyze & Predict: ML ระบุ bottleneck และพยากรณ์ workload
  3. 3. ⚙️ Act: สร้าง index, ปรับ partition, scale compute, เขียน query ใหม่
  4. 4. 🧪 Validate: ทดสอบกับ workload จำลองก่อนลง production (Shadow / Canary)
  5. 5. 🔁 Retrain: อัปเดตโมเดลเมื่อ workload เปลี่ยน
"กุญแจสู่ความปลอดภัย: วัดผลก่อน-หลังเสมอ และมี Rollback เมื่อประสิทธิภาพแย่ลง"

Week 13 Summary

1. ML ปรับปรุง Query Optimization และ Index Tuning ได้เหนือกว่า rule-based
2. Workload Forecasting ช่วย scale ทรัพยากรล่วงหน้า + ลดต้นทุนคลาวด์
3. Learned Cardinality เพิ่มความแม่นยำของ Query Optimizer
4. การปรับแต่งต้องมี Validate + Rollback เสมอ
Next Week: AI Agents in Data Engineering — self-healing pipelines!