探討:Oracle數據庫查看一個進程是如何執(zhí)行相關的
導讀:1建站知識本篇文章是對Oracle數據庫查看一個進程是如何執(zhí)行相關的實際SQL語句進行了詳細的分析介紹,需要的朋友參考下百度seo網站優(yōu)化高端網站建設。
Oracle數據庫查看一個進程是如何執(zhí)行相關的實際SQL語句
復制代碼 代碼如下:
SELECT b.sql_text, sid, serial#, osuser, machine FROM v$session a, v$sqlarea b WHERE a.sql_address = b.address;
查詢前臺發(fā)出的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;
其他執(zhí)行下列命令語句復制代碼 代碼如下:
sqlplus / as sysdba <<EOFcreate tablespace test datafile '/data/test01.dbf' size 10240M;quit;EOF
通過ps -ef|grep sqlplus命令得到上面所執(zhí)行的命令的進程id為:12345(1)關于v$process執(zhí)行下面的SQL是查不到相關的信息:select * from v$process where spid='12345';因為這個spid字段對應的并不是我們用ps命網站優(yōu)化seo培訓令網站建設多少錢從系統(tǒng)中查詢到的進程id,而是這個進程執(zhí)行的當前SQL的進程id,也就是上面命令中的“create tablespace test datafile '/data/test01.dbf' size 10240M;”所對應的進程id,如果想通過用ps命令從系統(tǒng)中查詢到的進程id查看對應的信息,那么必須使用下面語句:select spid,sid,process,sql_address from v$session where process='12345'上面sql中的process就是通過ps查看的進程id,而spid就是里面的sql語句所對應的進程id。還可以通過上面的sql_address 查看正在執(zhí)行的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 系統(tǒng)的內部情況時非常有用。復制代碼 代碼如下:
selectsubstr(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') commandfromv$session s,v$process p,v$transaction t,v$rollstat r,v$rollname nwhere s.paddr = p.addrand s.taddr = t.addr (+)and t.xidusn = r.usn (+)and r.usn = n.usn (+)order by username
聲明: 本文由我的SEOUC技術文章主頁發(fā)布于:2023-05-23 ,文章探討:Oracle數據庫查看一個進程是如何執(zhí)行相關的主要講述語句,進程,SQL網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_5931.html