原 https://blog.csdn.net/sinat_27933301/article/details/80967596
2018年07月10日 19:11:44 码农云帆哥 阅读数:1106
版权声明:本文为博主原创文章,未经博主允许不得转载。原创不易,转载请注明出处。 https://blog.csdn.net/sinat_27933301/article/details/80967596
select a.sql_text SQL语句,
b.etime 执行耗时,
c.user_id 用户ID,
c.SAMPLE_TIME 执行时间,
c.INSTANCE_NUMBER 实例数,
u.username 用户名, a.sql_id SQL编号
from dba_hist_sqltext a,
(select sql_id, ELAPSED_TIME_DELTA / 1000000 as etime
from dba_hist_sqlstat
where ELAPSED_TIME_DELTA / 1000000 >= 1) b,
dba_hist_active_sess_history c,
dba_users u
where a.sql_id = b.sql_id
and u.username = 'MYDB'
and c.user_id = u.user_id
and b.sql_id = c.sql_id
and a.sql_text like '%select * from big_data_tbl%'
order by SAMPLE_TIME desc,
b.etime desc;
输出:
SQL语句 | 执行耗时 | 用户ID | 执行时间 | 实例数 | 用户名 | SQL编号 |
---|---|---|---|---|---|---|
(HUGECLOB) | 5.247487 | 94 | 2018/7/9 21:25:29.610 | 1 | MYDB | 47gdmxd9a2fjx |
https://blog.csdn.net/sinat_27933301/article/details/80967596
转 https://blog.csdn.net/xiaochangwei789/article/details/23919531/
2014年04月17日 11:12:53 坐看花开 阅读数:17895
select a.sql_text SQL语句,
b.etime 执行耗时,
c.user_id 用户ID,
c.SAMPLE_TIME 执行时间,
c.INSTANCE_NUMBER 实例数,
u.username 用户名, a.sql_id SQL编号
from dba_hist_sqltext a,
(select sql_id, ELAPSED_TIME_DELTA / 1000000 as etime
from dba_hist_sqlstat
where ELAPSED_TIME_DELTA / 1000000 >= 1) b,
dba_hist_active_sess_history c,
dba_users u
where a.sql_id = b.sql_id
and u.username = 'XXXX'
and c.user_id = u.user_id
and b.sql_id = c.sql_id
--and a.sql_text like '%IN%'
order by SAMPLE_TIME desc,
b.etime desc;
注释: ELAPSED_TIME_DELTA / 1000000 >= 1 为执行时间大于等于1秒的sql
and u.username = 'XXX' XXX为用户名,必须大写
and a.sql_text like '%IN%' 包含IN的sql
https://blog.csdn.net/xiaochangwei789/article/details/23919531/
https://www.cnblogs.com/pipi-582/p/6626836.html
随笔- 7 文章- 1 评论- 0
--1、查看耗时SQL
select *
from (select v.sql_id,
v.child_number,
v.sql_text,
v.elapsed_time,
v.cpu_time,
v.disk_reads,
rank() over(order by v.elapsed_time desc) elapsed_rank
from v$sql v) a
where elapsed_rank <= 10;
-- 2.查看CPU消耗时间最多的前10条SQL语句
select *
from (select v.sql_id,
v.child_number,
v.sql_text,
v.elapsed_time,
v.cpu_time,
v.disk_reads,
rank() over(order by v.cpu_time desc) elapsed_rank
from v$sql v) a
where elapsed_rank <= 10;
--3.查看消耗磁盘读取最多的前10条SQL语句
select *
from (select v.sql_id,
v.child_number,
v.sql_text,
v.elapsed_time,
v.cpu_time,
v.disk_reads,
rank() over(order by v.disk_reads desc) elapsed_rank
from v$sql v) a
where elapsed_rank <= 10;
标签: Oracle
好文要顶 关注我 收藏该文
小子582547523
关注 - 0
粉丝 - 0
+加关注
0
0
« 上一篇:关于Netty的疑问
» 下一篇:协议
posted @ 2017-03-27 15:08 小子582547523 阅读(2731) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
https://www.cnblogs.com/pipi-582/p/6626836.html
https://www.cnblogs.com/qingxinblog/articles/4222608.html
随笔- 46 文章- 122 评论- 18
一、在oracle 数据库中查看一个sql语句的执行时间和SP2-0027错误
进入sqlplus
SQL> set timing on
SQL> select count(*) from comm_human_role;
COUNT(*)
----------
866
Elapsed: 00:00:00.05
以上数字输出分别是:Hours:Minutes:Seconds.Milliseconds
即用了0.05秒的时间执行,相当于50毫秒。
时间如果是这样的表示:00: 03: 235.78
总共用的时间为235.78秒, 不到4分钟,所以显示的是3分钟(235.78秒大约为3分钟55.78秒)
#设置屏幕行宽度
SQL>set linesize 190
#设置sqlplus打印执行计划和统计信息
SQL>set autotrace on
#设置sqlplus打印执行时间
SQL>set timing on
如果在sqlplus中出现下面的错误:
SP2-0027: Input is too long (> 2499 characters) - line ignored
表示sql一行的语句已经超过了2499个字符。
解决:
在一段sql中加“回车”,
保证每行不超2499个字符,重新执行sql语句就好了。
二、其他
1、如何在sqlplus中查看oracle数据库sql语句执行计划,执行时间和统计信息
#设置屏幕行宽度
SQL>set linesize 190
#设置sqlplus打印执行计划和统计信息
SQL>set autotrace on
#设置sqlplus打印执行时间
SQL>set timing on
2、通过执行计划可以看到SQL的详细执行过程:
EXPLAIN PLAN FOR
SELECT * FROM table;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
好文要顶 关注我 收藏该文
晴心
关注 - 24
粉丝 - 28
+加关注
0
0
« 上一篇:ORACLE数据库SQL语句的执行过程
» 下一篇:JDBC ResultSet分析
posted @ 2015-01-13 21:51 晴心 阅读(876) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
https://www.cnblogs.com/qingxinblog/articles/4222608.html
https://zhidao.baidu.com/question/430187136143819252.html
分享
举报浏览 642 次
1个回答
#今日科普# 又到公司年会,什么小游戏比较给力?
通过Oracle执行计划可以看到SQL的执行时间。
EXPLAIN PLAN FOR
SELECT * FROM table;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
SQL>set timing on --显示执行时间
SQL>set autorace on ?C显示执行计划
SQL>set autorace on ?C显示执行计划
SQL>set autotrace traceonly ?C只显示执行计划即不显示查询出来的数据
设置完毕后执行SQL语句就会显示执行时间。
本回答由提问者推荐
3 2
评论
分享
举报
https://zhidao.baidu.com/question/430187136143819252.html
https://zhidao.baidu.com/question/286266059.html
https://zhidao.baidu.com/question/286266059.html
海量数据查询1.通过plsql可以获取吗,怎么获取?2.在java程序中获取,执行查询rs=s.executeQuery(sql);这条语句很快就执行过去了,为什么?3.还有什么方式可以方便、准确的获取执行时...展开
分享
举报浏览 10559 次
7个回答
#今日科普# 中国国民财富跃居全球第二,什么是国民财富?
通过Oracle执行计划可以看到SQL的执行时间。
EXPLAIN PLAN FOR
SELECT * FROM table;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
SQL>set timing on --显示执行时间
SQL>set autorace on ?C显示执行计划
SQL>set autorace on ?C显示执行计划
SQL>set autotrace traceonly ?C只显示执行计划即不显示查询出来的数据
设置完毕后执行SQL语句就会显示执行时间。
3 2
评论
分享
举报
renfengjun1986
知道合伙人软件行家 2017-07-27
rs = s.executeQuery(sql);
到这一句,根本没有fetch数据。
整个时间应该是,到循环取完结果集为止。
抢首赞
评论
分享
举报
plsql方法 在执行你的脚本前后都运行一遍 select sysdate from dual
再减一下好了
追问
数百万级的数据啊
追答
那你考虑的不应当是时间 而是存储了 另外,我们做的都是6千万的数据,查一下也就是10秒级别,关键是索引要做好
更多追问
本回答被提问者采纳
4 5
1评论
分享
举报
young_tower
来自电脑网络类芝麻团 2011-06-30
在SQL *PLUS中利用set timing on 可以获取SQL语句的执行时间
例如:
sqlplus /nolog
conn / as sysdba
set timing on
再执行SQL语句即可看到语句的执行时间。
抢首赞
1评论
分享
举报
F5
设置里面可以设置分析sql要显示的东西 有包含时间的 百度下
抢首赞
评论
分享
举报
12下一页>
收起 其他4条回答
https://zhidao.baidu.com/question/286266059.html