當前位置:首頁 » 編程語言 » oraclesql語句監控
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oraclesql語句監控

發布時間: 2022-02-11 16:42:08

1. 如何監控oracle資料庫運行了哪些sql命令

ORACLE的審計功能。V$SQL可以查看執行的SQL語句。

監控當前資料庫誰在運行什幺SQL語句 SELECT osuser, username, sql_text from v$session a, v$sqltext b where a.sql_address =b.address order by address, piece;
同時你可以指定某一個SID

2. 如何監控oracle客戶戶端執行的sql語句

方法為:
select * from v$sqlarea a where mole='PL/SQL Developer' order by a.FIRST_LOAD_TIME desc
Oracle SQL Developer是Oracle公司出品的一個免費的集成開發環境。是一個免費非開源的用以開發資料庫應用程序的圖形化工具,使用 SQL Developer 可以瀏覽資料庫對象、運行 SQL 語句和腳本、編輯和調試 PL/SQL 語句。另外還可以創建執行和保存報表。該工具可以連接任何 Oracle 9.2.0.1 或者以上版本的 Oracle 資料庫,支持 Windows、Linux 和 Mac OS X 系統。[

3. 如何實時跟蹤oracle的sql語句

你是要在哪跟蹤?程序裡面還是oracle裡面?
兩者都可以通過寫日誌方式記錄sql語句,記錄是否執行報錯等信息

4. 監聽oracle資料庫的執行sql語句的方法

#!/usr/bin/sh
export ORACLE_HOME=/oracle/app/proct/9.2.0
export NLS_LANG=american_america.ZHS16GBK
export PATH=$ORACLE_HOME/bin:$PATH

sqlplus -S "sasdda/asdasd@asdasd" <<EOF
set lines 180 pages 43 echo off feedback off
col sid format 99999
col event format a28
col machine format a15
col sql_text format a80
col user_name format a15
col object_name format a40
col owner format a15
col opname format a30

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
select sysdate run_date from al;

select a.sid,event,wait_time "waited",seconds_in_wait "time",b.sql_address,c.sql_text
from v$session_wait a,v$session b,v$sqlarea c
where a.sid=b.sid
and b.sql_address=c.address
and (event not like 'SQL*Net%'
and event not like 'rdbms%'
and event not like '%timer%');

SELECT /*+ rule */ lpad(' ', decode(l.xisn, 0, 3, 0)) || l.oracle_username user_name,
o.owner, o.object_name, o.object_type, s.sid, s.serial#
FROM v\$locked_object l, dba_objects o, v\$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY o.object_id, xisn DESC;

select /*+ rule */ decode(request, 0, 'holder:', 'waiter:') holder,
l.sid, l.id1, l.id2, l.lmode, l.request, l.type, l.ctime, l.block,q.sql_text
from v\$lock l, v\$session s, v\$sqlarea q
where l.sid=s.sid
and s.sql_address=q.address
and s.sql_hash_value=q.hash_value
and (l.id1, l.id2, l.type) in
(select id1, id2, type from v\$lock where request > 0)
order by id1, request;

select lp.sid,lp.elapsed_seconds "elapsed",lp.opname,lp.sql_address,s.sql_text
from v\$session_longops lp , v\$sql s
where lp.elapsed_seconds>5
and lp.sql_address=s.address
and time_remaining>0;

EXIT
EOF

我把我以前的sql抓取腳本發給你坐個參考,可以自己寫一個crontab腳本,把上面語句甩到腳本裡面,自己制定抓取語句時間就行了,如果是10g或11g的庫,你自己在改一下語句。

5. 監控web程序對Oracle資料庫操作的sql語句。

OBJECT9

6. 如何監控oracle正在執行哪些SQL語句

v$session 中的sql_id關聯v$sqlarea下的sql_id 從v$sqlarea中取sql_text就是正在執行的SQL語句

7. Oracle 資料庫如何跟蹤SQL語句

沒用,只想從後台資料庫看對這個資料庫執行的sql問題補充:unika_ly12 寫道 那你直接查詢 v$sqltext 和 v$session 好了 首先,你要以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兩個表通過關聯的方式查詢得到。當然你也可以簡單的查看一下哪個trc文件的日期最新,哪個文件就是你要的結果了。 首先,你要以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兩個表通過關聯的方式查詢得到。當然你也可以簡單的查看一下哪個trc文件的日期最新,哪個文件就是你要的結果了。

8. 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 語句)

9. Oracle里有沒有像Sql profiler一樣監視sql語句執行過程的工具

可以用spool,spool on 路徑\文件名 這樣所有操作記錄都會保存到裡面,但是類似也會保存到裡面,整理一下就可以了。

oracle 可以在 v$sqlarea (v$sqltext)查詢到已經和正在運行的sql
可以在v$open_cursor 中查到正open狀態的cursor
可以通過 v$session join to v$sql 查到正在running 的session和sql

trace工具,如果想在當前session 會話(sqlplus)當中看的話,直接執行 set autotrace on,再執行sql就可以看到執行計劃,也可以保存成trc文件,使用tkprof工具轉義後查看。