Oracle優(yōu)化器的3不同類型介紹
以下的文章我們主要講述的是Oracle優(yōu)化器的3不同類型的描述,以及對不同類型的優(yōu)化器在什么相關(guān)情況下可以使用,在什么情況下我們應(yīng)該避免使用什么樣的優(yōu)化器,下面就是文章的具體內(nèi)容描述。
a. RULE (基于規(guī)則)
b. COST (基于成本)
c. CHOOSE (選擇性)
設(shè)置缺省的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)計(jì)信息(object statistics)的準(zhǔn)確性。
如果數(shù)據(jù)庫的優(yōu)化器模式設(shè)置為選擇性(CHOOSE),那么實(shí)際的Oracle優(yōu)化器模式將和是否運(yùn)行過analyze命令有關(guān)。 如果table已經(jīng)被analyze過, 優(yōu)化器模式將自動(dòng)成為CBO , 反之,數(shù)據(jù)庫將采用RULE形式的優(yōu)化器。
在缺省情況下,Oracle采用CHOOSE優(yōu)化器,為了避免那些不必要的全表掃描(full table scan) , 你必須盡量避免使用CHOOSE優(yōu)化器,而直接采用基于規(guī)則或者基于成本的Oracle優(yōu)化器。
以上的相關(guān)內(nèi)容就是對Oracle優(yōu)化器共的3種類型的介紹,望你能有所收獲。
【編輯推薦】