當前位置:首頁 » 操作系統 » oracle資料庫查看進程

oracle資料庫查看進程

發布時間: 2022-02-14 04:19:58

㈠ 怎樣查看oracle資料庫中過去某個時間點資源佔用多的進程

生成當時時段的awr報告看一下

㈡ oracle crs進程怎麼看

使用sqlplus登錄到sysdba,可以用數據字典查詢資料庫狀態。正常開啟的話狀態應該是 OPEN select status from v$instance; 如果是RAC集群,可以使用CRS命令查看整個集群的實例運行狀態: su -oracle crs_stat -t

㈢ oracle資料庫怎麼查看進程數

oracle進程數查詢

1.cmd

2.sqlplus /nolog

3.connect sys/test@test as sysdba

SQL> show parameter process;

NAME TYPE VALUE

------------------------------------ ----------- -----

aq_tm_processes integer 0

db_writer_processes integer 1

gcs_server_processes integer 0

job_queue_processes integer 10

log_archive_max_processes integer 2

processes integer 1000

再查進程數

SQL> select count(*) from v$session;

COUNT(*)

----------

224

㈣ 如何查詢佔CPU高的oracle進程

oracle佔用cpu過高怎麼處理,本文將介紹有關oracle進程CPU佔用率過高的問題,需要了解跟多的朋友可以參考下
1:首先使用TOP命令傳到佔用CPU高的SPID號
PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND
3575 oracle 1 12 0 0K 0K run 748.6H 24.98% oracle
3571 oracle 1 22 0 0K 0K sleep 706.2H 22.84% oracle

2:使用DBA賬戶登錄資料庫,使用以下SQL語句查詢:
SELECT * FROM V$PROCESS WHERE spid=3575;查詢到SQL相關信息
3:根據以上查詢到的信息使用以下SQL查詢:
SELECT sid, program FROM V$SESSION S WHERE EXISTS(SELECT 1 FROM V$PROCESS WHERE spid=3575 AND ADDR = S.PADDR);
可以查詢到具體那個客戶端查詢一直在不斷佔用ORACLE資源!
最後對這個查詢進行處理!

4.根據SID查得SQLITPUB

復制代碼代碼如下:

select sql_textITPUB
from v$sqltext
where a.hashvalue=(select sql_hash_value
from v$session b
where b.SID='&sid')
0order by piece ASC;

根據lockwait欄位可以查詢當前正在等待的鎖的相關信息:

㈤ 如何查看和清除oracle無用的連接進程 ...

以下的SQL語句列出當前資料庫建立的會話情況:select sid,serial#,username,program,machine,statusfrom v$session;輸出結果為:SID SERIAL# USERNAME PROGRAM MACHINE STATUS---- ------- ---------- ----------- --------------- --------1 1 ORACLE.EXE WORK3 ACTIVE2 1 ORACLE.EXE WORK3 ACTIVE3 1 ORACLE.EXE WORK3 ACTIVE4 1 ORACLE.EXE WORK3 ACTIVE5 3 ORACLE.EXE WORK3 ACTIVE6 1 ORACLE.EXE WORK3 ACTIVE7 1 ORACLE.EXE WORK3 ACTIVE8 27 SYS SQLPLUS.EXE WORKGROUPWORK3 ACTIVE11 5 DBSNMP dbsnmp.exe WORKGROUPWORK3 INACTIVE其中,SID 會話(session)的ID號;SERIAL# 會話的序列號,和SID一起用來唯一標識一個會話;USERNAME 建立該會話的用戶名;PROGRAM 這個會話是用什麼工具連接到資料庫的;STATUS 當前這個會話的狀態,ACTIVE表示會話正在執行某些任務,INACTIVE表示當前會話沒有執行任何操作;如果DBA要手工斷開某個會話,則執行:alter system kill session \'SID,SERIAL#\';注意,上例中SID為1到7(USERNAME列為空)的會話,是Oracle的後台進程,不要對這些會話進行任何操作。

㈥ 求查詢oracle資料庫dblink進程號方法,舉例說明!

1.通過SQL語句找到相應的SQL ID。
select sql_id,sql_text from v$sql where .....
2.通過SQL ID找到相應的物理進程地址
select sql_id, paddr from v$session where .....
3.通過相應的物理進程地址找到相應系統進程
select addr,spid from v$process where .....
或者通過dba_2pc_pending和dba_2pc_neighbors也可以查

