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

主頁 > 知識庫 > Oracle 阻塞(blocking blocked)介紹和實例演示

Oracle 阻塞(blocking blocked)介紹和實例演示

熱門標簽:車瑪仕極限運動場所地圖標注 地圖標注怎么保存 N個你智能電銷機器人 高德地圖標注公司名字大全 騰訊地圖標注要費用嗎 外呼電話系統用卡嗎 電渠外呼系統 廣東營銷智能外呼系統商家 七日殺a19.5全地圖標注

阻塞是DBA經常碰到的情形,尤其是不良的應用程序設計的阻塞將導致性能嚴重下降直至數據庫崩潰。對DBA而言,有必要知道如何定位到當前系統有哪些阻塞,到底誰是阻塞者,誰是被阻塞者。本文對此給出了描述并做了相關演示。

1、阻塞及其類型

a、什么是阻塞
   一個會話持有某個資源的鎖,而另一個會話在請求這個資源,就會出現阻塞(blocking)。也就是說新的會話會被掛起,直到持有鎖的會話放棄鎖定的資源。大多數情況下,在一個交互式應用中被嚴重阻塞,即可表明應用邏輯有問題,這才是阻塞的根源。
b、阻塞得類型
   數據庫中有5條常見的DML語句可能會阻塞,即:INSERT、UPDATE、DELETE、MERGE 和SELECT FOR UPDATE。

2、幾種不同類型阻塞的處理辦法

a、INSERT阻塞主要是由于有一個帶主鍵的表,或者表上有惟一的約束,在兩個會話試圖用同樣的值插入一行時引發阻塞。多表通過引用完整性約束相互鏈接時,在其依賴的父表正在創建或刪除期間,對子表的插入可能會阻塞。對于該類情形建議使用序列來生成主鍵/惟一列值。
b、對于UPDATE、DELETE、MERGE 和SELECT FOR UPDATE阻塞,只要有任一session使用這些操作已經鎖定行,其余的必須處于等待狀態。直到當前鎖定行上的鎖(排他鎖)釋放。對于該類情形,建議盡可能快速提交事務,或采用批量SQL方式提交。
c、對于一個阻塞的SELECT FOR UPDATE,解決方案很簡單:只需增加NOWAIT 子句,它就不會阻塞了。

3、演示阻塞

--更新表,注,提示符scott@CNMMBO表明用戶為scott的session,用戶名不同,session不同。
scott@CNMMBO> update emp set sal=sal*1.1 where empno=7788;

1 row updated.

scott@CNMMBO> @my_env

SPID    SID SERIAL# USERNAME  PROGRAM
------------ ---------- ---------- --------------- ------------------------------------------------
11205    1073  4642 robin   oracle@SZDB (TNS V1-V3)

--另起兩個session更新同樣的行,這兩個session都會處于等待,直到第一個session提交或回滾
leshami@CNMMBO> update scott.emp set sal=sal+100 where empno=7788;

goex_admin@CNMMBO> update scott.emp set sal=sal-50 where empno=7788;

--下面在第一個session 查詢阻塞情況
scott@CNMMBO> @blocker 

BLOCK_MSG            BLOCK
-------------------------------------------------- ----------
pts/5 ('1073,4642') is blocking 1067,10438     1
pts/5 ('1073,4642') is blocking 1065,4464     1
--上面的結果表明session 1073,4642 阻塞了后面的2個
--即session 1073,4642是阻塞者,后面2個session是被阻塞者

--Author : Leshami
--Blog : http://blog.csdn.net/leshami

--下面查詢正在阻塞的session id,SQL語句以及被阻塞的時間
scott@CNMMBO> @blocking_session_detail.sql

'SID='||A.SID||'WAITCLASS='||A.WAIT_CLASS||'TIME='||A.SECONDS_IN_WAIT||CHR(10)||'QUERY='||B.SQL_TEXT
-------------------------------------------------------------------------------------------------------
sid=1067 Wait Class=Application Time=5995
 Query=update scott.emp set sal=sal+100 where empno=7788

sid=1065 Wait Class=Application Time=225
 Query=update scott.emp set sal=sal-50 where empno=7788

