1.選擇最有效的表名順序(僅在基於規則的優化器中有效):
ORACLE的解析器從右到左處理FROM子句中的表名,FROM子句寫在最後壹個表(基本表
Drivingtable)將首先被處理。如果FROM子句中有多個表,則必須選擇記錄數最少的表作為基表。如果有三個以上的表連接查詢,
然後需要選擇intersectiontable作為基本表,交集表是指被其他表引用的表。
2.2中的連接順序。WHERE子句:
ORACLE以自下而上的順序解析WHERE子句。根據這個原則,表之間的連接必須寫在其他WHERE條件之前。
可以篩選出最大記錄數的條件必須寫在WHERE子句的末尾。
3.避免在3中使用。SELECT子句。
'
*
:
在ORACLE解析過程中,
將會加上' * '
依次轉換為所有列名,
這項工作是通過查詢數據字典來完成的,這意味著需要更多的時間。
4.減少訪問數據庫的次數:
ORACLE在內部做了大量工作:
解析SQL語句,
估計索引的利用率,
綁定變量
讀取數據塊等。