• <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久久国产宗和精品1上映| 伊人久久大香线焦AV综合影院| 一本大道久久香蕉成人网| 久久久久亚洲AV无码去区首| 久久青青草原精品国产软件| 久久久久久亚洲精品无码| 色偷偷88欧美精品久久久| 久久午夜福利无码1000合集| 亚洲乱码精品久久久久..| 成人久久久观看免费毛片| 久久久久国产精品嫩草影院| 久久亚洲国产精品成人AV秋霞| 亚洲国产一成人久久精品| 99久久国产免费福利| 久久人人爽人人爽人人片AV东京热| 久久99国产精品尤物| 久久精品国产福利国产琪琪 | 欧美午夜A∨大片久久| 久久综合给合久久狠狠狠97色| 大香伊人久久精品一区二区| 麻豆成人久久精品二区三区免费| 国产农村妇女毛片精品久久| 国产成人精品久久| 国产激情久久久久影院| 色综合久久无码中文字幕| 精品久久久久久无码国产| 久久天天躁狠狠躁夜夜avapp | 久久综合久久伊人| 久久综合给合久久狠狠狠97色 | 久久国产亚洲精品无码| 久久久久久A亚洲欧洲AV冫| 午夜精品久久久久久久久| 久久国产福利免费| 精品国产福利久久久| 久久国产精品成人影院| 美女久久久久久| 激情五月综合综合久久69| 欧美精品一区二区精品久久 | 99久久99久久精品国产| 国产韩国精品一区二区三区久久|