SQL Server和Oracle中的锁和死锁
2008-09-02 12:46:27 来源:WEB开发网我们可以如下查询语句查找死锁的进程:
查询1:
selectss.username,lo.OBJECT_ID,lo.SESSION_ID,ss.SERIAL#,lo.ORACLE_USERNAME,lo.OS_USER_NAME,lo.PROCESSFROMV$LOCKED_OBJECTlo,V$SESSIONsswherelo.SESSION_ID=ss.SID;
查询2:
selectDISTINCT’BLOCKER(’||LB.SID||’:’||sb.username||’)-SQL:’||qb.SQL_textBLOCKERS,’WAITER(’||lw.SID||’:’||sw.username||’)-SQL:’||qw.SQL_textWAITERSFROMV$lockLB,V$sessionSB,V$lockLW,v$sessionSW,v$sqlQB,V$sqlQWwhereLB.SID=SB.SIDANDLW.SID=SW.SIDANDSB.PREV_sql_addr=QB.ADDRESSANDSW.SQL_ADDRESS=QW.ADDRESSANDLB.ID1=LW.ID2ANDSW.LOCKWAITISNOTNULL
查询3:
selectDISTINCT’BLOCKER(’||BW.HOLDING_SESSION||’:’||SB.username||’)-SQL:’||BQ.SQL_textBLOCKERS,’WAITER(’||BW.WAITING_SESSION||’:’||sw.username||’)-SQL:’||SQ.SQL_textWAITERSFROMDBA_waitersBW,V$SESSIONSB,v$sessionSW,v$sqlareaBQ,V$sqlareaSQwhereBW.HOLDING_SESSION=SB.SIDANDBW.WAITING_SESSION=SW.SIDANDSB.PREV_SQL_addr=BQ.ADDRESSANDSW.SQL_ADDRESS=SQ.ADDRESS
查询3执行后,返回如下所示监视信息。
BLOCKERS--------------------------------------------------------------------------------WAITERS--------------------------------------------------------------------------------BLOCKER(12:SYS)-SQL:selectDISTINCT ’BLOCKER(’||BW.HOLDING_SESSION||’:’||SB.username||’)-SQL:’||BQ.SQL_textBLOCKERS, ’WAITER(’||BW.WAITING_SESSION||’:’||sw.username||’)-SQL:’||SQ.SQL_textWAITERS FROMDBA_waitersBW,V$SESSIONSB,v$sessionSW,v$sqlareaBQ,V$sqlareaSQ whereBW.HOLDING_SESSION=SB.SID ANDBW.WAITING_SESSION=SW.SID ANDSB.PREV_SQL_addr=BQ.ADDRESS ANDSW.SQL_ADDRESS=SQ.ADDRESSWAITER(13:SYS)-SQL:updatehr.jobssetjob_title=job_title||’abc’wherejob_id=’ST_MAN’
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
赞助商链接