如何找出应用程序未使用绑定变量
来源:互联网 发布:这是一个网络的时代 编辑:程序博客网 时间:2024/04/26 01:46
SQL开发的过程中,如果不使用绑定变量,会对数据库性能造成非常严重的影响请看如下示例代码:
begin
for i in 1..1000 loop
execute immediate 'insert into test values('||i||')';
end loop;
commit;
end;
/
该过程执行1000次,会解析1000次,我们知道每次SQL解析大概会占用一条SQL语句执行时间的70%左右,而且过多的硬解析会在SHARED POOL 中产生很多碎片,导致ORA-04031错误,那么如何判断应用程序中是否使用了绑定变量呢?我们可以通过V$SQLAREA视图来查看应用程序中是否使用了绑定变量,下面简单举个例子:
SQL> create table test(id number );
Table created.
SQL> begin
for i in 1..1000 loop
execute immediate 'insert into test values('||i||')';
end loop;
commit;
end;
/
PL/SQL procedure successfully completed.
SQL> select substr(sql_text,1,20), count(*)
from v$sqlarea
group by substr(sql_text,1,20) having count(*) > 50;
SUBSTR(SQL_TEXT,1,20) COUNT(*)
----------------------------- ---------------
insert into test val 1000
可以看到insert into test.......这条语句竟然在shared pool里面解析了1000次,通过如下查询
select sql_text from v$sqlarea where sql_text like 'insert into test %';找出具体的sql代码,然后与开发人员商量,更改SQL代码。
上面只是一个简单的实例,具体要怎么查看你的应用是否使用了绑定变量,只需要简单修改
select substr(sql_text,1,20), count(*)
from v$sqlarea
group by substr(sql_text,1,20) having count(*) > 50;
可以将substr(sql_text,1,20) 改为substr(sql_text,1,30)等等,可以 having count(*) > 10,20,100等等。
- 如何找出应用程序未使用绑定变量
- 如何找出应用程序未使用绑定变量,关于绑定变量的再次认识
- 如何监控并找出系统中存在的大量的未使用绑定变量的SQL
- 监控未使用绑定变量的语句
- 查询未使用绑定变量语句
- 未使用绑定变量检查【摘抄ASKTOM】
- 找出C#代码中未使用的变量和函数
- 使用Function查找未使用绑定变量的SQL
- 如何找出长期未被使用的索引
- 如何处理未使用的变量
- 查看未绑定变量SQL
- 查询未绑定变量的sql
- 如何查找硬解析问题,找到未使用绑定变量的SQL---脚本
- 拼装组合sql时如何使用绑定变量
- 找出未被使用的索引
- oracle使用绑定变量
- 使用绑定变量
- 使用绑定变量
- Control 的 Invoke和BeginInvoke && Delegate 的 Invoke和BeginInvoke
- Delphi 设计模式:《HeadFirst设计模式》Delphi2007代码---单例模式之ChocolateBoiler
- 有关const的一些事
- Symbian 中文乱码
- VPCS for Dynamips 9 PCs support
- 如何找出应用程序未使用绑定变量
- SQL Server 2008与Oracle Database 11g相比较
- 百度一道笔试题目的答案
- 然,所以然;完,完美.WEB编程
- C#关键字详释
- 截取中文字符串,做成标签。
- Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂
- 运用Inventor内置的导入文件功能
- wince6.0 BSP包中.pbcxml文件的作用如何呢?----pbcxml移植篇