查詢當前正在執行的SQL語句並KILL
一、查詢當前正在執行的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;
其中v$session檢視結構中的username為執行該條SQL的使用者名稱
sid為session ID,即會話標識
sql_address為和SQL_HASH_VLAUE的一樣用來標識正在執行的SQL(官方文件解釋:Used with SQL_HASH_VALUE to identify the SQL statement that is currently being executed)
v$sqlarea檢視結構中的sql_text為前1000位元組的SQL語句
sql_fulltext為所有位元組的SQL語句(即不管超不超過1000位元組均可以顯示出來)
address為根指標所在控制程式碼的地址,此值與HASH_VALUE一對一的關係(官方文件解釋:Address of the handle to the parent for this cursor)
二、檢視正在執行的SQL
select sid,serial# from v$session where sid='上面查出來的sid';
v$session檢視中的serial#欄位含義為session serial number,主要是用來唯一標識會話連線的物件,如果一個會話結束而另外一個會話以相同的SID開始的情況下,保證會話級別的命令能夠唯一的作用到正確的會話物件
三、終止該SQL
alter system kill session 'sid,serial#';
如果如此還沒有終止,則需透過系統級別的命令殺死改SQL
SQL> select b.username,b.SPID from v$session a,v$process b where a.PADDR=b.ADDR and a.sid=1511;
USERNAME SPID
--------------- ------------
oracle 6066
其中v$process檢視中username的含義為該程式所屬的OS user
SPID的含義為該程式的作業系統程式號
然後透過系統級別命令 kill -9 6066終止即可
select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT from v$session a, v$sqlarea b where a.sql_address = b.address;
其中v$session檢視結構中的username為執行該條SQL的使用者名稱
sid為session ID,即會話標識
sql_address為和SQL_HASH_VLAUE的一樣用來標識正在執行的SQL(官方文件解釋:Used with SQL_HASH_VALUE to identify the SQL statement that is currently being executed)
v$sqlarea檢視結構中的sql_text為前1000位元組的SQL語句
sql_fulltext為所有位元組的SQL語句(即不管超不超過1000位元組均可以顯示出來)
address為根指標所在控制程式碼的地址,此值與HASH_VALUE一對一的關係(官方文件解釋:Address of the handle to the parent for this cursor)
二、檢視正在執行的SQL
select sid,serial# from v$session where sid='上面查出來的sid';
v$session檢視中的serial#欄位含義為session serial number,主要是用來唯一標識會話連線的物件,如果一個會話結束而另外一個會話以相同的SID開始的情況下,保證會話級別的命令能夠唯一的作用到正確的會話物件
三、終止該SQL
alter system kill session 'sid,serial#';
如果如此還沒有終止,則需透過系統級別的命令殺死改SQL
SQL> select b.username,b.SPID from v$session a,v$process b where a.PADDR=b.ADDR and a.sid=1511;
USERNAME SPID
--------------- ------------
oracle 6066
其中v$process檢視中username的含義為該程式所屬的OS user
SPID的含義為該程式的作業系統程式號
然後透過系統級別命令 kill -9 6066終止即可
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29802484/viewspace-1390968/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 查詢Oracle正在執行的sql語句及執行該語句的使用者OracleSQL
- Laravel 框架查詢執行的 SQL 語句Laravel框架SQL
- SQL Server 查詢歷史執行的SQL語句SQLServer
- SQL 查詢語句的執行順序解析SQL
- 一條 SQL 查詢語句是如何執行的?SQL
- GaussDB SQL查詢語句執行過程解析SQL
- 輸入的查詢 SQL 語句,是如何執行的?SQL
- 查詢oracle正在執行的SQL和事務OracleSQL
- MySQL系列之一條SQL查詢語句的執行過程MySql
- sql查詢語句流程SQL
- SQL mother查詢語句SQL
- SQL查詢語句 (Oracle)SQLOracle
- 一條查詢語句的執行流程
- PostgreSQL 查詢當前執行中sql的執行計劃——pg_show_plans模組SQL
- MySQL 查詢常用操作(0) —— 查詢語句的執行順序MySql
- [轉帖]SQL Server簡潔查詢正在執行的程序SQLServer
- 01 | 基礎架構:一條SQL查詢語句是如何執行的?架構SQL
- MySQL資料庫詳解(一)SQL查詢語句是如何執行的?MySql資料庫
- 一文讀懂一條 SQL 查詢語句是如何執行的SQL
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- mysql查詢效率慢的SQL語句MySql
- sql語句如何執行的SQL
- 資料庫查詢優化:使用explain分析sql語句執行效率資料庫優化AISQL
- postgresql dba常用sql查詢語句SQL
- MySQL 查詢語句執行過程淺析MySql
- [20190125]簡單快速檢視那些sql語句正在執行.txtSQL
- SQL 查詢總是先執行SELECT語句嗎?你們都錯了!SQL
- 在mysql查詢效率慢的SQL語句MySql
- SQL基礎的查詢語句烈鉍SQL
- mysql的sql語句執行流程MySql
- SQL 語句的執行順序SQL
- pgrep查詢正在執行的程式ID
- SQL單表查詢語句總結SQL
- SQL Server 語句日期格式查詢方法SQLServer
- SQL Server-簡單查詢語句SQLServer
- SQL語句執行順序SQL
- Sql語句本身的優化-定位慢查詢SQL優化
- 記一個實用的sql查詢語句SQL
- [20210112]ashtop查詢特定表的SQL語句.txtSQL