SQL 查詢優化案例研究:提升水位監測系統性能
SQL 查詢優化案例研究:提升水位監測系統性能背景我們的水位監測系統面臨著一個重要的挑戰:主要的數據查詢速度緩慢,造成了「執行逾時到期。在作業完成之前超過逾時等待的時間,或是伺服器未回應。」的問題,導致系統一直發送LINE通知錯誤。這個案例研究詳細介紹了我們如何通過優化 SQL 查詢來顯著提升系統性能。 初始情況系統概況 目前總共有 120 個監測站點(stt_no) 每 10 分鐘向 WaterLevelGaugeHistory 表匯入一次數據 需要查詢每個站點最近 24 小時的最新數據 原始查詢初始查詢涉及多個表的聯接和子查詢,執行時間約為 1 分鐘以上。 12345678910111213SELECT DISTINCT WL.[ID], WL.[stt_name], /* 其他欄位 ... */ WLH.[measure_time], WLH.[val], WLH.[Status], WLH.cstatus, WLH.[Epower], WLH.nodataFROM [dbo].[WaterLevelGauge] WLLEFT JOIN...