--下面的查詢阻塞時鎖的持有情況 
scott@CNMMBO> @request_lock_type

USERNAME        SID TY LMODE  REQUEST   ID1  ID2
------------------------------ ---------- -- ----------- ----------- ---------- ----------
SCOTT        1073 TX Exclusive None   524319  27412
LESHAMI        1067 TX None  Exclusive  524319  27412
GOEX_ADMIN       1065 TX None  Exclusive  524319  27412
--可以看到LESHAMI,GOEX_ADMIN 2個用戶都在請求524319/27412上的Exclusive鎖,而此時已經被SCOTT加了Exclusive鎖

--查詢阻塞時鎖的持有詳細信息
scott@CNMMBO> @request_lock_detail

  SID USERNAME    OSUSER   TERMINAL     OBJECT_NAME   TY Lock Mode Req_Mode
---------- -------------------- --------------- ------------------------- -------------------- -- ----------- --------------------
  1065 GOEX_ADMIN   robin   pts/1      EMP     TM Row Excl
  1065 GOEX_ADMIN   robin   pts/1      Trans-524319   TX --Waiting-- Exclusive
  1067 LESHAMI    robin   pts/0      EMP     TM Row Excl
  1067 LESHAMI    robin   pts/0      Trans-524319   TX --Waiting-- Exclusive
  1073 SCOTT    robin   pts/5      EMP     TM Row Excl
  1073 SCOTT    robin   pts/5      Trans-524319   TX Exclusive 

文中涉及到的相關腳本如下:

robin@SZDB:~/dba_scripts/custom/sql> more my_env.sql 
SELECT spid, s.sid, s.serial#, p.username, p.program
FROM v$process p, v$session s
WHERE p.addr = s.paddr
  AND s.sid = (SELECT sid
     FROM v$mystat
     WHERE rownum = 1);

robin@SZDB:~/dba_scripts/custom/sql> more blocker.sql 
col block_msg format a50; 
select c.terminal||' ('''||a.sid||','||c.serial#||''') is blocking '||b.sid||','||d.serial# block_msg, a.block 
from v$lock a,v$lock b,v$session c,v$session d 
 where a.id1=b.id1 
 and a.id2=b.id2 
 and a.block>0
 and a.sid >b.sid 
 and a.sid=c.sid 
 and b.sid=d.SID; 

robin@SZDB:~/dba_scripts/custom/sql> more blocking_session_detail.sql
--To find the query for blocking session

--Access Privileges: SELECT on v$session, v$sqlarea

SELECT  'sid='
   || a.SID
   || ' Wait Class='
   || a.wait_class
   || ' Time='
   || a.seconds_in_wait
   || CHR (10)
   || ' Query='
   || b.sql_text
 FROM v$session a, v$sqlarea b
 WHERE a.blocking_session IS NOT NULL AND a.sql_address = b.address
ORDER BY a.blocking_session
/
robin@SZDB:~/dba_scripts/custom/sql> more request_lock_type.sql
--This script generates a report of users waiting for locks.
--Access Privileges: SELECT on v$session, v$lock

SELECT sn.username, m.sid, m.type,
  DECODE(m.lmode, 0, 'None',
      1, 'Null',
      2, 'Row Share',
      3, 'Row Excl.',
      4, 'Share',
      5, 'S/Row Excl.',
      6, 'Exclusive',
    lmode, ltrim(to_char(lmode,'990'))) lmode,
  DECODE(m.request,0, 'None',
       1, 'Null',
       2, 'Row Share',
       3, 'Row Excl.',
       4, 'Share',
       5, 'S/Row Excl.',
       6, 'Exclusive',
       request, ltrim(to_char(m.request,
    '990'))) request, m.id1, m.id2
FROM v$session sn, v$lock m
WHERE (sn.sid = m.sid AND m.request != 0)
  OR (sn.sid = m.sid
    AND m.request = 0 AND lmode != 4
    AND (id1, id2) IN (SELECT s.id1, s.id2
  FROM v$lock s
      WHERE request != 0
    AND s.id1 = m.id1
        AND s.id2 = m.id2)
    )
