(2)解析步驟
1.語法判斷
判斷sql語句是否拼寫錯誤
2.語義判斷
判斷對象是否存在,用戶對對象是否有權限
3.查找share pool 確定硬解析或軟解析
- 判斷是否同一sql語句,大小寫及空格等都要完全相同
- 判斷是否同一物理對象,如不同用戶下的同名表
- 判斷是否同一優化器,如first rows 與 all rows不同
符合上面三個條件,進行軟解析
注:網上有個誤區,先進行share pool 查找,若是軟解析則不進行1、2步驟,據官方文檔,這是不正確的。詳見http://docs.oracle.com/cd/E11882_01/server.112/e40540/sqllangu.htm#CNCPT88919
(3)軟解析:
條件:在share pool中存在,且可被共享
步驟:1.執行執行計劃
(3)硬解析
條件:在share pool 中不存在或存在但不可被共享
步驟:1.選擇執行計劃
2.產生執行計劃