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...