ITPub博客

首页 > 数据库 > Oracle > [20200420]V$SES_OPTIMIZER_ENV 查不到刚修改的隐含参数.txt

[20200420]V$SES_OPTIMIZER_ENV 查不到刚修改的隐含参数.txt

原创 Oracle 作者:lfree 时间:2020-04-21 08:45:03 0 删除 编辑

[20200420]V$SES_OPTIMIZER_ENV 查不到刚修改的隐含参数.txt

--//链接http://www.itpub.net/thread-2133210-1-1.html的问题:
ORACLE 11204,

1 在sqlplus里执行语句:alter session set "_add_col_optim_enabled" = false;
2 然后找出该进程的SID: select sid from v$mystat group by sid;
3 之后再查询 select name from v$ses_optimizer_env where sid=xxx:上面查询的sid值,
但查询结果里,没有看到 "_add_col_optim_enabled" 这个隐含参数,WHY ?

--//在自己的测试环境重复测试:
1.环境:
SCOTT@book> @ ver1

PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@book> @ hide _add_col_optim_enabled
NAME                   DESCRIPTION                        DEFAULT_VALUE SESSION_VALUE SYSTEM_VALUE ISSES ISSYS_MOD
---------------------- ---------------------------------- ------------- ------------- ------------ ----- ---------
_add_col_optim_enabled Allows new add column optimization TRUE          TRUE          TRUE         TRUE  IMMEDIATE

--//缺省为true。

2.测试:
--//session 1:
SCOTT@book> @ spid
       SID    SERIAL# PROCESS                  SERVER    SPID       PID  P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
        15       1425 12506                    DEDICATED 12507       25        253 alter system kill session '15,1425' immediate;

SCOTT@book> alter session set "_add_col_optim_enabled" = false;
Session altered.

SCOTT@book> show parameter _add_col_optim_enabled
NAME                   TYPE    VALUE
---------------------- ------- -----
_add_col_optim_enabled boolean FALSE

--//session 1:
SYS@book> select name from v$ses_optimizer_env where sid=15 and name like '%add_col_optim_enabled%';
no rows selected
--//确实没有看到。

3.使用oradebug查看:
--//session 2:
SYS@book> oradebug setospid 12507
Oracle pid: 25, Unix process pid: 12507, image: oracle@gxqqqdg4 (TNS V1-V3)

SYS@book> oradebug dump modified_parameters 1
Statement processed.

SYS@book> oradebug tracefile_name
/u01/app/oracle/diag/rdbms/book/book/trace/book_ora_12507.trc

