oraclesql语句的执行时间
㈠ oracle查看sql还有多长时间执行完成
oracle的执行计划窗口可以查看sql的执行耗费,也可以通过查看当前会话的sql语句执行情况,来预估完成时间
㈡ 有什么办法可以让Oracle的sql语句执行时间短点
begin
dbms_lock.sleep(5);
dbms_output.put_line('This is 5 sec.. after');
end;
一个简单的dbms_lock.sleep()过程就可以了,关于dbms_lock包的其它过程或者函数可以
desc dbms_lock
看下,有兴趣的深入研究之。
哈哈,我看错了,我看成是断点了。
那这个问题问的有点笼统,优化sql语句涉及到方方面面,不可能说有什么办法;这要根据sql语句的具体内容来看了。
但是尽量使用oracle sql的bind功能,让sql尽量cache在library cache中,这样oracle就不用重复的解析sql语句了,如果cache太小,可以修改shared pool的大小。
然后是尽量使用不同的sql写法来达到相同的目的,然后看不同写法的相应sql执行计划和系统开销,从而筛选系统开销低的sql语句。
另外还有statstak,tkprof,dynamic view,dbms_xplan等等辅助工具的使用,使sql优化形成了非常系统的一门学科。
㈢ 在oracle中怎么查看在某一段时间内执行的sql语句所用的时间
用to_char函数即可。
如emp表中数据如下:
要查询hiredate的日期为1981年1月1日到1981年5月1日之间的数据,可用如下语句:
1
select
*
from
emp
where
to_char(hiredate,'yyyy-mm-dd')
between
'1981-01-01'
and
'1981-05-01';
查询结果:
㈣ 有没有什么工具能够监控程序在oracle中执行的SQL语句和语句执行时间
---正在执行的
select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT
from v$session a, v$sqlarea b
where a.sql_address = b.address
---执行过的
select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT
from v$sqlarea b
where b.FIRST_LOAD_TIME between '2009-10-15/09:24:47' and
'2009-10-15/09:24:47' order by b.FIRST_LOAD_TIME
(此方法好处可以查看某一时间段执行过的sql,并且 SQL_FULLTEXT 包含了完整的 sql 语句)
其他
select OSUSER,PROGRAM,USERNAME,SCHEMANAME,B.Cpu_Time,STATUS,B.SQL_TEXT
from V$SESSION A LEFT JOIN V$SQL B ON A.SQL_ADDRESS=B.ADDRESS AND A.SQL_HASH_VALUE=B.HASH_VALUE order by b.cpu_time desc
select address, sql_text, piece
from v$session, v$sqltext
where address = sql_address
-- and machine = < you machine name >
order by address, piece
查找前十条性能差的sql.
SELECT * FROM (select PARSING_USER_ID,EXECUTIONS,SORTS,
COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea
order BY disk_reads DESC )where ROWNUM<10 ;
查看占io较大的正在运行的session
SELECT se.sid,se.serial#,pr.SPID,se.username,se.status,
se.terminal,se.program,se.MODULE,、se.sql_address,st.event,st.
p1text,si.physical_reads,
si.block_changes FROM v$session se,v$session_wait st,
v$sess_io si,v$process pr WHERE st.sid=se.sid AND st.
sid=si.sid AND se.PADDR=pr.ADDR AND se.sid>6 AND st.
wait_time=0 AND st.event NOT LIKE '%SQL%' ORDER BY physical_reads DESC
㈤ Oracle 怎么预先知道SQL语句的执行时间
declare @sttime datetime
set @sttime=getdate()
print @sttime
Select * from case1219 -- sql语句放
SELECT RTRIM(CAST(DATEDIFF(MS, @sttime, GETDATE()) AS CHAR(10))) AS 'TimeTaken'!
㈥ oracle 怎么查看过去的一条sql执行时间
用sqlplus连接数据库,在执行sql语句之前写这样一句:
settimingon
setauotracetraceonly
Elapsed就是sql的执行时间
㈦ ORACLE想通过取得几次执行查询语句的执行时间计算得到平均值,应该如何写SQL语句呢
貌似没有好办法啊
但有个笨方法
select sysdate from al;
查询语句1;
查询语句2;
查询语句3;
select sysdate from al;
开始执行查询语句前的sysdate和执行后的sysdate求差,得到的秒数除以语句条数
㈧ 怎么查看执行sql语句时间 oracle
第三方工具pl/sql的最下一行是执行时间
如果是sqlplus那么就先set timing on,
然后执行语句,执行完毕后就能看到执行时间。
㈨ oracle存储过程sql执行超时
oracle存储过程sql执行超时要优化系统。优化系统步骤:
1、参数默认是30秒,执行的sql超过30秒就会报超时错误。
2、优化sql让执行更快。
3、修改这个参数,在调用执行SQL语句之前。Oracle公司(甲骨文)是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州Redwoodshore,面向全球开放oracle认证,Oracle开发的关系数据库产品因性能卓越而闻名,Oracle数据库产品为财富排行榜上的前1000家公司所采用。