Oracle語句優化 個規則詳解

2021-06-16 08:22:57 字數 1187 閱讀 5598

1. 選用適合的oracle優化器

2. 訪問table的方式oracle 採用兩種訪問表中記錄的方式:

3. 共享sql語句

4. 選擇最有效率的表名順序(只在基於規則的優化器中有效)

5. where子句中的連線順序。

6. select子句中避免使用 『 * 』

7. 減少訪問資料庫的次數

8. 使用decode函式來減少處理時間

9. 整合簡單,無關聯的資料庫訪問

10.刪除重覆記錄

11.用truncate替代delete

12.盡量多使用commit

13.計算記錄條數

15.減少對錶的查詢

16.通過內部函式提高sql效率。

17.使用表的別名(alias)

18.用exists替代in

19.用not exists替代not in

20.用表連線替換exists

21.用exists替換distinct

23.使用tkprof 工具來查詢sql效能狀態

24.用explain plan 分析sql語句

25.用索引提高效率

26.索引的操作

27.基礎表的選擇

28.多個平等的索引

29.等式比較和範圍比較 

30.不明確的索引等級

31.強制索引失效

32.避免在索引列上使用計算。

33.自動選擇索引

34.避免在索引列上使用not

35.用》=替代》

36.用union替換or (適用於索引列)

37.用in來替換or

38.避免在索引列上使用is null和is not null 

39.總是使用索引的第乙個列

40.oracle內部操作

41.用union-all 替換union ( 如果有可能的話) 

42.使用提示(hints)

43.用where替代order by 

44.避免改變索引列的型別。

45.需要當心的where子句

46.連線多個掃瞄

47.cbo下使用更具選擇性的索引

48.避免使用耗費資源的操作

49.優化group by

50.使用日期當

51.使用顯式的游標(cursors)

53.分離表和索引

Oracle語句優化 個規則詳解 10

42.使用提示 hints 對於表的訪問,可以使用兩種hints.full 和 rowid full hint 告訴oracle使用全表掃瞄的方式訪問指定表。例如 select full emp from emp where empno 7893 rowid hint 告訴oracle使用table...

Oracle語句優化 個規則詳解 11

45.需要當心的where子句 某些select 語句中的where子句不使用索引。這裡有一些例子。在下面的例子裡,將不使用索引。記住,索引只能告訴你什麼存在於表中,而不能告訴你什麼不存在於表中。不使用索引 select account name from transaction where amo...

oracle語句優化規則二

oracle採用自下而上的順序解析where子句,根據這個原理,表之間的連線必須寫在其他where條件之前,那些可以過濾掉最大數量記錄的條件必須寫在where子句的末尾。1.where子句中的連線順序。oracle採用自下而上的順序解析where子句,根據這個原理,表之間的連線必須寫在其他where...