婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 探討:Oracle數據庫查看一個進程是如何執行相關的實際SQL語句

探討:Oracle數據庫查看一個進程是如何執行相關的實際SQL語句

熱門標簽:美圖秀秀地圖標注 百度地圖標注素材 征服眼公司地圖標注 阿爾巴尼亞地圖標注app 征服者火車站地圖標注 開封智能外呼系統廠家 人工智能地圖標注自己能做嗎 word地圖標注方向 外呼線路外顯本地號碼
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.xidusn = 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'

您可能感興趣的文章:
  • Oracle11.2 命令行手工最簡創建數據庫的過程
  • ORACLE數據庫查看執行計劃的方法
  • oracle的歸檔模式 ORACLE數據庫歸檔日志常用命令
  • Oracle數據庫基本常用命令匯總
  • oracle數據庫導入導出命令使用方法
  • Oracle數據庫密碼重置、導入導出庫命令示例應用
  • Oracle數據庫執行腳本常用命令小結

標簽:孝感 泰安 宜春 海北 酒泉 葫蘆島 淮南 六安

巨人網絡通訊聲明:本文標題《探討:Oracle數據庫查看一個進程是如何執行相關的實際SQL語句》,本文關鍵詞  探討,Oracle,數據庫,查看,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《探討:Oracle數據庫查看一個進程是如何執行相關的實際SQL語句》相關的同類信息!
  • 本頁收集關于探討:Oracle數據庫查看一個進程是如何執行相關的實際SQL語句的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 沁源县| 息烽县| 体育| 冕宁县| 韶山市| 武城县| 建湖县| 安义县| 峨山| 韶关市| 承德县| 都兰县| 饶河县| 定日县| 承德市| 昌江| 朝阳市| 旺苍县| 唐河县| 门源| 仙桃市| 新乡市| 遵义县| 崇左市| 浠水县| 乐昌市| 浦东新区| 即墨市| 永康市| 万源市| 宣武区| 漳州市| 平阳县| 元谋县| 阜康市| 卢湾区| 南陵县| 桂林市| 涞源县| 辽宁省| 华坪县|