<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-200  評(píng)論-148  文章-15  trackbacks-0

    轉(zhuǎn)自:http://blog.163.com/yiyun_8/blog/static/100336422201031505832337/

    nowait的含義很多人都會(huì)誤解為“不用等待,立即執(zhí)行”。但實(shí)際上該關(guān)鍵字的含義是“不用等待,立即返回”
    如果當(dāng)前請(qǐng)求的資源被其他會(huì)話鎖定時(shí),會(huì)發(fā)生阻塞,nowait可以避免這一阻塞,因?yàn)?br /> If another user is in the process of modifying that row, we will get an ORA‐00054
    Resource Busy error. We are blocked and must wait for the other user to finish with
    it.
    可以實(shí)驗(yàn)下,我用pl/sql developer鎖定表game
    SQL> select * from game where game_id =1;
    返回一條記錄
     

    SQL> select * from game where game_id=1 for update nowait;
    select * from game where game_id=1 for update nowait
                 *
    ERROR位于第1行:
    ORA-00054:資源正忙,要求指定NOWAIT
    使用NOWAIT關(guān)鍵字,會(huì)報(bào)ORA‐00054的錯(cuò)誤
     

    如何來(lái)查看是什么資源造成這樣的情況呢?并且怎么解決呢?
    查看鎖定的對(duì)象,用戶和會(huì)話
    SQL> select lo.oracle_username,do.object_name,s.logon_time,lo.process,s.sid as s
    ession_id
     2 from v$locked_object lo,v$session s,dba_objects do
     3 where lo.session_id = s.sid and do.object_id = lo.OBJECT_ID
     4 /
    ORACLE_USERNAME
    ------------------------------
    OBJECT_NAME
    --------------------------------------------------------------------------------
     

    LOGON_TIME         PROCESS     SESSION_ID
    ------------------- ------------ ----------
    NBA---用戶名稱(chēng)
    GAME---操作的對(duì)象
    2009-08-04 10:55:15---登錄的時(shí)間     840:5176   10
     

    使用as sysdba
    根據(jù)sid查看具體的sql語(yǔ)句
    selectsql_textfromv$session a,v$sqltext_with_newlines b
    whereDECODE(a.sql_hash_value,0, prev_hash_value, sql_hash_value)=b.hash_value
     anda.sid=10;
    begin :id := sys.dbms_transaction.local_transaction_id; end;
     

    kill session
    SQL> select sid,serial# from v$session where sid =10;
     

          SID   SERIAL#
    ---------- ----------
           10        23
    SQL> alter system kill session '10,23';
     

    系統(tǒng)已更改。
     

    select * from game where game_id=1 for update nowait;
    有數(shù)據(jù)返回了

    當(dāng)兩個(gè)用戶同時(shí)更新同一條記錄是, 使用select for update,后執(zhí)行者,會(huì)被阻塞,而使用select for update  nowait 則會(huì)拋出:ORA-00054 resource busy and acquire with NOWAIT specified 異常,告之用戶這一行已經(jīng)鎖定。

    posted on 2010-11-05 15:42 無(wú)聲 閱讀(7863) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 職場(chǎng)生活
    主站蜘蛛池模板: 久久亚洲国产精品123区| 国产免费A∨在线播放| 黄在线观看www免费看| 亚洲大片在线观看| 两个人看www免费视频| 久久九九亚洲精品| 成人黄网站片免费视频| 国产V亚洲V天堂无码久久久| baoyu116.永久免费视频| 亚洲AV午夜福利精品一区二区| 国产免费网站看v片在线| 久久久久久亚洲精品| 久久免费看少妇高潮V片特黄| 亚洲av无码一区二区乱子伦as| 暖暖免费在线中文日本| 亚洲黄色在线观看视频| 亚洲精品在线免费观看视频| 亚洲欧洲日产国码在线观看| 五月婷婷综合免费| 亚洲heyzo专区无码综合| 免费乱码中文字幕网站| 精品免费久久久久国产一区| 亚洲国产精品尤物YW在线观看| 两性色午夜视频免费播放| 亚洲成a人片在线观看中文动漫| 亚洲人成免费电影| 亚洲成熟丰满熟妇高潮XXXXX| 久久影院亚洲一区| 18女人水真多免费高清毛片| 亚洲美女视频一区二区三区| 日韩一区二区三区免费体验| 任你躁在线精品免费| 亚洲人成片在线观看| 免费在线黄色网址| 日韩免费高清大片在线| 亚洲精品无码专区在线| 亚洲午夜福利717| 欧美好看的免费电影在线观看| 一级毛片高清免费播放| 亚洲无线码一区二区三区| 亚洲av日韩av天堂影片精品|