Oracle非绑定变量SQL语句查询

该博客介绍了如何通过SQL查询找出数据库中未使用绑定变量的SQL语句。首先,它展示了如何获取哈希值及变体数量大于30的SQL语句,然后根据这些哈希值进一步查询具体的SQL文本。这个过程对于数据库性能优化和查询效率提升具有重要意义。
两个步骤,一个步骤一个脚本
一、查询出未只用绑定变量的SQL语句的哈希值,以及变体个数
select to_char(FORCE_MATCHING_SIGNATURE) as FORCE_MATCHING_SIGNATURE,count(1) "COUNTS"
from v$sql
where FORCE_MATCHING_SIGNATURE>0 and FORCE_MATCHING_SIGNATURE <> EXACT_MATCHING_SIGNATURE
group by FORCE_MATCHING_SIGNATURE
having count(1) > 30
order by 2 desc
二、根据第一步查询出的哈希值,进行具体SQL语句的查询
with nobind_sql as (select to_char(FORCE_MATCHING_SIGNATURE) as FORCE_MATCHING_SIGNATURE,count(1) "COUNTS"
from v$sql
where FORCE_MATCHING_SIGNATURE>0 and FORCE_MATCHING_SIGNATURE <> EXACT_MATCHING_SIGNATURE
group by FORCE_MATCHING_SIGNATURE
having count(1) > 5
order by 2 desc)
select sql_text,ns.counts 
from v$sql vs,nobind_sql ns 
where vs.FORCE_MATCHING_SIGNATURE=&num and  vs.FORCE_MATCHING_SIGNATURE=ns.FORCE_MATCHING_SIGNATURE and rownum=1; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值