ORDER BY id1, id2, m.request; 
robin@SZDB:~/dba_scripts/custom/sql> more request_lock_detail.sql
set linesize 190
col osuser format a15
col username format a20 wrap
col object_name format a20 wrap
col terminal format a25 wrap
col Req_Mode format a20
select B.SID, C.USERNAME, C.OSUSER, C.TERMINAL,
  DECODE(B.ID2, 0, A.OBJECT_NAME,
   'Trans-'||to_char(B.ID1)) OBJECT_NAME,
  B.TYPE,
  DECODE(B.LMODE,0,'--Waiting--',
      1,'Null',
      2,'Row Share',
      3,'Row Excl',
     4,'Share',
      5,'Sha Row Exc',
   6,'Exclusive',
      'Other') "Lock Mode",
  DECODE(B.REQUEST,0,' ',
      1,'Null',
      2,'Row Share',
      3,'Row Excl',
      4,'Share',
      5,'Sha Row Exc',
      6,'Exclusive',
      'Other') "Req_Mode"
 from DBA_OBJECTS A, V$LOCK B, V$SESSION C
where A.OBJECT_ID(+) = B.ID1
 and B.SID = C.SID
 and C.USERNAME is not null
order by B.SID, B.ID2;
您可能感興趣的文章:
  • Oracle阻塞(blockingblocked)實例詳解

標簽:玉樹 棗莊 贛州 遼寧 長沙 來賓 大興安嶺 蘇州

