国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

用show parameter直接顯示Oracle隱含參數(shù)

2024-08-29 13:52:16
字體:
供稿:網(wǎng)友
Oracle數(shù)據(jù)庫的啟動用到了初始化參數(shù),一般情況下可以在sqlplus里用show parameter 來獲得。而Oracle數(shù)據(jù)庫為了debug 或者解決一些特殊的問題,還提供了一些以“_”開頭的隱含參數(shù)。 網(wǎng)絡(luò)上有一些script可以讓我們輕松檢查這些隱含參數(shù). 下面我們來詳細(xì)介紹一下如何直接在sqlplus 用show parameter來獲取隱含參數(shù)?

用sqlplus里的show parameter來直接查看Oracle隱含參數(shù):

1.首先,我們需要了解sqlplus是如何通過show parameter獲得參數(shù)的。大家只需通過sql_trace的方式可以發(fā)現(xiàn)。

sqlplus serol/luo

alter session set sql_trace=true;

show parameter optimizer

NAME TYPE VALUE

-------------------- -----------------

optimizer_dynamic_sampling integer 1

optimizer_features_enable string 9.2.0.1

optimizer_index_caching integer 0

optimizer_index_cost_adj integer 1

optimizer_max_permutations integer 2000

optimizer_mode string RULE

exit

到udump底下找到trace文件,里面的最主要的語句是:

SELECT NAME name_col_plus_show_param,DECODE(TYPE,1,'boolean',2,'string',3,'integer',4,'file',6,'big

integer','unknown') TYPE,VALUE value_col_plus_show_param FROM V$PARAMETER WHERE UPPER(NAME) LIKE UPP

ER('%optimizer%') ORDER BY name_col_plus_show_param,ROWNUM

可以看到,sqlplus的show parameter實際上就是查詢V$PARAMETER .

2.再來看一下v$parameter的定義。

SELECT * FROM v$fixed_view_definition

WHERE view_name = 'V$PARAMETER';

select NUM , NAME , TYPE , VALUE , ISDEFAULT , ISSES_MODIFIABLE , ISSYS_MODIFIABLE , ISMODIFIED , ISADJUSTED , DESCRIPTION, UPDATE_COMMENT from GV$PARAMETER where inst_id = USERENV('Instance')

SELECT * FROM v$fixed_view_definition

WHERE view_name = 'GV$PARAMETER';

select x.inst_id,x.indx+1,ksppinm,ksppity,ksppstvl,ksppstdf,

decode(bitand(ksppiflg/256,1),1,'TRUE','FALSE'),

decode(bitand(ksppiflg/65536,3),1,'IMMEDIATE',2,'DEFERRED',

3,'IMMEDIATE','FALSE'), decode(bitand(ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE'),

decode(bitand(ksppstvf,2),2,'TRUE','FALSE'), ksppdesc, ksppstcmnt

from x$ksppi x, x$ksppcv y

where (x.indx = y.indx) and ( (translate(ksppinm,'_','#') not like '#%') or (ksppstdf = 'FALSE') )

看到上面最關(guān)鍵的 (translate(ksppinm,'_','#') not like '#%')的條件了嗎?,就是它把開頭為"_" 的隱含參數(shù)給過濾掉了。當(dāng)然,ksppstdf = 'FALSE' 的條件是為了保證如果已經(jīng)手動改過隱含參數(shù),show parameter還會顯示改隱含參數(shù)。

3.我們可以偽造一個v$parameter, 去掉過濾"_"的條件,就可以成功了。

注意:由于是改動系統(tǒng)的內(nèi)部設(shè)置,所以大家一定要特別留意。

一定要以一個僅用于數(shù)據(jù)庫管理,不會參加任何程序活動的管理性數(shù)據(jù)庫用戶來偽造這個v$parameter,以免發(fā)生意外。而且,最好是在測試環(huán)境中玩,而不要跑到生產(chǎn)環(huán)境里面。下面假設(shè)這個用戶名為:rollingpig.

以sys 登陸

connect / as sysdba

create view my_v$parameter_with_hidden (NUM,NAME , TYPE , Value , ISDEFAULT , ISSES_MODIFIABLE , ISSYS_MODIFIABLE ,ISMODIFIED , ISADJUSTED, DESCRIPTION, UPDATE_COMMENT)

as

select x.indx+1,ksppinm,ksppity,ksppstvl,ksppstdf,

decode(bitand(ksppiflg/256,1),1,'TRUE','FALSE'),

decode(bitand(ksppiflg/65536,3),1,'IMMEDIATE',2,'DEFERRED',

3,'IMMEDIATE','FALSE'), decode(bitand(ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE'),

decode(bitand(ksppstvf,2),2,'TRUE','FALSE'), ksppdesc, ksppstcmnt

from x$ksppi x, x$ksppcv y

where (x.indx = y.indx);

grant select on my_v$parameter_with_hidden to rollingpig;

以 rollingpig 用戶連接,創(chuàng)建同義詞:

create synonym v$parameter for sys.my_v$parameter_with_hidden ;

4.現(xiàn)已成功,我們來測試一下。

以rollingpig 用戶登陸:

show parameter optimizer

SQL> show parameter optimizer

NAME TYPE VALUE

---------------------------------- -------------------------------- _optimizer_adjust_for_nulls boolean TRUE

_optimizer_choose_permutation integer 0

_optimizer_cost_model string CHOOSE

_optimizer_degree integer 0

_optimizer_dyn_smp_blks integer 32

_optimizer_join_sel_sanity_check boolean FALSE

_optimizer_mode_force boolean TRUE

_optimizer_new_join_card_computation boolean TRUE

_optimizer_percent_parallel integer 101

_optimizer_search_limit integer 5

_optimizer_skip_scan_enabled boolean TRUE

_optimizer_sortmerge_join_enabled boolean TRUE

_optimizer_system_stats_usage integer 0

_optimizer_undo_changes boolean FALSE

_optimizer_undo_cost_change string 9.2.0.1

optimizer_dynamic_sampling integer 1

optimizer_features_enable string 9.2.0.1

optimizer_index_caching integer 0

optimizer_index_cost_adj integer 1

optimizer_max_permutations integer 2000

optimizer_mode string RULE

以"_"開頭的隱含參數(shù)一個給跑出來了,optimizer開頭的還真不少 :D

還有一些明顯是測試用的hidden parameter

SQL> show parameter test

NAME TYPE VALUE

------------------------- --------------------------------

_ipc_test_failover integer 0

_ipc_test_mult_nets integer 0

_test_ksusigskip integer 5

_test_param_1 integer 25

_test_param_2 string

_test_param_3 string

_test_param_4 string

_test_param_5 integer 25

_test_param_6 big integer 0

注意:本文中的示例僅在測試環(huán)境中實現(xiàn),請大家不要在生產(chǎn)環(huán)境中嘗試。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿瓦提县| 汾阳市| 茂名市| 尚义县| 红河县| 芒康县| 老河口市| 农安县| 石柱| 莎车县| 年辖:市辖区| 高阳县| 蒙阴县| 辽宁省| 建德市| 泽库县| 怀仁县| 白朗县| 南安市| 泰安市| 沧州市| 咸丰县| 南木林县| 娱乐| 普兰县| 信宜市| 始兴县| 屏山县| 将乐县| 永川市| 湘潭市| 蓝田县| 南木林县| 马龙县| 都匀市| 大邑县| 桐乡市| 阳山县| 永川市| 万山特区| 平泉县|