那位用过DBMS_PROFILE这个包

[复制链接]
查看11 | 回复9 | 2007-9-25 14:45:26 | 显示全部楼层 |阅读模式
那位用过DBMS_PROFILE这个包,可以分析plsql脚本每一语句的执行效率,感觉还是不错啊,以前没有用过
回复

使用道具 举报

千问 | 2007-9-25 14:45:26 | 显示全部楼层
看执行计划不一样吗
回复

使用道具 举报

千问 | 2007-9-25 14:45:26 | 显示全部楼层
DBMS_PROFILER
回复

使用道具 举报

千问 | 2007-9-25 14:45:26 | 显示全部楼层
看TOM的书里讲过,测试过,呵呵,是不错
回复

使用道具 举报

千问 | 2007-9-25 14:45:26 | 显示全部楼层
原帖由 suniori 于 2008-9-2 16:35 发表
看执行计划不一样吗

不一样,这个是用来看每段sql的运行时间的
回复

使用道具 举报

千问 | 2007-9-25 14:45:26 | 显示全部楼层
原帖由 zergduan 于 2008-9-2 16:36 发表
不一样,这个是用来看每段sql的运行时间的

难道会把整个存储过程执行一遍?
回复

使用道具 举报

千问 | 2007-9-25 14:45:26 | 显示全部楼层
原帖由 suniori 于 2008-9-2 16:38 发表
难道会把整个存储过程执行一遍?

是需要执行一遍
回复

使用道具 举报

千问 | 2007-9-25 14:45:26 | 显示全部楼层
细化到每一条记录吗?那不是会产生很多日志记录,几千万条等等
回复

使用道具 举报

千问 | 2007-9-25 14:45:26 | 显示全部楼层
原帖由 suniori 于 2008-9-2 16:46 发表
细化到每一条记录吗?那不是会产生很多日志记录,几千万条等等

是每条SQL的执行时间,记到表里,你的过程能有几千万条代码吗?
回复

使用道具 举报

千问 | 2007-9-25 14:45:26 | 显示全部楼层
下面我用DBMS_PROFILE测试步骤..............
--登录SQL PLUS,以sys身份登录
连接到:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> @?/rdbms/admin/profload
程序包已创建。
授权成功。
同义词已创建。
库已创建。
程序包体已创建。
Testing for correct installation
SYS.DBMS_PROFILER successfully loaded.
PL/SQL 过程已成功完成。
--下面我连接到我所要测试存储过程的用户sis
SQL> conn [email=sis/sis@sis]sis/sis@sis[/email]
SQL> @?/rdbms/admin/proftab
drop table plsql_profiler_data cascade constraints
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
drop table plsql_profiler_units cascade constraints
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
drop table plsql_profiler_runs cascade constraints
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
drop sequence plsql_profiler_runnumber

*
第 1 行出现错误:
ORA-02289: 序列不存在
表已创建。
注释已创建。
表已创建。
注释已创建。
表已创建。
注释已创建。
序列已创建。
SQL> @?/plsql/demo/profrep
视图已创建。
视图已创建。
视图已创建。
视图已创建。
程序包已创建。
没有错误。
程序包体已创建。
没有错误。
SQL> delete from plsql_profiler_data;
6 rows deleted.
SQL> delete from plsql_profiler_units;
2 rows deleted.
SQL> delete from plsql_profiler_runs;
2 rows deleted.
SQL> commit;
Commit complete.
--下面是我测试sis用户下的Fun_Get_Str_Char2存储过程
SQL> declare
2l_result binary_integer;
3begin
4l_result := DBMS_PROFILER.start_profiler(run_comment => 'Fun_Get_Str_Char2:'||sysdate);
5Fun_Get_Str_Char2('A,C,EE,AA,D',',',3);
6l_result := DBMS_PROFILER.stop_profiler;
7end;
8/
PL/SQL 过程已成功完成。
--执行完成后,通过运行profsum.sql来显示详细的执行结果
SQL> @?/plsql/demo/profsum
[ 本帖最后由 grwdpy 于 2008-9-2 16:49 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行