SQL 優化策略

2021-08-23 14:38:33 字數 935 閱讀 1462

1、sql語句盡量用大寫的;

因為oracle總是先解析sql語句,把小寫的字母轉換成大寫的再執行。

2、使用表的別名:

當在sql語句中連線多個表時, 盡量使用表的別名並把別名字首於每個列上。這樣一來,

就可以減少解析的時間並減少那些由列歧義引起的語法錯誤。

3、選擇最有效率的表名順序(只在基於規則的優化器(rbo)中有效):

oracle 的解析器按照從右到左的順序處理from子句中的表名,from子句中寫在最後的表

(基礎表也稱為驅動表,driving table)將被最先處理,在from子句中包含多個表的情況下,

必須選擇記錄條數最少的表作為基礎表。如果有3個以上的表連線查詢, 那就需要選擇交叉

表(intersection table)作為基礎表, 交叉表是指那個被其他表所引用的表。

4、where子句中的連線順序:

oracle採用自下而上的順序解析where子句,根據這個原理,表之間的連線必須寫在其他

where條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在where子句的末尾。

5、select子句中避免使用 * :

oracle在解析的過程中, 會將』*』 依次轉換成所有的列名, 這個工作是通過查詢資料字

典完成的, 這意味著將耗費更多的時間。

6、減少訪問資料庫的次數:

oracle在內部執行了許多任務作: 解析sql語句,估算索引的利用率,繫結變數,讀資料塊等。

7、整合簡單、無關聯的資料庫訪問:

如果有幾個簡單的資料庫查詢語句,可以整合到乙個查詢中(即使它們之間沒有關係)。

8、在sql*plus,sql*forms和pro*c中重新設定arraysize引數,可以增加每次資料庫訪問

的檢索資料量,建議值為200。

9、刪除重覆記錄:

最高效的刪除重覆記錄方法 :

SQL優化策略

下面是再河北優化時候採用的sql優化策略,按照該策略可以使效能有大幅提高,如 4 where 子句中出現is null或者is not null時,oracle會停止使用索引而執行全表掃瞄。可以考慮在設計表時,對索引列設定為notnull。這樣就可以用其他操作來取代判斷null的操作。5 當萬用字元...

SQL優化策略

1 盡量少用in操作符,基本上所有的in操作符都可以用exists代替。2 不用not in操作符,可以用not exists或者外連線 外連線 判斷為空 替代。3 不用 或者 操作符。對不等於操作符的處理會造成全表掃瞄,可以用 or 代替。例如 a 0 改為 a 0 or a 0,a 改為 a 4...

SQL優化策略

1.給where group by 條件欄位加索引select t.a,t.b,t.c from t where t.e 0 group by t.f2.避免使用 select from 示例 select from table t select t.a,t.b,t.c from table t 3...