如何得到给定SQL的 SQL_ID
发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,本文参考盖国强老师的博文进行测试。作者:eygle |English 【转载时请标明出处和作者信息】|【恩墨学院 OCM培训传DBA成功之道】 链接:http://www.eygle.com/arch
千家信息网最后更新 2024年11月12日如何得到给定SQL的 SQL_ID本文参考盖国强老师的博文进行测试。
作者:eygle |English 【转载时请标明出处和作者信息】|【恩墨学院 OCM培训传DBA成功之道】 链接:http://www.eygle.com/archives/2017/08/dbms_sqltune_util0_sqltext_to_sqlid.html
-------------------------------------------------------------------------------------------------------------------
作者:eygle |English 【转载时请标明出处和作者信息】|【恩墨学院 OCM培训传DBA成功之道】 链接:http://www.eygle.com/archives/2017/08/dbms_sqltune_util0_sqltext_to_sqlid.html
-------------------------------------------------------------------------------------------------------------------
- 在 Oracle 数据库中,如何得到给定SQL的 SQL_ID ? 这是曾经被广泛讨论的一个问题。
- 现在,在Oracle 11g中,Oracle 给出了一个系统包,通过 dbms_sqltune_util0 可以简便的计算出给定SQL的SQL_ID。
- SQL> desc dbms_sqltune_util0
- FUNCTION EXTRACT_BIND RETURNS SQL_BIND
- Argument Name Type In/Out Default?
- ------------------------------ ----------------------- ------ --------
- BIND_DATA RAW IN
- BIND_POS BINARY_INTEGER IN
- FUNCTION EXTRACT_BINDS RETURNS SQL_BIND_SET
- Argument Name Type In/Out Default?
- ------------------------------ ----------------------- ------ --------
- BIND_DATA RAW IN
- FUNCTION GET_BINDS_COUNT RETURNS BINARY_INTEGER
- Argument Name Type In/Out Default?
- ------------------------------ ----------------------- ------ --------
- BIND_DATA RAW IN
- FUNCTION IS_BIND_MASKED RETURNS NUMBER
- Argument Name Type In/Out Default?
- ------------------------------ ----------------------- ------ --------
- BIND_POS BINARY_INTEGER IN
- MASKED_BINDS_FLAG RAW IN DEFAULT
- FUNCTION SQLTEXT_TO_SIGNATURE RETURNS NUMBER
- Argument Name Type In/Out Default?
- ------------------------------ ----------------------- ------ --------
- SQL_TEXT CLOB IN
- FORCE_MATCH BINARY_INTEGER IN DEFAULT
- FUNCTION SQLTEXT_TO_SQLID RETURNS VARCHAR2
- Argument Name Type In/Out Default?
- ------------------------------ ----------------------- ------ --------
- SQL_TEXT CLOB IN
- FUNCTION VALIDATE_SQLID RETURNS BINARY_INTEGER
- Argument Name Type In/Out Default?
- ------------------------------ ----------------------- ------ --------
- SQL_ID VARCHAR2 IN
- 函数 sqltext_to_sqlid 用于实现这个功能,以下测试使用了一个简单的SQL查询。
- 注意Oracle在SQL最后加入一个 chr(0) 的不可见字符,我们需要补齐:
- SYS@ r7>SELECT DBMS_SQLTUNE_UTIL0.SQLTEXT_TO_SQLID('SELECT SYSDATE FROM DUAL'||CHR(0)) SQL_ID FROM DUAL;
- SQL_ID
- ----------------------------------------------------------------------------------------------------------------------------------------------------------------
- c749bc43qqfz3
- 接下来看一下执行这个查询,数据库中自动生成的SQL_ID,与通过函数转换生成的完全一致:
- SYS@ r7>SELECT SYSDATE FROM DUAL;
- SYSDATE
- ---------
- 21-AUG-17
- SYS@ r7>SELECT SQL_ID FROM V$SQL WHERE SQL_TEXT='SELECT SYSDATE FROM DUAL';
- SQL_ID
- -------------
- c749bc43qqfz3
- 查看执行计划
- SYS@ r7>select * from table(dbms_xplan.display_cursor('c749bc43qqfz3'));
- PLAN_TABLE_OUTPUT
- ----------------------------------------------------------------------------------------------------------------------------------------------------------------
- SQL_ID c749bc43qqfz3, child number 0
- -------------------------------------
- SELECT SYSDATE FROM DUAL
- Plan hash value: 1388734953
- -----------------------------------------------------------------
- | Id | Operation | Name | Rows | Cost (%CPU)| Time |
- -----------------------------------------------------------------
- | 0 | SELECT STATEMENT | | | 2 (100)| |
- | 1 | FAST DUAL | | 1 | 2 (0)| 00:00:01 |
- -----------------------------------------------------------------
- 13 rows selected.
作者
函数
数据
数据库
查询
测试
生成
简便
一致
成功
信息
出处
功能
字符
学院
老师
自动生成
这是
链接
问题
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sql网络数据库
commite数据库
关于网络安全总结报告
软件开发需求单怎么写
数据库枚举值
怎么关闭服务器安全防护
网络安全支撑证书
中标麒麟串口服务器
获得三级数据库技术的条件
网络安全证书过期如何恢复
央视网网络安全有多重要
蓝牙无线耳机软件开发
网络安全公安前言
常规网络安全管理
自己买个服务器上网违法吗
奉贤区咨询软件开发常见问题
扫描的答题卷怎么录入数据库
商丘市网络安全课堂怎么弄
普洱哪有软件开发定制
绍兴通信网络技术报价
腾讯服务器能恢复微信聊天记录吗
腾讯直播 软件开发
网络安全法宣传视频观后感
沈阳尖峰软件开发
江苏华讯网络技术有限公司
ps4合金装备服务器黑屏
腾讯最牛网络安全员
莱芜管理库存软件开发
网络安全入侵事件体会
jar找不到连接数据库的驱动
- 上一篇
Mysql:The server quit without updating PID file (/eipdb1/mysql/data/EIPDB1.pid).
环境: mysql主从,一台主机,一台备机。都是虚拟机。 备机仅仅用来备份,不用于业务。 关闭主机mysql服务,关闭主机系统,加内存。、 备机不变。开启主机。 内存加好。 EIPDB1:~ # fr
- 下一篇
profile的resource limits和资源计划resource_manager_plan的limit
profile使用参数RESOURCE_LIMITRESOURCE_LIMIT determines whether resource limits are enforced in database