• <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

            亚洲国产精品成人AV无码久久综合影院| 久久久一本精品99久久精品66 | 72种姿势欧美久久久久大黄蕉| 久久精品国产只有精品66| a高清免费毛片久久| 成人精品一区二区久久| 久久久久久精品免费看SSS| 久久久久亚洲Av无码专| 久久精品无码专区免费 | 奇米综合四色77777久久| 国产精品美女久久久久久2018| 日韩久久无码免费毛片软件| 久久精品国产久精国产思思| 国产三级精品久久| 久久久精品国产sm调教网站 | 精品久久久久中文字幕日本| 色综合色天天久久婷婷基地| 久久久久亚洲av综合波多野结衣| 国产精品综合久久第一页| 久久精品国产久精国产果冻传媒| 久久久久亚洲av毛片大| AA级片免费看视频久久| 久久亚洲精品无码AV红樱桃| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 久久人妻少妇嫩草AV无码专区| 久久久久久久国产免费看| 精品久久久久久无码免费| 久久精品夜夜夜夜夜久久| 中文无码久久精品| 天天影视色香欲综合久久| 久久大香萑太香蕉av| 国产午夜精品理论片久久| 国产高清美女一级a毛片久久w| 久久青草国产精品一区| 国产99久久精品一区二区| 99久久婷婷国产一区二区| 精品久久国产一区二区三区香蕉 | 久久精品国产亚洲av麻豆色欲| 少妇久久久久久久久久| A级毛片无码久久精品免费| 国产aⅴ激情无码久久|