易截截图软件、单文件、免安装、纯绿色、仅160KB

测量sql 解析耗费的时间比例

清空共享池,关闭,重启数据库
SQL> shutdown immediate;
SQL> startup;
开启 时间统计
SQL> set timi on
SQL> select count(*) from dba_objects;
  COUNT(*)
----------
     11308
Elapsed: 00:00:00.19
SQL> /
  COUNT(*)
----------
     11308
Elapsed: 00:00:00.03
SQL> /
  COUNT(*)
----------
     11308
Elapsed: 00:00:00.03
SQL> select 16/19 from dual;
     16/19
----------
.842105263
可以看到 解析时间 所占用了绝大部分时间 ,单凭这个实验 不能说SQL解析会占用84%的时间,不过可以肯定的是 SQL解析会占用SQL语句运行的很大部分时间。
下面来测试一下 使用绑定变量 和不使用绑定变量所SQL解析所带来的性能问题
执行两个脚本 第一个 脚本不使用绑定变量
bind1.sql脚本内容如下:
declare
type cur is ref cursor;
cur1 cur;
name varchar2(1000);
begin
for i in 1..1000 loop
open cur1 for 'select object_name from dba_objects where object_id=' || i;
fetch cur1 into name;
close cur1;
end loop;
end ;
/
bind2.sql 脚本内容:
declare
type cur is ref cursor;
cur1 cur;
name varchar2(1000);
begin
for i in 1..1000 loop
open cur1 for 'select object_name from dba_objects where object_id=:x'using i;
fetch cur1 into name;
close cur1;
end loop;
end ;
/
开始测试
SQL> alter system flush shared_pool;
System altered.
SQL> set timi on
SQL> @bind1
PL/SQL procedure successfully completed.
Elapsed: 00:00:07.51
SQL>select sql_text from v$sqlarea where sql_text like '%dba_objects%';
SQL_TEXT
----------------------------------------------------------------------------------------------------
select object_name from dba_objects where object_id=506
select object_name from dba_objects where object_id=716
select object_name from dba_objects where object_id=129
....................
可以看到 该语句解析了1000次
SQL> alter system flush shared_pool;
System altered.
SQL> @bind2
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.64


相关文档:

sql数据库置疑解决办法

注'svw'为出问题的数据库,此方式对sql7.0以上版本有效,其它低版本为测试
sp_configure  'allow',1 
go
reconfigure  with  override 
go
update  sysdatabases  set  status=32768  where  name='svw' 
go
dbcc  rebuild_log('svw','D:\mssql7\data ......

SQL SERVER 分页存储过程

存储过程代码:
 --drop procedure p_page
--go
create procedure p_page
(
@Tables varchar(1000), --表名如testtable
@PrimaryKey varchar(100),--表的主键,必须唯一性
@Sort varchar(200) = NULL,--排序字段如f_Name asc或f_name desc(注意只能有一个排序字段)
@CurrentPage int = 1,--当 ......

SQL Server 2005中应关注的30个知识点

<!--[if !supportLists]-->一、<!--[endif]-->SQL Server 2005数据库管理的10个最重要特点
<!--[if !supportLists]-->1.         <!--[endif]-->数据库镜像
通过新数据库镜像方法,将记录档案传送性能进行延伸。您将可以使用数据库镜像,通过将自动失效 ......

SQL Access Advisor

Oracle 数据库 10g 提供了大量帮助程序(或“顾问程序”),可帮助您决定最佳操作流程。其中一个示例是 SQL Tuning Advisor,它可以提供有关查询调整以及在流程中延长整个优化过程的建议。
但请考虑以下调整案例:假设一个索引确实有助于某个查询,但该查询只执行一次。这样,即使该查询可以得益于此索引,但创 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号