查詢正在執行的sql語句及該語句執行的時間
/* 2008/07/03 星期四
*蒙昭良
*環境:windowsXP + Oracle10gR2
*查詢正在執行的sql語句及該語句執行的時間
*/
查詢正在執行的sql語句:
SQL> select address,sql_text,piece from v$session,v$sqltext where address=sql_address order by address,piece
從網上摘下:
$session中的last_call_et列表示從STATUS(狀態)改變到當前的時間(單位是秒)。
也就是說,如果session當前是inactive的,則表示inactive的時間
如果session當前是active的,則表示active的時間。
另外需要注意的是last_call_et表示的是last call的時間。
對於單條SQL而言,是指sql執行時間;對於plsql而言,則是指整個plsql的執行時間。
後臺程式一直是active的,因此後臺程式的last_call_et與例項執行時間相近。
查詢方法:
SQL> select sid,serial#,username,status,last_call_et from v$session where status
='ACTIVE' and username is not null order by last_call_et desc;
SID SERIAL# USERNAME STATUS LAST_CALL_ET
---------- ---------- ---------- -------- ------------
128 168 SCOTT ACTIVE 3025
130 136 SYS ACTIVE 1236
125 1 DBSNMP ACTIVE 3
137 527 SYS ACTIVE 0
再根據SID找出執行的SQL或PL/SQL:
select sql_text from v$session a,v$sqltext_with_newlines b
where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value
and a.sid=&sid order by piece;
SQL> l
1 select sid,serial#,username,machine,last_call_et,status from v$session
2 where status='INACTIVE' and username is not null
3* order by last_call_et
SQL> select sql_text from v$session a,v$sqltext_with_newlines b
2 where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash
_value
3 and a.sid=&sid order by piece;
輸入 sid 的值: 128
原值 3: and a.sid=&sid order by piece
新值 3: and a.sid=128 order by piece
SQL_TEXT
----------------------------------------------------------------
insert into test
select * from test
可以看到上面的語句已經執行了3025秒,相當於50分鐘.
如果改語句不重要,可以kill掉
SQL> alter system kill session '128,168';
系統已更改。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-368969/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 查詢Oracle正在執行的sql語句及執行該語句的使用者OracleSQL
- 查詢正在執行的SQL語句SQL
- 查詢Oracle正在執行的SQL語句OracleSQL
- 查詢Oracle正在執行和執行過的SQL語句OracleSQL
- 查詢執行慢的SQL語句SQL
- 查詢當前正在執行的SQL語句並KILLSQL
- Oracle 查詢某個session正在執行的sql語句OracleSessionSQL
- Laravel 框架查詢執行的 SQL 語句Laravel框架SQL
- 查詢sql語句執行次數SQL
- SQL 查詢語句的執行順序解析SQL
- 查詢orcale執行的SQL語句記錄SQL
- oracle 中如何顯示sql語句的執行時間和sql語句的執行後的當前時間OracleSQL
- SQL Server 查詢歷史執行的SQL語句SQLServer
- 檢視mysql正在執行的SQL語句MySql
- 一條 SQL 查詢語句是如何執行的?SQL
- 檢視語句執行的時間
- 輸入的查詢 SQL 語句,是如何執行的?SQL
- T-sql語句查詢執行順序SQL
- GaussDB SQL查詢語句執行過程解析SQL
- 一條查詢語句的執行流程
- sql語句如何執行的SQL
- 執行大的sql語句SQL
- YCSB擴充套件-語句執行頻率,執行指定的測試查詢語句套件
- 記錄ORACLE語句的執行時間Oracle
- sql語句批量執行SQL
- SQL語句執行進度檢查SQL
- mysql的sql語句執行流程MySql
- SQL 語句的執行順序SQL
- 執行SQL語句查詢時出現一個SQLException異常SQLException
- MySQL cron定時執行SQL語句MySql
- 【Gp】PostgreSql中如何kill掉正在執行的sql語句SQL
- 檢視當前oracle中正在執行的sql語句OracleSQL
- SQL語句執行順序SQL
- toad執行sql語句SQL
- MySQL系列之一條SQL查詢語句的執行過程MySql
- Oracle中SQL語句執行效率的查詢與解決 (3)OracleSQL
- Oracle中SQL語句執行效率的查詢與解決 (2)OracleSQL
- Oracle中SQL語句執行效率的查詢與解決 (1)OracleSQL