dbms_application_info.set_session_longops过程的使用和v$session_longops
来源:互联网 发布:js怎么给input赋值 编辑:程序博客网 时间:2024/06/04 17:47
对dbms_application_info.set_session_longops过程的使用进行了测试,
测试代码如下:
DECLARE
rindex BINARY_INTEGER;
slno BINARY_INTEGER;
sofar NUMBER(6,2);
target BINARY_INTEGER;
totwork NUMBER := 100;
BEGIN
rindex := dbms_application_info.set_session_longops_nohint;
SELECT object_id
INTO target
FROM all_objects
WHERE object_name = 'PP_TEST' AND owner='TEST_USER';
FOR i IN 1 .. totwork
LOOP
sofar := i;
dbms_application_info.set_session_longops(rindex, slno,
'ZHP', target, 0, sofar, 100, 'Pct Complete');
INSERT INTO pp_test(c1) VALUES (i);
dbms_lock.sleep(8);
END LOOP;
COMMIT;
END;
执行过程中和执行执行之后,查询v$session_longops都没有任何记录,根据oracle
官方文档:http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2092.htm#REFRN30227
的说明,设置TIMED_STATISTICS 为TRUE,并分析了表PP_TEST,查询v$session_longops
表还是没有记录,后来用alter system set sql_trace=true;设置sql_trace为true,查
询v$session_longops表还是没有记录,最后发现是因为STATISTICS_LEVEL设置的问题,
STATISTICS_LEVEL设置为TYPICAL或者ALL,v$session_longops才记录长时间执行的记录。
例如:
SQL> alter system set STATISTICS_LEVEL = TYPICAL;
System altered
Executed in 0.063 seconds
SQL> show parameter STATISTICS_LEVEL
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
statistics_level string TYPICAL
SQL> insert into dba_tmp select * from dba_tmp;
15059200 rows inserted
Executed in 296.235 seconds
SQL>
SQL> SELECT start_time, sofar, totalwork, time_remaining, elapsed_seconds
2 FROM v$session_longops WHERE sid=(SELECT sid FROM v$mystat WHERE ROWNUM=1);
START_TIME SOFAR TOTALWORK TIME_REMAINING ELAPSED_SECONDS
----------- ---------- ---------- -------------- ---------------
2009/1/5 13 441452 441452 0 297
Executed in 0.125 seconds
SQL>
所以总结如下:
V$SESSION_LONGOPS 视图显示运行超过6秒的操作的状态。包括备份,恢复,
统计信息收集,查询等等。
要监控查询执行进展状况,你必须使用cost-based优化方式,并且:
1.设置TIMED_STATISTICS或SQL_TRACE参数值为true。
2.通过ANALYZE或DBMS_STATS数据包收集对象统计信息。
3.STATISTICS_LEVEL参数设置为TYPICAL或ALL
- dbms_application_info.set_session_longops过程的使用和v$session_longops
- dbms_application_info.set_session_longops过程的使用和v$session_longops
- DBMS_APPLICATION_INFO包的使用
- DBMS_APPLICATION_INFO包的使用
- v$session_longops查等待次数和等待时间集中的对象
- 对v$session_longops 的理解
- V$SESSION_LONGOPS
- V$SESSION_LONGOPS
- V$SESSION_LONGOPS
- V$SESSION_LONGOPS
- v$session_longops
- V$SESSION_LONGOPS
- v$session_longops
- v$session_longops
- V$SESSION_LONGOPS
- Oralce动态视图v$session_longops使用
- v$session_longops 查看进程的进度
- v$session_longops视图
- 【HDU】4915 Parenthese sequence 贪心
- 【线段树】 HDOJ 4031 Attack
- 黑马程序员_字符编码
- wpf 音乐盒制作二(歌词滚动)
- xcode模拟器调试无法显示调用栈的解决办法
- dbms_application_info.set_session_longops过程的使用和v$session_longops
- 解决android软键盘将其他view挤上去的问题
- Redis入门
- QML入门教程(3)
- dinic 模板
- 【web系列】纠正jQuery获取radio选中值的写法
- POJ 1961 Period
- 在“云基础设施即服务的魔力象限”报告中,AWS 连续三年被评为领导者
- 【Android UI设计与开发】:顶部标题栏(一)ActionBar详细概述和简单示例