巨人網絡通訊聲明:本文標題《Oracle 阻塞(blocking blocked)介紹和實例演示》,本文關鍵詞  Oracle,阻塞,blocking,blocked,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle 阻塞(blocking blocked)介紹和實例演示》相關的同類信息!
  • 本頁收集關于Oracle 阻塞(blocking blocked)介紹和實例演示的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩女同互慰一区二区| 丝袜美腿亚洲一区二区图片| 国产精品影视天天线| 欧美sm极限捆绑bd| 久久精品国产精品亚洲精品| 精品欧美久久久| 国产精品一品二品| 国产精品麻豆99久久久久久| 一本一道久久a久久精品综合蜜臀| 日韩美女视频19| 91美女精品福利| 亚洲一区二区在线播放相泽| 制服丝袜成人动漫| 国产一区二区三区久久久| 国产精品久久午夜| 色综合中文字幕国产| 亚洲欧美在线视频观看| 日本丰满少妇一区二区三区| 三级久久三级久久久| 久久这里只有精品视频网| 99视频有精品| 视频精品一区二区| 国产日韩欧美精品在线| 欧洲精品在线观看| 精品一区二区三区在线观看 | 亚洲精品久久久蜜桃| 欧美理论片在线| 狠狠色丁香久久婷婷综| 一区二区在线电影| 亚洲精品在线观看网站| 色婷婷精品久久二区二区蜜臀av| 视频一区免费在线观看| 中文字幕一区二区在线播放| 欧美老女人在线| 成人不卡免费av| 水野朝阳av一区二区三区| 国产精品视频免费看| 欧美男同性恋视频网站| av不卡免费在线观看| 蜜臂av日日欢夜夜爽一区| 国产精品美女视频| 欧美一区二区在线免费观看| jlzzjlzz亚洲日本少妇| 裸体健美xxxx欧美裸体表演| 一区二区三区资源| 国产色产综合产在线视频| 欧美欧美午夜aⅴ在线观看| 成av人片一区二区| 久久国产夜色精品鲁鲁99| 亚洲日本va午夜在线影院| 日韩丝袜情趣美女图片| 在线观看av不卡| 不卡的av中国片| 极品少妇xxxx精品少妇| 肉肉av福利一精品导航| 亚洲激情av在线| 国产精品久久久久aaaa樱花| 欧美成人伊人久久综合网| 欧美精品xxxxbbbb| 欧美优质美女网站| 99re这里只有精品视频首页| 国产乱妇无码大片在线观看| 久久国产尿小便嘘嘘尿| 午夜在线成人av| 亚洲午夜影视影院在线观看| 亚洲三级理论片| 国产精品久久久一本精品 | 国产亚洲欧美激情| 日韩精品资源二区在线| 日韩午夜三级在线| 日韩欧美国产一区二区三区| 欧美精品v日韩精品v韩国精品v| 欧美羞羞免费网站| 91福利在线免费观看| 在线欧美一区二区| 色婷婷激情一区二区三区| 色综合久久久久网| 91蜜桃网址入口| 日本精品裸体写真集在线观看| 色视频欧美一区二区三区| 91丨porny丨中文| 色偷偷成人一区二区三区91| 99久久精品免费看| 色综合视频在线观看| 91极品美女在线| 欧美午夜精品久久久久久孕妇| 在线观看一区不卡| 91精品综合久久久久久| 91精品国产综合久久精品图片| 欧美一区二区三区在线| 日韩欧美成人激情| 中文字幕第一区第二区| 国产精品久久久久桃色tv| 国产精品成人免费在线| 中文字幕亚洲电影| 亚洲综合免费观看高清在线观看| 香蕉久久一区二区不卡无毒影院| 日本不卡的三区四区五区| 精品一区二区三区在线播放| 国产精品99久久久久久似苏梦涵| 99久久免费视频.com| 欧美日韩午夜在线| 精品成人免费观看| 中文字幕一区三区| 日本中文字幕不卡| 国产成人在线电影| 色狠狠一区二区三区香蕉| 91精品麻豆日日躁夜夜躁| 久久先锋资源网| 亚洲美女视频一区| 毛片一区二区三区| 国产**成人网毛片九色 | 成人免费高清在线观看| 91搞黄在线观看| 久久免费国产精品| 一区二区三区在线视频观看 | 国产一区免费电影| 成年人午夜久久久| 日韩小视频在线观看专区| 国产精品第四页| 卡一卡二国产精品| 色老综合老女人久久久| 久久丝袜美腿综合| 亚洲高清视频的网址| 国产成人精品免费看| 欧美一区2区视频在线观看| 综合分类小说区另类春色亚洲小说欧美 | 亚洲蜜桃精久久久久久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 粉嫩13p一区二区三区| 欧美精品在线观看播放| 综合久久给合久久狠狠狠97色 | 五月天网站亚洲| 波多野结衣91| 欧美tk丨vk视频| 亚洲国产精品麻豆| caoporm超碰国产精品| 久久人人超碰精品| 日本三级亚洲精品| 欧美日韩中文另类| 亚洲免费色视频| 成人一区二区三区在线观看 | 成人性色生活片| 欧美一级免费大片| 亚洲午夜视频在线| 色综合天天综合色综合av| 国产精品视频一二三| 久久se精品一区精品二区| 欧美精品日日鲁夜夜添| 一区二区三区色| 91碰在线视频| 亚洲图片另类小说| 成人黄色av电影| 日本一区二区三区电影| 国产精品自在在线| 久久伊人蜜桃av一区二区| 九九久久精品视频| 精品黑人一区二区三区久久| 热久久国产精品| 欧美日韩一本到| 午夜精品久久久久久不卡8050| 欧美中文字幕一区二区三区亚洲| 综合婷婷亚洲小说| 色综合久久99| 亚洲免费观看高清完整版在线观看| av爱爱亚洲一区| 亚洲日本在线a| 欧美在线一区二区| 亚洲图片欧美色图| 在线观看91av| 青青草成人在线观看| 日韩一区二区三区在线观看| 麻豆精品久久精品色综合| 91精品欧美久久久久久动漫| 美腿丝袜亚洲综合| 欧美电视剧免费全集观看| 精品一区二区成人精品| 国产三级欧美三级日产三级99| 高清不卡在线观看av| 亚洲丝袜精品丝袜在线| 欧美中文字幕一区| 视频在线在亚洲| 久久影院午夜片一区| 成人激情免费电影网址| 国产精品国产三级国产普通话三级| 99久久精品免费看国产免费软件| 亚洲激情图片qvod| 欧美一区二区三区免费| 国产成人综合视频| 亚洲男同性恋视频| 日韩一级二级三级| www.日韩精品| 亚洲一区二区三区四区在线观看 | 性欧美疯狂xxxxbbbb| 欧美mv日韩mv亚洲| www.视频一区| 美女脱光内衣内裤视频久久网站| 久久精品人人爽人人爽| 在线免费观看不卡av| 久久成人免费电影|