无码视频在线观看,99人妻,国产午夜视频,久久久久国产一级毛片高清版新婚

  • 始創(chuàng)于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
    • 掛牌上市企業(yè)
    • 60秒人工響應(yīng)
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補(bǔ)償
    全部產(chǎn)品
    您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

    Oracle 10g 讀書筆記之鎖

    發(fā)布時(shí)間:  2012/8/29 17:11:18

    鎖機(jī)制用于管理對(duì)共享資源的并發(fā)訪問。

    在 Oracle 中,事務(wù)應(yīng)該延遲到適當(dāng)?shù)臅r(shí)刻提交,因?yàn)槭聞?wù)很長或很大,一般不會(huì)對(duì)系統(tǒng)有壓力;行級(jí)鎖沒有相關(guān)的開銷,1個(gè)行鎖還是1000000個(gè)行鎖專用于鎖定這個(gè)信息的“資源”數(shù)都是一樣的;

    不要以為鎖升級(jí)“對(duì)系統(tǒng)更好”(例如使用表鎖而不是行鎖),Oracle 中鎖升級(jí)對(duì)系統(tǒng)沒有任何好處,不會(huì)節(jié)省任何資源;可以同時(shí)得到并發(fā)性和一致性,數(shù)據(jù)讀取器不會(huì)被寫入器阻塞。
    -
     

    使用 ORA_ROWSCN 的樂觀鎖定:

    ORA_ROWSCN 建立在內(nèi)部 Oracle 系統(tǒng)時(shí)鐘(SCN)基礎(chǔ)上。在 oracle 中,每次提交時(shí),SCN 都會(huì)推進(jìn)。除非創(chuàng)建表時(shí)支持在行級(jí)維護(hù) ORA_ROWSCN ,否則 oracle 會(huì)在塊級(jí)維護(hù)。

    創(chuàng)建表時(shí)啟用 ROWDEPENDENCIES,也可以使用 DBMS_REDEFINITION 中的在線重建功能。

    查詢語句:select id, dbms_rowid.rowid_block_number(rowid) blockno, ora_rowscn from table

    執(zhí)行 INSERT、UPDATE、DELETE、MERGE 和 SELECT FOR UPDATE 時(shí)會(huì)阻塞,最后一個(gè)增加 NOWAIT 就不會(huì)阻塞。

    Oracle 從來不會(huì)鎖升級(jí),但它會(huì)執(zhí)行鎖轉(zhuǎn)換或鎖提升。主要有三類鎖:

    1、DML 鎖:用于確保一次只有一個(gè)人能修改某一行,而且你正在處理一個(gè)表時(shí)別人不能刪除這個(gè)表。

    a、TX鎖(事務(wù)鎖):事務(wù)發(fā)起第一個(gè)修改時(shí)會(huì)得到TX鎖,而且會(huì)一直持有這個(gè)鎖,直至事務(wù)執(zhí)行提交或回滾。

    oralce 并沒有一個(gè)傳統(tǒng)的鎖管理器,不會(huì)用鎖管理器為系統(tǒng)中鎖定的每一行維護(hù)一個(gè)長長的列表。它只是簡單找到想鎖定的那一行并鎖定它。

    在待鎖定的行所在的數(shù)據(jù)塊的最前面有一個(gè)“開銷”空間,這里會(huì)存放該塊的一個(gè)事務(wù)表,大小由創(chuàng)建對(duì)象時(shí) CREATE 語句的兩個(gè)參數(shù)決定:

    INITTRANS:初始的預(yù)分配大小,對(duì)于索引和表,默認(rèn)為2。在頻繁修改的表上增加該值,同時(shí) PCTFREE 值也需要相應(yīng)的增加。

    MAXTRANS:可以擴(kuò)展到的最大值,默認(rèn)為 255,即該塊最大的并發(fā)事務(wù)數(shù)。Oracle 10g 該參數(shù)已經(jīng)不再使用。

    b、TM 鎖:用于確保在修改表的內(nèi)容時(shí),表的結(jié)構(gòu)不會(huì)改變。

    每個(gè)事務(wù)只能得到一個(gè) TX 鎖,但修改多少個(gè)對(duì)象,就能得到多少個(gè) TM 鎖。并且鎖的總數(shù)可以通過 DML_LOCKS 參數(shù)定義。

    如果參數(shù)設(shè)置為 0,則不允許 DDL。通過 ALTER TABLE TABLENAME DISABLE TABLE LOCK 命令,逐個(gè)禁用 TM 鎖。

    2、DDL 鎖:在 DDL 操作中會(huì)自動(dòng)為對(duì)象加 DDL 鎖,從而保護(hù)這些對(duì)象不會(huì)被其他會(huì)話所修改。

    a、排他鎖:防止其它會(huì)話得到它們自己的 DDL 鎖或 TM 鎖。這說明 DDL 操作期間可以查詢表,但無法修改。

    大多數(shù) DDL 都帶有一個(gè)排他 DDL 鎖。例如 alter table t add new_column date;

    例外:create index t_idx on t(x) online,它只會(huì)試圖得到表上的一個(gè)低級(jí)(mode 2)TM鎖,所以在 DDL 語句執(zhí)行期間對(duì)表所做的修改維護(hù)一個(gè)記錄,執(zhí)行 CREATE 時(shí)再把這些修改應(yīng)用至新的索引。

    b、共享鎖:保護(hù)所引用對(duì)象的結(jié)構(gòu),使之不會(huì)其他會(huì)話修改,但是允許修改數(shù)據(jù)。在創(chuàng)建存儲(chǔ)的編譯對(duì)象(如過程或視圖)時(shí),會(huì)對(duì)依賴的對(duì)象加這種共享 DDL 鎖。

    c、可中斷解析鎖:允許一個(gè)對(duì)象向另外某個(gè)對(duì)象注冊(cè)其依賴性。當(dāng)某會(huì)話解析一條語句時(shí),對(duì)該語句引用的每一個(gè)對(duì)象都會(huì)加一個(gè)解析鎖。目的是如果引用對(duì)象被修改,則將緩存的語句置為無效。

    利用視圖 DBA_DLL_LOCKS 查看該信息。視圖腳本:[Oracle_HOME]/RDBMS/ADMIN\/catblock.sql

    3、內(nèi)部鎖和閂:閂是輕量級(jí)的串行化設(shè)備,用于協(xié)調(diào)對(duì)共享數(shù)據(jù)結(jié)構(gòu)、對(duì)象和文件的多用戶訪問。設(shè)計(jì)為只保持極短的一段時(shí)間。使用諸如“測試和設(shè)置”以及“比較及交換”之類的原子指令來處理閂。

    由于設(shè)置和釋放閂的指令是原子性的,盡管可能有多個(gè)進(jìn)程在同時(shí)請(qǐng)求它,但操作系統(tǒng)本身可以保證只有一個(gè)進(jìn)程能測試和設(shè)置閂。


    本文出自:億恩科技【mszdt.com】

    服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      1
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線