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家公司所採用。