Oracle數(shù)據(jù)庫(kù)隱含參數(shù)使用的五個(gè)原則和四個(gè)建議
隱含參數(shù)是數(shù)據(jù)庫(kù)參數(shù)名中前綴為“_”的參數(shù),在未作明確設(shè)定值的情況下,無(wú)法通過(guò)簡(jiǎn)單的show parameter/spparameter查詢到設(shè)定值。其有如下幾個(gè)使用原則:
1、隱含參數(shù)并不能覆蓋所有問(wèn)題,也不能解決所有問(wèn)題;
2、只是解決某一特定場(chǎng)景的workaround;
3、必須在測(cè)試環(huán)境測(cè)試驗(yàn)證后才能在生產(chǎn)環(huán)境中使用;
4、受應(yīng)用自身特點(diǎn),非共性問(wèn)題,不建議推廣;
5、建議經(jīng)過(guò)oracle原廠工程師確認(rèn)后再使用;
與隱含參數(shù)相關(guān)的基表,可以通過(guò)10046跟蹤的方法找到:
如上圖可以看到有兩張x$開(kāi)頭的基表,分別為x$ksppi(Kernel Service Parameter Parameter Information)和x$ksppcv(Kernel Service Parameter Parameter Current Value),兩張基表基本包含了所有的數(shù)據(jù)庫(kù)隱含參數(shù)。
兩張基表的描述分別如下:
獲取隱含參數(shù)的方法(變量在&name中自行輸入):
- select a.ksppinm name,b.ksppstdf default_on,b.ksppstvl value,a.ksppdesc description from x$ksppi a,x$ksppcv b where a.indx=b.indx and substr(a.ksppinm,1,1)='_' and a.ksppinm like '%&name%' order by a.ksppinm;
在11.2.0.4.8的數(shù)據(jù)庫(kù)版本中,一共包含2500多個(gè)隱含參數(shù),且每個(gè)數(shù)據(jù)庫(kù)版本的隱含參數(shù)數(shù)量可能會(huì)有變化,甚至某些隱含參數(shù)在不同版本中的缺省值不同,這是需要特別注意的地方。
以參數(shù)中有ADG字樣的舉例,通過(guò)SQL查詢,大致判斷與ADG相關(guān)的隱含參數(shù)如下:
隱含參數(shù)的用途分類(lèi),大致有如下幾方面:
協(xié)助問(wèn)題分析
功能特性控制開(kāi)關(guān)
閥值大小設(shè)置調(diào)整
應(yīng)急處理及手工控制

根據(jù)數(shù)據(jù)庫(kù)***設(shè)計(jì)及長(zhǎng)期運(yùn)維經(jīng)驗(yàn),部分推薦設(shè)置的隱含參數(shù)如下:
修改隱含參數(shù)的設(shè)置時(shí),需要用雙引號(hào)將參數(shù)名在等號(hào)左邊括起來(lái),并使用alter語(yǔ)句進(jìn)行更改,或者直接在pfile參數(shù)文件中進(jìn)行修改。
綜上對(duì)隱含參數(shù)的描述,總結(jié)如下:
1、能用簡(jiǎn)單方法解決問(wèn)題就不要把問(wèn)題復(fù)雜化;
2、應(yīng)謹(jǐn)慎設(shè)置任何的隱含參數(shù);
3、需充分了解隱含參數(shù)的特性再使用;
4、對(duì)于新功能啟用,建議評(píng)估相關(guān)隱含參數(shù)的特性機(jī)制