首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 SELECT 語句執行全流程解析:從網路傳輸到排序回傳的 8 大關鍵步驟

     編輯:DB2 教學

執行流程圖解 (以 SELECT * FROM TABLE ORDER BY ... 為例)

  1. 網路傳輸:SQL 經由網路送達代理執行緒 (Agent/Coordinator)。
  2. 重寫與編譯:SQL 經重寫器優化、編譯器生成執行計劃,計劃存入 Package Cache。
  3. 協調代理依計劃執行:發送預取請求給預取執行緒。
  4. 預取執行緒非同步 I/O:跨容器平行讀取資料頁至緩衝池 (若無預取則略過)。
  5. 資料頁載入緩衝池:從容器讀入頁面。
  6. 排序堆處理:需排序的資料移入排序堆。
  7. 排序溢寫暫存表空間:排序堆不足時,溢寫至系統暫存表空間。
  8. 結果回傳:排序完成的列由子代理送回用戶端。

效能關鍵細節

  • 執行計劃好壞直接決定效能:索引缺失、統計資訊過期會導致錯誤計劃。
  • 預取發生時:預取執行緒連續讀取頁面,代理執行緒等待;若無預取,代理平行同步讀取。
  • 任何一環 (編譯、I/O、排序、網路) 皆可能成為瓶頸。

調優建議

  • 定期 RUNSTATS 更新統計資訊。
  • 依查詢模式建立適當索引,避免全表掃描與大量排序。
  • 調整 SORTHEAP, SHEAPTHRES, PREFETCHSIZE 等配置參數。
  • 監控 db2pd -agents, db2top 觀察等待事件。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved