欢迎投稿

今日深度:

监控sql执行时剩余时间,监控sql剩余时间

监控sql执行时剩余时间,监控sql剩余时间



--监控sql执行时剩余时间
你知道正在运行的sql大概需要多长时间么?
你知道正在运行的sql大概完成了百分之几么?
你知道正在运行的sql大概还要多长时间完成么?
V$SESSION_LONGOPS帮你忙。


V$SESSION_LONGOPS在<span style="font-family: Arial, Helvetica, sans-serif;">官方文档中的描述:</span>

V$SESSION_LONGOPS displays the status of various operations that run for longer than 6 seconds (in absolute time). These operations currently include many backup and recovery functions, statistics gathering, and query execution, and more operations are added for every Oracle release.

To monitor query execution progress, you must be using the cost-based optimizer and you must:

Set the TIMED_STATISTICS or SQL_TRACE parameters to true
Gather statistics for your objects with the DBMS_STATS package





--意义:
统计各个操作时间大于6s的语句

--前提条件:
基于成本的优化器cbo
TIMED_STATISTICS或SQL_TRACE为true
对象有统计信息

测试:

select * from v$version;
--Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

select * from v$parameter where name like '%timed_statistics%'
VALUE
TRUE

select last_analyzed from user_tables where table_name='LHJ_1G'
LAST_ANALYZED
2013-12-10 PM 01:19:36


--session1:
drop table t;
create table t as 
select * from lhj_1g;

--session2:
select a.username,
       a.target,
       a.sid,
       a.SERIAL#,
       a.opname,
       round(a.sofar * 100 / a.totalwork, 0) || '%' as progress, --进度条
       time_remaining second, --剩余时间:秒
       trunc(a.time_remaining / 60, 2) minute,--剩余时间:分钟
       b.sql_text,
       b.LAST_ACTIVE_TIME
  from v$session_longops a, v$sqlarea b
 where a.time_remaining <> 0
   and a.sql_address = b.address
   and a.sql_hash_value = b.hash_value
   and a.username = 'GGS' 




过一会再重复执行上面语句:



sql语句执行完成或者取消后,以上查询为空


怎监控一句SQL执行的效率?用什工具?怎监控?

用sqlServer自带的sql server profiler

可以监视sql执行的cpu占用率,执行时长等
 

oracle 中怎监控sql执行的进度?

pl/sql tool session 找到相应的session 一般应用程序是 JDBC Thin Client 然后点下面的sqltext就可以看到执行到那句话了,可以不停刷新看sql变化
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/4298.html NewsArticle 监控sql执行时剩余时间,监控sql剩余时间 --监控sql执行时剩余时间你知道正在运行的sql大概需要多长时间么?你知道正在运行的sql大概完成了百分之几么?你知道正在运行的sql大概还要...
评论暂时关闭