當前位置:首頁 » 編程語言 » oracle查看正常執行的sql
擴展閱讀
天驥腳本夫妻傳送 2022-08-13 01:57:38
a8腳本穩定嗎 2022-08-13 01:57:32
安裝sql還是安裝mysql 2022-08-13 01:57:28

oracle查看正常執行的sql

發布時間: 2022-08-06 22:31:33

『壹』 怎樣查看ORACLE執行過的sql 語句

oracle 查詢最近執行過的 SQL語句
select sql_text,last_load_time from v$sql order by last_load_time desc;

SELECT sql_text, last_load_time FROM v$sql WHERE last_load_time IS NOT NULL and sql_text like 'select%' ORDER BY last_load_time DESC;

SELECT sql_text, last_load_time FROM v$sql WHERE last_load_time IS NOT NULL and sql_text like 'update%' ORDER BY last_load_time DESC;

SELECT sql_text, last_load_time FROM v$sql WHERE last_load_time IS NOT NULL and last_load_time like' 14-06-09%' ORDER BY last_load_time DESC;

---正在執行的

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語句

首先,你要以dba身份登陸資料庫。 第二,為某個用戶開啟sql跟蹤。那個用戶就是你要跟蹤的、正在執行sql語句的那個用戶。命令如下: execute dbms_system.set_sql_trace_in_session(sid,serial#,true) 其中參數的意義是,sid-會話id,serial#-序列號,這兩個參數可以從v$session中得到。 第三,上面的命令執行成功之後資料庫就自動對該用戶所發出的所有sql語句進行跟蹤,並把結果寫在用戶跟蹤文件里。用戶跟蹤文件存放在資料庫伺服器上,路徑請參考init.ora文件中的ump參數值。文件名為ora_sid_xxxx.trc(for unix)或者oraxxxxx.trc(for NT),其中xxxx文件系統進程編號,這個編號可以從v$process和v$session兩個表通過關聯的方式查詢得到。

『叄』 在ORACLE 中怎麼查看SQL 執行日誌

1、首先打開oracle sql developer工具,沒有此工具的可以去網路瀏覽器下載安裝即可,滑鼠點擊查看菜單。

『肆』 怎麼查看oracle剛剛執行過哪個SQL語句

最直接的辦法就是打開SQL_TRACE: alter session set SQL_TRACE=true;(要DBA許可權)
然後到伺服器上追蹤文件裡面查看這個session執行了哪些SQL,不過這是session級的.
也可以使用系統級的. 對系統性能有影響

『伍』 求教高手:在oracle中如何查看執行的sql語句

查詢Oracle正在執行的sql語句及執行該語句的用戶
SELECT b.sid oracleID, b.username 登錄Oracle用戶名, b.serial#, spid 操作系統ID, paddr, sql_text 正在執行的SQL, b.machine 計算機名FROM v$process a, v$session b, v$sqlarea cWHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value
查看正在執行sql的發起者的發放程序
SELECT OSUSER 電腦登錄身份, PROGRAM 發起請求的程序, USERNAME 登錄系統的用戶名, SCHEMANAME, B.Cpu_Time 花費cpu的時間, STATUS, B.SQL_TEXT 執行的sqlFROM V$SESSION ALEFT JOIN V$SQL B ON A.SQL_ADDRESS = B.ADDRESS AND A.SQL_HASH_VALUE = B.HASH_VALUEORDER BY b.cpu_time DESC

『陸』 怎麼查看Oracle執行過哪些SQL

在oracle上看的話,只能啟用sql trace了,盡量在資料庫用戶、操作比較少的時候做,否則會混入很多別的用戶或程序執行的語句。
簡單一點是在應用程序中寫sql語句的日誌。

『柒』 怎樣查看oracle執行的sql

Select /*a.Sid,
a.SERIAL#,
a.status,
a.USERNAME, --哪個用戶運行的SQL*/
d.SPID 進程號,
b.sql_text SQL內容,
a.MACHINE 計算機名稱,
a.MODULE 運行方式,
to_char(cast((c.sofar / totalwork * 100) as decimal(18, 1))) || '%' 執行百分比,
c.elapsed_seconds 已耗時_秒,
c.time_remaining 預計剩餘_秒,
cast(c.elapsed_seconds / 60 as decimal(18, 2)) 已耗時_分,
cast(c.time_remaining / 60 as decimal(18, 2)) 預計剩餘_分,
cast(c.elapsed_seconds / 3600 as decimal(18, 2)) 已耗時_時,
cast(c.time_remaining / 3600 as decimal(18, 2)) 預計剩餘_時
from v$session a, v$sqlarea b, v$session_longops c, v$process d
where a.sql_hash_value = b.HASH_VALUE
and a.sid = c.sid(+)
and a.SERIAL# = c.SERIAL#(+)
--and to_char(cast((c.sofar / totalwork * 100) as decimal(18, 1))) <> '100'
and a.PADDR = d.ADDR;

『捌』 oracle如何查看後台正在運行著的sql語句

用以下的sql可以查詢出當前session中正在運行的sql信息:
SELECT
S.MODULE,
SQL_TEXT,
SN.OSUSER,
SN.MACHINE,
S.EXECUTIONS
FROM
SYS.V_$SQL
S,
SYS.ALL_USERS
U,
V$SESSION
SN
WHERE
S.PARSING_USER_ID
=
U.USER_ID
AND
UPPER(U.USERNAME)
IN
('USERNAME')
AND
(UPPER(S.MODULE)
=
'APP.EXE')
AND
SN.sql_hash_value
=
S.hash_value
AND
SN.sql_address
=
S.address
ORDER
BY
S.LAST_LOAD_TIME

『玖』 如何查看oracle最近執行的sql

oracle 查詢最近執行過的 SQL語句

selectsql_text,last_load_timefromv$sqlorderbylast_load_timedesc;

SELECTsql_text,last_load_timeFROMv$sqlWHERElast_load_timeISNOTNULLandsql_textlike'select%'ORDERBYlast_load_timeDESC;

SELECTsql_text,last_load_timeFROMv$sqlWHERElast_load_timeISNOTNULLandsql_textlike'update%'ORDERBYlast_load_timeDESC;

SELECTsql_text,last_load_timeFROMv$sqlWHERElast_load_timeISNOTNULLandlast_load_timelike'14-06-09%'ORDERBYlast_load_timeDESC;