Oracle優(yōu)化器三大種類的介紹
Oracle優(yōu)化器一共有三種即,RULE (基于規(guī)則),COST (基于成本)以及CHOOSE (選擇性),我們大家都知道設(shè)置缺省的相關(guān)Oracle優(yōu)化器,其可以通過對init.ora文件中OPTIMIZER_MODE參數(shù)的各種聲明。
如RULE,COST,CHOOSE,ALL_ROWS,F(xiàn)IRST_ROWS . 你當(dāng)然也在SQL句級或是會話(session)級對其進(jìn)行覆蓋。
為了使用基于成本的優(yōu)化器(CBO, Cost-Based Optimizer) , 你必須經(jīng)常運(yùn)行analyze 命令,以增加數(shù)據(jù)庫中的對象統(tǒng)計信息(object statistics)的準(zhǔn)確性。
如果數(shù)據(jù)庫的優(yōu)化器模式設(shè)置為選擇性(CHOOSE),那么實際的Oracle優(yōu)化器模式將和是否運(yùn)行過analyze命令有關(guān)。 如果table已經(jīng)被analyze過, 優(yōu)化器模式將自動成為CBO , 反之,數(shù)據(jù)庫將采用RULE形式的優(yōu)化器。
在缺省情況下,Oracle采用CHOOSE優(yōu)化器,為了避免那些不必要的全表掃描(full table scan) , 你必須盡量避免使用CHOOSE優(yōu)化器,而直接采用基于規(guī)則或者基于成本的優(yōu)化器。
以上的相關(guān)內(nèi)容就是對Oracle優(yōu)化器共有3種的介紹,望你能有所收獲。
【編輯推薦】