--//检查转储:
*** 2020-04-20 11:17:05.571
Received ORADEBUG command (#2) 'dump modified_parameters 1' from process 'Unix process pid: 12516, image: <none>'
DYNAMICALLY MODIFIED PARAMETERS:
  nls_language             = AMERICAN
  nls_territory            = AMERICA
  nls_sort                 = BINARY
  nls_date_language        = AMERICAN
  nls_date_format          = YYYY-MM-DD HH24:MI:SS
  nls_currency             = $
  nls_numeric_characters   = .,
  nls_iso_currency         = AMERICA
  nls_calendar             = GREGORIAN
  nls_time_format          = HH.MI.SSXFF AM
  nls_timestamp_format     = YYYY-MM-DD HH24:MI:SS.FF
  nls_time_tz_format       = HH.MI.SSXFF AM TZR
  nls_timestamp_tz_format  = YYYY-MM-DD HH24:MI:SS.FF TZH:TZM
  nls_dual_currency        = $
  nls_comp                 = BINARY
  _add_col_optim_enabled   = FALSE
~~~~~~~~~~~~~~~~~~~~~~~~

4.继续测试:
--//session 1:
SCOTT@book> alter session set optimizer_index_cost_adj=10;
Session altered.

--//session 2:
SYS@book> select * from v$ses_optimizer_env where sid=15 and lower(name) like '%optimizer_index_cost_adj%';
SID ID NAME                     SQL_FEATURE ISD VALUE
--- -- ------------------------ ----------- --- -----
 15 66 optimizer_index_cost_adj QKSFM_CBO   NO  10

SYS@book> oradebug dump modified_parameters 1
Statement processed.

--//检查转储:
*** 2020-04-20 11:22:11.711
Received ORADEBUG command (#4) 'dump modified_parameters 1' from process 'Unix process pid: 12516, image: <none>'
DYNAMICALLY MODIFIED PARAMETERS:
  nls_language             = AMERICAN
  nls_territory            = AMERICA
  nls_sort                 = BINARY
  nls_date_language        = AMERICAN
  nls_date_format          = YYYY-MM-DD HH24:MI:SS
  nls_currency             = $
  nls_numeric_characters   = .,
  nls_iso_currency         = AMERICA
  nls_calendar             = GREGORIAN
  nls_time_format          = HH.MI.SSXFF AM
  nls_timestamp_format     = YYYY-MM-DD HH24:MI:SS.FF
  nls_time_tz_format       = HH.MI.SSXFF AM TZR
  nls_timestamp_tz_format  = YYYY-MM-DD HH24:MI:SS.FF TZH:TZM
  nls_dual_currency        = $
  nls_comp                 = BINARY
  optimizer_index_cost_adj = 10
  _add_col_optim_enabled   = FALSE

5.继续测试:
--//按照ZALBB的说法,其它隐含参数是可以查询到.继续测试看看:
--//session 1:
SCOTT@book> @ spid

       SID    SERIAL# PROCESS                  SERVER    SPID       PID  P_SERIAL# C50
---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------
        15       2315 17879                    DEDICATED 17880       25         59 alter system kill session '15,2315' immediate;


SCOTT@book> alter session set "_optim_peek_user_binds"=false ;
Session altered.

SCOTT@book> show parameter _optim_peek_user_binds
NAME                   TYPE    VALUE
---------------------- ------- ------
_optim_peek_user_binds boolean FALSE

--//session 2:
SYS@book> select * from v$ses_optimizer_env where sid=15 and lower(name) like '%optim_peek_user_binds%';
 SID  ID NAME                   SQL_FEATURE ISD VALUE
---- --- ---------------------- ----------- --- ------
  15  98 _optim_peek_user_binds QKSFM_CBO   NO  false

--//session 1:
SCOTT@book> alter session set "_add_col_optim_enabled"=false ;
Session altered.

--//session 2:
SYS@book> select * from v$ses_optimizer_env where sid=15 and lower(name) like '%add_col_optim_enabled%';
no rows selected

--//确实有点奇怪,这个参数_add_col_optim_enabled无法看到。看来比较保险就是使用
SYS@book> oradebug setospid 17880
Oracle pid: 25, Unix process pid: 17880, image: oracle@gxqqqdg4 (TNS V1-V3)

SYS@book> oradebug dump modified_parameters 1
Statement processed.

SYS@book> oradebug tracefile_name
/u01/app/oracle/diag/rdbms/book/book/trace/book_ora_17880.trc

--//检查转储:
Received ORADEBUG command (#1) 'dump modified_parameters 1' from process 'Unix process pid: 12516, image: <none>'
DYNAMICALLY MODIFIED PARAMETERS:
  nls_language             = AMERICAN
  nls_territory            = AMERICA
  nls_sort                 = BINARY
  nls_date_language        = AMERICAN
  nls_date_format          = YYYY-MM-DD HH24:MI:SS
  nls_currency             = $
  nls_numeric_characters   = .,
  nls_iso_currency         = AMERICA
  nls_calendar             = GREGORIAN
  nls_time_format          = HH.MI.SSXFF AM
  nls_timestamp_format     = YYYY-MM-DD HH24:MI:SS.FF
  nls_time_tz_format       = HH.MI.SSXFF AM TZR
  nls_timestamp_tz_format  = YYYY-MM-DD HH24:MI:SS.FF TZH:TZM
  nls_dual_currency        = $
  nls_comp                 = BINARY
  _optim_peek_user_binds   = FALSE
  _add_col_optim_enabled   = FALSE

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2687295/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969390