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