DBMS_XPLAN.DISPLAY_CURSOR v$sql bind-data
来源:互联网 发布:sendto python buffer 编辑:程序博客网 时间:2024/05/25 16:40
看了白鳝的一片关于v$sql 中bind_data的测试,俺也学习了一下
SQL> select * from v$version where rownum<2;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
SQL> alter system flush shared_pool;
System altered.
SQL> var v1 varchar2(2);
SQL> exec :v1:='a';
PL/SQL procedure successfully completed.
SQL> select * from test11 where id=:v1;
ID ID1
-- ----------
ID3
---------------------------------------------------------------------------
a 1
11-APR-12 06.34.53.000000 PM
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL, NULL, 'ADVANCED'));
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID 9g1kvnud8041t, child number 0
-------------------------------------
select * from test11 where id=:v1
Plan hash value: 1550834917
----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 2 (100)| |
|* 1 | TABLE ACCESS FULL| TEST11 | 1 | 29 | 2 (0)| 00:00:01 |
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
----------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
1 - SEL$1 / TEST11@SEL$1
Outline Data
-------------
/*+
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
BEGIN_OUTLINE_DATA
IGNORE_OPTIM_EMBEDDED_HINTS
OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
DB_VERSION('11.2.0.1')
ALL_ROWS
OUTLINE_LEAF(@"SEL$1")
FULL(@"SEL$1" "TEST11"@"SEL$1")
END_OUTLINE_DATA
*/
Peeked Binds (identified by position):
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
--------------------------------------
1 - :V1 (VARCHAR2(30), CSID=852): 'a'--------初次绑定的值
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("ID"=:V1)
Column Projection Information (identified by operation id):
-----------------------------------------------------------
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
1 - "ID"[VARCHAR2,2], "TEST11"."ID1"[NUMBER,22],
"TEST11"."ID3"[TIMESTAMP,11]
Note
-----
- dynamic sampling used for this statement (level=2)
52 rows selected.
SQL> select dbms_sqltune.extract_binds(bind_data) bind from v$sql WHERE SQL_TEXT LIKE '%FROM TEST11%';
BIND(NAME, POSITION, DUP_POSITION, DATATYPE, DATATYPE_STRING, CHARACTER_SID, PRE
--------------------------------------------------------------------------------
SQL_BIND_SET()
SQL> select dbms_sqltune.extract_binds(bind_data) bind from v$sql WHERE SQL_TEXT LIKE '%from test11%';
BIND(NAME, POSITION, DUP_POSITION, DATATYPE, DATATYPE_STRING, CHARACTER_SID, PRE
--------------------------------------------------------------------------------
SQL_BIND_SET(SQL_BIND(NULL, 1, NULL, 1, 'VARCHAR2(32)', 852, NULL, NULL, 32, '11
-APR-12', 'a', ANYDATA()))
SQL_BIND_SET()
SQL_BIND_SET()
SQL> exec :v1:='aa';
PL/SQL procedure successfully completed.
SQL> select * from test11 where id=:v1;
ID ID1
-- ----------
ID3
---------------------------------------------------------------------------
aa 12
12-APR-01 12.00.00.000000 AM
SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL, NULL, 'ADVANCED'));
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID gq117a08wfuy0, child number 0
-------------------------------------
select * from test11 where id=:v1
Plan hash value: 1550834917
----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 2 (100)| |
|* 1 | TABLE ACCESS FULL| TEST11 | 1 | 29 | 2 (0)| 00:00:01 |
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
----------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
1 - SEL$1 / TEST11@SEL$1
Outline Data
-------------
/*+
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
BEGIN_OUTLINE_DATA
IGNORE_OPTIM_EMBEDDED_HINTS
OPTIMIZER_FEATURES_ENABLE('11.2.0.1')
DB_VERSION('11.2.0.1')
ALL_ROWS
OUTLINE_LEAF(@"SEL$1")
FULL(@"SEL$1" "TEST11"@"SEL$1")
END_OUTLINE_DATA
*/
Peeked Binds (identified by position):
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
--------------------------------------
1 - :V1 (VARCHAR2(30), CSID=852): 'aa'------------------最近一次绑定的值
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("ID"=:V1)
Column Projection Information (identified by operation id):
-----------------------------------------------------------
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
1 - "ID"[VARCHAR2,2], "TEST11"."ID1"[NUMBER,22],
"TEST11"."ID3"[TIMESTAMP,11]
Note
-----
- dynamic sampling used for this statement (level=2)
52 rows selected.
SQL> select dbms_sqltune.extract_binds(bind_data) bind from v$sql WHERE SQL_TEXT LIKE '%from test11%';
BIND(NAME, POSITION, DUP_POSITION, DATATYPE, DATATYPE_STRING, CHARACTER_SID, PRE
--------------------------------------------------------------------------------
SQL_BIND_SET(SQL_BIND(NULL, 1, NULL, 1, 'VARCHAR2(32)', 852, NULL, NULL, 32, '11
-APR-12', 'a', ANYDATA()))
SQL_BIND_SET()
SQL_BIND_SET(SQL_BIND(NULL, 1, NULL, 1, 'VARCHAR2(32)', 852, NULL, NULL, 32, '11
-APR-12', 'aa', ANYDATA()))
SQL_BIND_SET()
把最近几次的值全列出来
结果是跟白鳝的是不一样的,可能是版本不通造成的
- DBMS_XPLAN.DISPLAY_CURSOR v$sql bind-data
- dbms_xplan.display_cursor
- dbms_xplan.display/dbms_xplan.display_cursor/autotrace
- dbms_xplan.display_cursor 获取执行过的sql的执行计划
- dbms_xplan.display_cursor 获取执行过的sql的执行计划
- DBMS_XPLAN.DISPLAY_CURSOR&DISPLAY
- dbms_xplan.display_cursor使用
- dbms_xplan.display_cursor的用法
- DBMS_XPLAN.DISPLAY_CURSOR()看执行计划
- dbms_xplan.display_cursor 查看已执行SQL的执行计划(10g后)
- dbms_xplan之display_cursor函数的使用
- dbms_xplan之display_cursor函数的使用
- dbms_xplan之display_cursor函数的使用
- dbms_xplan.display_cursor查看低效的执行计划
- dbms_xplan之display_cursor函数的使用
- dbms_xplan之display_cursor函数的使用
- dbms_xplan.display_cursor oracle 10g查看执行计划
- 通过dbms_xplan.display_cursor识别低效的执行计划
- 性能测试的指标
- 页面跳转
- asp.net Session 保存时间设置
- mysql desc asc基本命令总结
- 小程序——字母大小写转换
- DBMS_XPLAN.DISPLAY_CURSOR v$sql bind-data
- qt参考文档
- iPhone开发应用ASIFormDataRequest POST操作架构设计
- 限制Apache日志文件大小和每天生成日志文件的方法
- 为什么一个java源文件中至多只能有一个public的class声明
- flume 几个比较有用的source、sink和decorator
- 用VS2005写的C++程序能在未安装VS2005的机器上不能直接运行解决
- Visual Studio Express for phone 不能显示控制台的解决方法
- solr中的非英文排序问题解决