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

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