日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

常见的ORACLE锁模式汇总

發布時間:2024/8/26 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常见的ORACLE锁模式汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  ORACLE是目前數據庫領域里應用最廣泛的數據庫,現在讓我們快速解析一下這些強大的ORACLE鎖有哪些模式??。

  ORACLE鎖有以下幾種模式

0:none?
1:n ul l 空?
2:Row-S 行共享(RS):共享表鎖?
3:Row-X 行專用(RX):用于行的 修改 ?
4:Share 共享鎖(S):阻止其他 DML 操作 ?
5:S/Row-X 共享行專用(SRX):阻止其他 事務 操作?
6:exclusive 專用(X): 獨立 訪問使用

  

  數字越大ORACLE鎖級別越高, 影響的操作越多??。

  一般的查詢語句select?... from ... ;是小于2的鎖, 有時會在v$locked_object出現??。

  select ... from ... for update; 是2的鎖??。

  當對話使用for update子串打開一個游標時,?
所有返回集中的數據行都將處于行級(Row-X)獨占式鎖定,?
其他對象只能查詢這些數據行,不能進行update、delete或select...for update操作??。

  insert?/ update / delete ... ; 是3的鎖??。

  沒有commit之前插入同樣的一條記錄會沒有反應,?
因為后一個3的鎖會一直等待上一個3的鎖, 我們必須釋放掉上一個才能繼續工作??。

  創建索引的時候也會產生3,4級別的鎖??。

  locked_mode為2,3,4不影響DML(insert,delete,update,select)操作,?
DDL(alter,drop等)操作會提示ora-00054錯誤??。

  有主外鍵約束時 update / delete ... ; 可能會產生4,5的鎖??。

  DDL語句時是6的鎖??。

  以DBA角色, 查看當前數據庫里鎖的情況可以用如下SQL語句

  • select?object_id,session_id,locked_mode?from?v$locked_object;? ?
  • select?t2.username,t2.sid,t2.serial#,t2.logon_time? ?
  • from?v$locked_object?t1,v$session?t2? ?
  • where?t1.session_id=t2.sid?order?by?t2.logon_time;? ?
  • ?
  •   如果有長期出現的一列,可能是沒有釋放的鎖??。

      我們可以用下面SQL語句殺掉長期沒有釋放非正常的鎖:

  • alter?system?kill?session?sid,serial#;??
  •   如果出現了鎖的問題, 某個DML操作可能等待很久沒有反應??。

      當你采用的是直接連接數據庫的方式,?
    也不要用OS系統命令?$kill process_num 或者 $kill -9 process_num來終止用戶連接,?
    因為一個用戶進程可能產生一個以上的鎖, 殺OS進程并不能徹底清除鎖的問題??。

      在數據庫級別可用alter system kill session sid,serial#;殺掉不正常的鎖??。? 鎖類型經常獲取的一些鎖類型如下
    – TM 表鎖提供幾個表上的并發訪問
    – TX 事務處理鎖或行鎖提供并發訪問行
    – MR 介質恢復鎖表明數據庫文件是聯機的
    – ST?空間事務處理鎖表明由于優化不良的數據庫中的區正在增長或收
    SMON?正在合并相鄰的空閑區

    總結

    以上是生活随笔為你收集整理的常见的ORACLE锁模式汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。