kill_session_temptablespace_highparallel.sh 查殺執行時間較長的sql
#!/bin/bash
# by ray
# 2016-06-16
ksfile=/tmp/.kill_session.tmp #kill session 的檔案路徑
killSqlFile=/tmp/.kill_session_temptablespace_highparallel.sql #kill指令碼的路徑
killSqlHisFile=/home/oracle/shell/killSqlHisInfo.txt #被kill的會話資訊
oraUser=**** #oracle的使用者名稱
oraPwd=****** #oracle的密碼
#函式,獲取執行較長時間的sql的資訊
getSqlInfo(){
[ -e ${killSqlFile} ]&& rm -f ${killSqlFile}
[ -e $3 ]&& rm -f $3
sqlplus -s /nolog <<-RAY
conn $1/$2
set termout off;
set echo off;
set feedback off;
set verify off;
set heading off;
set wrap on;
set trimspool on;
set serveroutput on;
set escape on;
set pagesize 50000;
set long 2000000000;
set linesize 300;
spool $3
select distinct b.SID,b.SERIAL\#,b.LAST_CALL_ET,a.sql_id,b.OSUSER,b.MACHINE from v\$sql a,v\$session b,v\$process p where a.SQL_ID=b.SQL_ID and b.PADDR=p.ADDR and b.STATUS=\'ACTIVE\' and b.LAST_CALL_ET>100 and b.MODULE=\'JDBC Thin Client\' order by a.sql_id,B.LAST_CALL_ET desc;
spool off
RAY
#形成kill會話指令碼
awk '$0!=""{print "alter system kill session'\''"$1","$2"'\'';"}' $3 > ${killSqlFile}
#把被kill會話的資訊寫入檔案
echo "#########################################################################################" >> ${killSqlHisFile}
echo "#######################################"`date`"#######################################" >> ${killSqlHisFile}
cat $3 >> ${killSqlHisFile}
}
#執行指令碼的函式
execSQL(){
sqlplus /nolog <<-RAY
conn $1/$2
@$3
RAY
}
#指令碼入口
getSqlInfo ${oraUser} ${oraPwd} ${ksfile}
execSQL ${oraUser} ${oraPwd} ${killSqlFile}
[ -e ${ksfile} ]&& rm -f ${ksfile}
[ -e ${killSqlFile} ]&& rm -f ${killSqlFile}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28572479/viewspace-2134467/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle查詢sql執行耗時、執行時間、sql_idOracleSQL
- 如何使用Docker構建執行時間較長的指令碼Docker指令碼
- MyBatis列印SQL執行時間MyBatisSQL
- 批次殺執行某條sql的sessionSQLSession
- 自適應查詢執行:在執行時提升Spark SQL執行效能SparkSQL
- sql查詢是如何執行的?SQL
- 疑問:mybatis如何自定義SQL執行時長MyBatisSQL
- SQL Server 查詢歷史執行的SQL語句SQLServer
- laravel列印輸出完整sql,執行時間和explain分析LaravelSQLAI
- Laravel 框架查詢執行的 SQL 語句Laravel框架SQL
- azkaban執行任務長時間無法結束
- 如何用GNU time查詢Linux命令或程式的執行時間Linux
- Ubuntu開機等待網路時間較長Ubuntu
- 分享一個查詢某個使用者過去一段時間內執行的SQL語句。SQL
- 執行 brew install 命令長時間卡在 Updating Homebrew 的解決方法
- 伺服器長時間執行如何做好維護伺服器
- 查詢SQL Server的歷史執行記錄SQLServer
- SQL 查詢語句的執行順序解析SQL
- 查詢oracle正在執行的SQL和事務OracleSQL
- [20231012]奇怪的執行時長.txt
- 如何在 Windows 中檢查計算機正常執行時間Windows計算機
- PAT-B 1026 程式執行時間【時間】
- python之為函式執行設定超時時間(允許函式執行的最大時間)Python函式
- mysql 執行一段時間比較慢問題處理經過MySql
- Java執行緒的CPU時間片Java執行緒
- 一條 SQL 查詢語句是如何執行的?SQL
- 正常執行時間監控
- 提高codeing執行時間效率
- 輸入的查詢 SQL 語句,是如何執行的?SQL
- sleep 時間段不佔指令碼執行時間指令碼
- Linux 檢視程式啟動時間、執行時間Linux
- Oracle - 執行過的SQL、正在執行的SQL、消耗資源最多的SQLOracleSQL
- win10長時間執行卡如何解決_win10長時間沒關電腦變卡的解決方法Win10
- Go runtime 排程器精講(八):執行時間過長的搶佔Go
- MySQL cron定時執行SQL語句MySql
- [轉帖]SQL Server簡潔查詢正在執行的程序SQLServer
- 在MySQL中使用explain查詢SQL的執行計劃MySqlAI
- 查詢Oracle正在執行的sql語句及執行該語句的使用者OracleSQL
- 故障分析 | MySQL 相同 SQL 不同環境執行時間不一樣案例分析MySql