㈦ 如何查找oracle進程

Oracle資料庫查看一個進程是如何執行相關的實際SQL語句

SELECT b.sql_text, sid, serial#, osuser, machine
FROM v$session a, v$sqlarea b
WHERE a.sql_address = b.address;
查詢前台發出的SQL語句.

select user_name,sql_text
from v$open_cursor
where sid in
(select sid from (select sid,serial#,username,program from v$session where status='ACTIVE'));

根據SPID查詢session
SELECT * FROM v$session WHERE paddr IN
(SELECT addr FROM v$process WHERE spid=&spid);

根據SID查詢process
SELECT * FROM v$process WHERE addr IN
(SELECT paddr FROM v$session WHERE sid=&sid);

DBA如何查詢其他用戶所進行的操作
SELECT sql_text
FROM v$sql t1, v$session t2
WHERE t1.address = t2.sql_address
AND t2.sid = &sid;

根據process查詢sql語句

SELECT sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN (
SELECT DECODE (sql_hash_value,0, prev_hash_value,sql_hash_value ),
DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)
FROM v$session b
WHERE b.paddr = (SELECT addr
FROM v$process c
WHERE c.spid = '$processID'))
ORDER BY piece ASC;

其他
執行下列命令語句
sqlplus / as sysdba <<EOF
create tablespace test datafile '/data/test01.dbf' size 10240M;
quit;
EOF

通過ps -ef|grep sqlplus命令得到上面所執行的命令的進程id為:12345
(1)關於v$process
執行下面的SQL是查不到相關的信息:
select * from v$process where spid='12345';
因為這個spid欄位對應的並不是我們用ps命令從系統中查詢到的進程id,而是這個進程執行的當前SQL的進程id,
也就是上面命令中的「create tablespace test datafile '/data/test01.dbf' size 10240M;」所對應的進程id,如果想
通過用ps命令從系統中查詢到的進程id查看對應的信息,那麼必須使用下面語句:
select spid,sid,process,sql_address from v$session where process='12345'
上面sql中的process就是通過ps查看的進程id,而spid就是裡面的sql語句所對應的進程id。
還可以通過上面的sql_address 查看正在執行的SQL語句內容:
select sql_text from v$sqlarea s,v$session ses where s.address=ses.sql_address and ses.process='12345';

(2)關於v$session
在查詢 v$session 視圖的時候,我們根據command欄位內部表示解碼每一個欄位,當我們需要快速找出他們的 Oracle 系統的內部情況時非常有用。
select
substr(s.username,1,18) username,substr(s.program,1,15) program,p.spid,s.process,
decode(s.command,
0,'No Command',
1,'Create Table',
2,'Insert',
3,'Select',
6,'Update',
7,'Delete',
9,'Create Index',
15,'Alter Table',
21,'Create View',
23,'Validate Index',
35,'Alter Database',
39,'Create Tablespace',
41,'Drop Tablespace',
40,'Alter Tablespace',
53,'Drop User',
62,'Analyze Table',
63,'Analyze Index',
s.command||': Other') command
from
v$session s,
v$process p,
v$transaction t,
v$rollstat r,
v$rollname n
where s.paddr = p.addr
and s.taddr = t.addr (+)
and t.xisn = r.usn (+)
and r.usn = n.usn (+)
order by username

(3)幾個相關的SQL
--查看系統進程對應的信息
select se.saddr,se.sid,se.serial#,p.pid,se.paddr,s.sql_id,s.sql_text
from v$session se ,v$process p, v$sqlarea s
where se.paddr=p.addr and se.sql_address=s.address and se.process='&1'
and se.username is not null

--查看所有的會話
select se.username,se.saddr,se.sid,se.serial#,se.process,s.sql_id
from v$session se,v$sqlarea s
where se.sql_address=s.address

--查看會話對應的sql內容
select se.username,se.process,s.sql_text
from v$session se,v$sqlarea s
where se.sql_address=s.address and s.sql_id='&1'

㈧ 如何監控Oracle資料庫中長時間運行的進程

監控Oracle 資料庫中長時間運行進程的兩種方式,通過這些方 法,我們可以監控單條語句的 長時間操作,監控存儲過程的運行進度,甚至自己'生成'進度信息. 關鍵詞:監控進度V$SESSION_LONGOPS 當Oracle 存儲過程運行時間較長時,我們希望客 戶端能了解到它在後台執行的狀況或者進度信息(類 似WINDOWS 安裝軟體時的進度條信息),這樣可以知 道運行在後台的應用進程是否終止或者休眠,更近一 步要求,最好能知道進行到哪一步驟,還有多少時間才 能完成. 簡單到一條SQL 語句的情況,如果執行時間較長, 我們如何得到它的運行狀況?是否後台還在運行?雖 然可以查看SQL 的執行計劃了解它的執行步驟,但如 何知道它運行到哪一個步驟了呢?如何才能估計出它 的合理的較為精確的執行時間呢? Oracle 資料庫前端發出執行命令後,進程在後台 執行,普通開發人員一般無法了解到後台在做什麼,一 般採用的方法是用DBMSOUTPUT.PUT_LINE 來列印出 來,但DBMS—OUTPUT.PUT—LINE 列印的信息受緩沖區 大小限制,如果信息較多就容易溢出,而且如果存儲過 程執行時間較長,只有在其執行完後,這些信息才會打 印出來,這就增加了調試周期,影響了調試效果.有的 開發人員在存儲過程中通過寫日誌表的形式來記錄進 度,但需要COMMIT 後其他進程才能看到這些日誌信 息,而在某些控制結構中(如游標CURSOR 循環)COM— MIT,則很容易引起ORA 一01555 錯誤,造成程序出錯. 下面介紹兩種監控方法. 如何監控單條長語句從ORACLE8 開始,出現一個新的動態視圖:V $SESSION_LONGOPS,從這個視圖可以獲知一些操作 (如全表掃描,並行查詢,RMAN,排序等)的執行進度, 我們先來了解一下V$SESSION—LONGOPS 視圖的一些 重要欄位: 列說明 sID 會話標識 5ERIAL#會話序列號 OPfE 操作的簡短描述 TARG 盯操作的對象,如xx TAR~_DESC目標描述 SOFAR 目前已執行單位數目 ToTAIWORK 總單位數目 UNlTS 單位 START_TIME 開始執行時間 LAST_ UPDATE_TIME 統計數據最後更新時間 TIME_ REMAINING 估計剩餘時間c ELAPSED_SECONDS 已執行時間(秒) MEsSAGE 統計數據匯總信息 USERA^^E 用戶名 ~L_ADDRES5 語句的地址,,用於和V$sql_text 等關聯 語句的hash 地址,用於和V$sql_texlSQLHASH VALUE等關聯 這個動態視圖顯示各個運行時間超過6 程.這些進程包含許多備份和恢復功能,統計數據收集,查詢等. 執行以下語句就可以得到資料庫中各個長時間操 作的進程信息: select'Icfromv$sesslon_ longopswheretime_ re- malnlng>0 我們也可以用圖形化工具查看,如TOAD,OEM中 均可查看長操作進程進度信息. Oracle 自帶的管理工具OracleEnterpriseManager (OEM)提供了圖形化查看長操作的功能,如: 計算機系統應用2007 Quest公司的資料庫管理工具TOAD 也可以看到 長操作信息,如: 表的統計信息. 長時問運行的SQL 語句可以用V$SESSION—LON? 為了能監控到查詢進程執行的進度,必需使用 CBO 優化器並且: 設置TlMED—STATISTICS或者SQL—TRACE 用ANALYZE語句或者DBMS—STAT 包收集相關 108 實踐經驗P 帕cficalExpen GOPS來監控.實際上,長時間運行的存儲過程也可以 監控.那是否任何操作都可以通過這個視圖來監控進 度呢?很遺憾,V$SESSION—LONGOPS 只會報告它認為 耗時長的操作.對於NEsTEDLOOP/UNIQUEINDEX READS/INDEXRANGEScANS 等執行速度很快的操作, 2007 期計算機系統應用由於它們執行一般不超過6 秒,因此將不會出現在V $SESSION—LONGOPS 如何監控自定義存儲過程單條長語句可以用上面的方法監控,Oracle 動生成V$SE.SSION— LONGOPS 記錄.那麼存儲過程中 有許多小操作,如何監控進度呢?其實,我們也可以手 工生成V$SESSION—LONGOPS 記錄,方法是調用DBMS APPLICATION—INFO 包來生成自定義進度信息. 從Oracle7.2 開始,提供了DBMS—APPLICATION— INFo 包,通過調用這個包,應用可以將自己的名字和 動作填寫到V$SESSION 和V$SQLAREA 的MODULE ACTION列中.V$SESSION 列出每個會話的用戶名,操 作系統機器名,終端名,程序名等. 應用可以在執行模塊時設置模塊名和動作名,模 塊名一般是甩戶自定義的.而動作名一般描述模塊中 的當前執行的事務的名字. DBMSAPPLICATION_INFO 包包含以下過程 SET_ MODULE 設置當前運行程序的模塊名 SET__AEl'ION 設置當前模塊的當前動作名 SESSION—LON-在V$SESSIONLONGOPS視圖中 GoPS 插入一行進度信息 SETMODULE過程設置模塊名和動作名: createorreplaceproceredel—cust(v_cust—Id varchar2) begindbms—— application—— info.set— mole(mole—— name=>"delcust". actlon_name=>"deletetablecust)i deletefromcustwherecustld=v_ cusLId; dbms_appllcatlon— Info.seLmole(,); end;以上設置的模塊名和動作名可以通過查詢V $sqlarea 獲取. 如:selectsql—text,mole,actionfromv $sqlareawheremole="del_cust: sql_textmoleadion Deletefr0mcustdel_ custdeletetableoust 1rowselected. SET_SESSION—LONGOPS 過程用於在V$session— longops 中插入一行,開發人員可以調用此過程設置長 時間操作的狀態信息,這樣,任何其他其他會話都可以 看到這個進度信息.如下例所示: declare _info.set_ session— Iongops_ nohint; IdndexnumberdefaultInohlnt: slnonumber;begin forlIn1..8888888888 loop update....; dbms_ appllcaflon— Info.setsesslon_ longops (rlndex=>l_rlndex, slno=>I_slno. op_name=>"updateahugetable. target=>126, target_desc=>'.msgdescription context=>0.sOfar=>j. totalwork=>8888888888. units=>loops endloop;end; 然後,從另一個會話來執行以下語句selectfromv$sesslon_ longopswheretlmere? malnlng>0; 也可以用圖形化工具TOAD 或OEM來查看. 因此,採用本文說明的方法,Oracle 開發人員可以 比較方便的監控長操作進程的進度信息,也可以自己 設置監控信息,來了解後台存儲過程的運行效率.甚 至,可以在存儲過程或SQL 語句提交執行後馬上觀察 其執行進度,如果比較緩慢,則可以中斷其執行,進行 調優,從而縮短調試周期,提高開發效率.

㈨ Oracle資料庫有哪些後台進程

q000 並行處理進程 SMON 系統監控進程 CKPT 檢查點進程 LGWR 寫日誌進程 PMON 程序監控進程 ARCH 歸檔日誌進程 DBW0 數據寫進程 如果你說要是查看的話可以試試這個命令 ps -ef|group ora_

㈩ oracle資料庫的後台進程有哪些

可通過查詢v$session來獲取。

selectprogramfromv$sessionwhereprogramlike'ORACLE.EXE%';

查詢結果:

常見進程:

q000—並行處理進程
SMON—系統監控進程
CKPT—檢查點進程
LGWR—寫日誌進程
PMON—程序監控進程
ARCH—歸檔日誌進程
DBW0—數據寫進程

熱點內容
聊天軟體編程 發布:2024-09-17 03:00:07 瀏覽:725
linuxoracle安裝路徑 發布:2024-09-17 01:57:29 瀏覽:688
兩個安卓手機照片怎麼同步 發布:2024-09-17 01:51:53 瀏覽:207
cf編譯後沒有黑框跳出來 發布:2024-09-17 01:46:54 瀏覽:249
安卓怎麼禁用應用讀取列表 發布:2024-09-17 01:46:45 瀏覽:524
win10設密碼在哪裡 發布:2024-09-17 01:33:32 瀏覽:662
情逢敵手迅雷下載ftp 發布:2024-09-17 01:32:35 瀏覽:337
安卓如何讓軟體按照步驟自動運行 發布:2024-09-17 01:28:27 瀏覽:197
Z包解壓命令 發布:2024-09-17 01:27:51 瀏覽:221
吉林ipfs存儲伺服器雲主機 發布:2024-09-17 01:27:38 瀏覽:685