SQL優化常用方法27

inzaghi1984發表於2017-12-15
  1. 基礎表的選擇
    基礎表(Driving Table)是指被最先訪問的表(通常以全表掃描的方式被訪問). 根據優化器的不同, SQL語句中基礎表的選擇是不一樣的. 如果你使用的是CBO (COST BASED OPTIMIZER),優化器會檢查SQL語句中的每個表的物理大小,索引的狀態,然後選用花費最低的執行路徑.如果你用RBO (RULE BASED OPTIMIZER),並且所有的連線條件都有索引對應, 在這種情況下, 基礎表就是FROM 子句中列在最後的那個表.

舉例: SELECT A.NAME , B.MANAGER FROM WORKER A, LODGING B
WHERE A.LODGING = B.LODING;
由於LODGING表的LODING列上有一個索引,而且WORKER表中沒相比較的索引,WORKER表將被作為查詢中的基礎表.


相關文章