• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            當多個 DB2® 用戶并發地訪問一個數據庫時,鎖等待會導致響應變慢。鎖等待是臨時性的,因而難以捕捉。然而,當出現鎖等待情形時,需要由數據庫管理員負責確定鎖等待的原因。本文通過例子演示如何使用用于 DB2 for Linux®, UNIX®, and Windows® 的 db2pd 和 db2pdcfg 實用程序完成該任務。
            用于鎖監視的 db2pd 選項

            db2pd 是用于監視各種 DB2 數據庫活動以及故障排除的實用程序。它是從 DB2 V8.2 開始隨 DB2 引擎發布的一個獨立的實用程序,其外觀和功能類似于 Informix onstat 實用程序。db2pd 是從命令行以一種可選的交互模式執行的。該實用程序運行得非常快,因為它不需要獲取任何鎖,并且在引擎資源以外運行(這意味著它甚至能在一個掛起的引擎上工作)。通過快照監視還可以收集 db2pd 提供的很多監視器數據,但是 db2pd 和快照監視的輸出格式卻有很大不同。這使 DBA 可以選擇更符合用戶需求的監視替代方法。本文關注用于鎖監視的 db2pd 選項。有一篇由 Sam Poon 撰寫的 developerWorks 文章(參見 參考資料 小節)對 db2pd 的監視功能作了更廣泛的介紹。

            下面的圖展示了用于鎖監視的 db2pd 選項:


            圖 1. 用于鎖監視的 db2pd 選項
             

            TranHdl:用于指定事務句柄,以便只監視由特定事務持有的鎖。
            showlocks:這個子選項將鎖名稱擴展成有意義的解釋。對于一個行鎖,該選項顯示以下信息:表空間 ID、表 ID、分區 ID、頁和槽。通過使用編目視圖 SYSCAT.TABLES 上的一個查詢,很容易將表空間 ID 和表 ID 映射到相應的表名:

            清單 1. 將表空間 ID、表 ID 映射到表模式、表名
                                    SELECT TABSCHEMA, TABNAMEFROM SYSCAT.TABLESWHERE TBSPACEID = tbspaceid AND TABLEID = tableid          


            wait:如果指定 wait 子選項,則 db2pd 只顯示事務當前正在等待的鎖,以及對等待情形負責的鎖。這個子選項大大簡化了鎖等待分析,因為它將輸出限制為參與鎖等待情形的鎖。
            db2pd database 和 file 選項不是特定于鎖監視的,但是適用于(幾乎)所有 db2pd 調用。database 選項將 db2pd 返回的監視器數據限制為某個數據庫的監視器數據。而 file 選項則允許定義一個文件,以便將 db2pd 輸出寫到該文件。
            鎖等待分析場景

            接下來,我們開始使用前面介紹的 db2pd 選項來分析一個示例鎖等待情形。為此,我們創建 DB2 SAMPLE 數據庫:


            清單 2. 創建 SAMPLE 數據庫
                            db2sampl      


            用戶 A 執行事務 A,以根據每個經理的薪水為他們提供 10% 的獎金:


            清單 3. 事務 A 執行的更新操作
                            UPDATE EMPLOYEESET BONUS = SALARY * 0.1WHERE JOB = 'MANAGER'      


            當事務 A 仍然在運行(因為用戶 A 還沒有使用 COMMIT 或 ROLLBACK 終止該事務)時,用戶 B 執行事務 B,以將每個雇員的薪水提高 2%:


            清單 4. 事務 B 執行的更新操作
                            UPDATE EMPLOYEESET SALARY = SALARY * 0.02      


            由于事務 B 沒有完成,用戶 B 請求 DBA 確定問題的原因。于是,DBA 調用 db2pd,看是否存在鎖等待情形:


            清單 5. 檢查鎖等待情形
                            db2pd -db sample -locks wait showlocksDatabase Partition 0 -- Database SAMPLE -- Active -- Up 3 days 08:33:05Locks:Address    TranHdl    Lockname                   Type       Mode Sts Owner      Dur 0x050A0240 6          02000600050040010000000052 Row        ..X  W   2          1   0x050A0DB0 2          02000600050040010000000052 Row        ..X  G   2          1   HoldCount  Att  ReleaseFlg0          0x00 0x40000000   TbspaceID 2  TableID 6  PartitionID 0 Page 320 Slot 50          0x00 0x40000000   TbspaceID 2  TableID 6  PartitionID 0 Page 320 Slot 5      


            db2pd 報告 ID 為 2 的表空間中一個 ID 為 6 的表上有一個行鎖存在鎖等待情形。通過檢查 SYSCAT.TABLES,DBA 斷定表 EMPLOYEE 上的確存在鎖等待。


            清單 6. 確定鎖等待情形所涉及的表

             

             

            本文轉自IBM Developerworks中國

             

            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/ibmjournal/archive/2008/10/07/3028834.aspx

            99久久精品免费| 精品久久久无码21p发布| 久久青青草原综合伊人| 国内精品伊人久久久久影院对白| 国产精品嫩草影院久久| 人妻无码αv中文字幕久久琪琪布| 亚洲精品无码专区久久久| 久久ww精品w免费人成| 久久亚洲色一区二区三区| 一本久久a久久精品亚洲| 国产精品免费久久久久影院| 久久伊人精品一区二区三区| 亚洲国产精品久久66| 国产亚洲精久久久久久无码77777| 国产精品99久久99久久久| 亚洲伊人久久综合中文成人网| 成人久久久观看免费毛片| 久久久久久久综合日本| 国产日产久久高清欧美一区| 久久综合色老色| 蜜臀久久99精品久久久久久| 国产精品国色综合久久| 亚洲色大成网站www久久九| 天天做夜夜做久久做狠狠| 青青青青久久精品国产| 国产婷婷成人久久Av免费高清| 超级碰碰碰碰97久久久久| 免费一级欧美大片久久网| 亚洲国产成人久久精品影视| 久久精品人人做人人爽电影蜜月 | 人妻精品久久无码专区精东影业| 色欲综合久久躁天天躁| 韩国三级中文字幕hd久久精品| 国产精品久久久天天影视| 99999久久久久久亚洲| 久久99国产综合精品免费| 久久午夜羞羞影院免费观看| 色综合久久无码五十路人妻| 午夜精品久久久久久毛片| 久久久国产乱子伦精品作者| 久久久一本精品99久久精品66|