sqllog日志可以详细记录很多sql执行信息,多会话可能会交叉输出,内部的一些操作也会显示(比如断开会话、获取blob、purg2_page free等),但是对存储过程的记录并不是很直观。
sql
--示例代码
drop table t1;
create table t1 (id int,nm varchar(20));
create or replace procedure p1
as
begin
insert into t1 values(1,'a');
commit;
dbms_lock.sleep(2);
insert into t1 values(2,'b');
commit;
dbms_lock.sleep(2);
update t1 set nm='c' where id=2;
commit;
dbms_lock.sleep(3);
end;
/
执行一下
DMSQL> p1;
查看日志内容

只有一些事务提交信息,没有具体sleep或insert语句内容,整个p1过程执行耗时7秒多。
要想看到详细的内容,还得靠 V$DMSQL_EXEC_TIME(默认只有最近1万行)


修改DMSQL_ET_CNT需要重启数据库。