現在 S U X S ○ ○ × U ○ × × X × × × DB2のパフォーマンス問題判別のページ セクション5が、Locking - lock waits, timeouts, escalations and deadlocksに手順がのっている。 http://www-3.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/tutorial_performance.d2w/sec5sub3 今回はログイン時のselect文 SELECT US1.KNJ_FST_NM,US1.KNJ_LST_NM,US1.KANA_NM,US1.SYAIN_KBN,US1.CMP_CD,US1.CMP_NM,US1.SGY_TYP,US1.SYUKO_SAKI_NM,US1.MAIL_ADDR,US1.KNM_FLG,US2.KNM_NO,US1.PRE_LOGIN_DTE,US2.TEN_CD,US2.KAS_CD,US2.SSK_KNR_CD,US2.TEN_KNJ_NM,US2.BU_KNJ_NM,US2.GRP_KNJ_NM,US2.YAKU_CD,US2.YAKU_NM FROM N5TSA0001 US1,N5TSA0002 US2 WHERE US1.USR_ID = 'T9900002' AND US1.STR_YMD <= DATE('2003-06-25') AND US1.END_YMD >= DATE('2003-06-25') AND US1.SSK_KBN = '0' AND US2.KNM_NO = '0' AND US1.USR_ID = US2.USR_ID AND US1.STR_YMD = US2.STR_YMD 単発のupdate文 UPDATE N5TSA0001 SET PRE_LOGIN_DTE = '20030625114345' WHERE USR_ID = 'T9900002' AND STR_YMD <= '2003-06-25' AND END_YMD >= '2003-06-25' 結局 2003-06-26 *15:47:53,378 *ZEUS2 *mynode *34544596 * *[N] *SELECT US1.KNJ_FST_NM,US1.KNJ_LST_NM, US1.KANA_NM,US1.SYAIN_KBN,US1.CMP_CD,US1.CMP_NM,US1.SGY_TYP,US1.SYUKO_SAKI_NM,US1.MAIL_ADDR,US1 .KNM_FLG,US2.KNM_NO,US1.PRE_LOGIN_DTE,US2.TEN_CD,US2.KAS_CD,US2.SSK_KNR_CD,US2.TEN_KNJ_NM,US2.B U_KNJ_NM,US2.GRP_KNJ_NM,US2.YAKU_CD,US2.YAKU_NM FROM N5TSA0001 US1,N5TSA0002 US2 WHERE US1.USR_ ID = 'T2222222' AND US1.STR_YMD <= DATE('2003-06-26') AND US1.END_YMD >= DATE('2003-06-26') AND US1.SSK_KBN = '0' AND US2.KNM_NO = '0' AND US1.USR_ID = US2.USR_ID AND US1.STR_YMD = US2.STR_Y MD WITH UR 2003-06-26 *15:47:53,386 *ZEUS2 *mynode *34544596 * *[N] *SELECT DB_JYOSU_CD,DB_KBT_CD,DB_KUMI_ SU,DB_FROM_YMD_DTE,DB_TO_YMD_DTE,DB_TRK_YMD_DTE,DB_UPD_TS,DB_UPD_CNT_SU,DB_UPD_USER_CD,DB_UKO_I TM_SU,DB_DATA_1_ITM,DB_DATA_2_ITM,DB_DATA_3_ITM,DB_DATA_4_ITM,DB_DATA_5_ITM,DB_DATA_6_ITM,DB_DA TA_7_ITM,DB_DATA_8_ITM,DB_DATA_9_ITM,DB_DATA_10_ITM,DB_DATA_11_ITM,DB_DATA_12_ITM,DB_DATA_13_IT M,DB_DATA_14_ITM,DB_DATA_15_ITM FROM N5TZJYOSU WHERE DB_JYOSU_CD = '5S03' AND DB_KBT_CD = '5215 231' AND DB_KUMI_SU = 0 AND DB_FROM_YMD_DTE <= '20030626' AND DB_TO_YMD_DTE >= '20030626' 2003-06-26 *15:47:53,391 *ZEUS2 *mynode *34544596 * *[N] * SELECT STR_YMD FROM N5TSA0001 WHER E USR_ID = 'T2222222' AND STR_YMD <= '2003-06-26' AND END_YMD >= '2003-06-26' FOR UPDATE WITH R S 2003-06-26 *15:47:53,395 *ZEUS2 *mynode *34544596 * *[N] *UPDATE N5TSA0001 SET PRE_LOGIN_DTE = '20030626154753' WHERE USR_ID = 'T2222222' AND STR_YMD = '2003-01-01' SELECT WITH URでダーティリード SELECT FOR UPDATE UPDATE で回避したらしい。 db2のコマンドプロセッサーで UPDATE N5TSA0001 WHERE USR_ID = 'T9900002' を行って 別のウィンドウで SELECT .. WHERE US1.USR_ID = 'T9900002' 文を実行すると 次のSELECT文はUPDATEのウィンドウがコミットするまで 待たされる。 そのときのロックを表示すると UPDATEが行にXロックを取得していて SELECTがその行にNSロックを要求して止まっているのがわかる。 @今のモニタースイッチを表示する db2 => get monitor switches モニター記録スイッチ DB (データベース) パーティション番号のスイッチ・リスト 0 バッファー・プール活動情報 (BUFFERPOOL) = OFF ロック情報 (LOCK) = OFF ソート情報 (SORT) = OFF SQL ステートメント情報 (STATEMENT) = OFF 表活動情報 (TABLE) = OFF タイム・スタンプ情報を取る (TIMESTAMP) = ON 05/27/2003 15:1 6:45.014348 作業単位情報 (UOW) = OFF @ロックのモニターをオンにする。 db2 => update monitor switches using lock on DB20000I UPDATE MONITOR SWITCHES コマンドが正常に終了しました。 @ステートメントのモニターをオンにする。 db2 => update monitor switches using statement on DB20000I UPDATE MONITOR SWITCHES コマンドが正常に終了しました。 @表のモニターをオンにする。 db2 => update monitor switches using table on DB20000I UPDATE MONITOR SWITCHES コマンドが正常に終了しました。 db2 => get snapshot for applications on zeus2_07 アプリケーション・スナップショット アプリケーション・ハンドル = 4 アプリケーション状況 = 接続完了 状況変更時刻 = 収集されませんでし た アプリケーション・コード・ページ = 943 アプリケーション国 / 領域別コード = 0 DUOW 相関トークン = GA656D74.OE06.00B4C 6012421 アプリケーション名 = db2bp.exe アプリケーション ID = GA656D74.OE06.00B4C 6012421 シーケンス番号 = 0001 TP モニター・クライアント・ユーザー ID = TP モニター・クライアント・ワークステーション名 = TP モニター・クライアント・アプリケーション名 = TP モニター・クライアント・アカウンティング・ストリング = 接続要求開始タイム・スタンプ = 06/26/2003 10:20:58 .022126 接続要求完了タイム・スタンプ = 06/26/2003 10:20:58 .022263 アプリケーション・アイドル時間 = 0 許可 ID = SCS クライアント・ログイン ID = U99916AM クライアント構成名 = クライアント・データベース・マネージャー製品 ID = SQL08010 クライアント・アプリケーションの処理 ID = 1512 クライアント・アプリケーションのプラットフォーム = NT クライアントの通信プロトコル = TCP/IP インバウンド通信アドレス = 10.101.109.116 3635 8 データベース名 = ZEUS2_07 データベース・パス = D:\DB2\NODE0000\SQL 00010\ クライアント・データベース別名 = ZEUS2_07 入力データベース別名 = ZEUS2_07 最後のリセット・タイム・スタンプ = スナップショット・タイム・スタンプ = 06/26/2003 10:21:05 .156770 認可された最高権限レベル = 直接 DBADM 権限 直接 CREATETAB 権限 直接 BINDADD 権限 直接 CONNECT 権限 直接 CREATE_NOT_FENC 権限 直接 LOAD 権限 直接 IMPLICIT_SCHEMA 権限 間接 SYSADM 権限 間接 SYSCTRL 権限 間接 SYSMAINT 権限 間接 CREATETAB 権限 間接 BINDADD 権限 間接 CONNECT 権限 間接 IMPLICIT_SCHEMA 権限 調整データベース・パーティション番号 = 0 現行データベース・パーティション番号 = 0 コーディネーター・エージェント・プロセスまたはスレッド ID = 2012 エージェント・スチール = 0 ロック上で待機するエージェント = 0 最大関連エージェント = 1 アプリケーション・エージェント作業の優先順位 = 0 優先順位タイプ = 動的 アプリケーションで保留されたロック = 0 接続からのロック待機 = 0 ロック上で待機している時間アプリケーション (ms) = 0 デッドロック検出 = 0 ロック・エスカレーション = 0 排他ロック・エスカレーション = 0 接続後のロック・タイムアウト数 = 0 ロック上で待機している合計時間 UOW (ms) = 収集されませんでし た ソートの合計 = 0 ソート時間の合計 (ms) = 収集されませんでし た 合計ソート・オーバーフロー = 0 拡張ストレージにコピーされたデータ・ページ = 収集されませんでし た 拡張ストレージにコピーされた索引ページ = 収集されませんでし た 拡張ストレージからコピーされたデータ・ページ = 収集されませんでし た 拡張ストレージからコピーされた索引ページ = 収集されませんでし た バッファー・プール・データ論理読み取り = 収集されませんでし た バッファー・プール・データ物理読み取り = 収集されませんでし た バッファー・プール・データ書き込み = 収集されませんでし た バッファー・プール索引論理読み取り = 収集されませんでし た バッファー・プール索引物理読み取り = 収集されませんでし た バッファー・プール索引書き込み = 収集されませんでし た バッファー・プール読み取り時間の合計 (ms) = 収集されませんでし た バッファー・プール書き込み時間の合計 (ms) = 収集されませんでし た プリフェッチ待機時間 (ms) = 収集されませんでし た 直接読み取り = 収集されませんでし た 直接読み取り = 収集されませんでし た 直接書き込み = 収集されませんでし た 直接読み取り要求 = 収集されませんでし た 直接書き込み要求 = 収集されませんでし た 直接読み取り経過時間 (ms) = 収集されませんでし た 直接書き込み経過時間 (ms) = 収集されませんでし た 最終コミット後の SQL 要求数 = 0 コミット・ステートメント = 0 ロールバック・ステートメント = 0 動的 SQL ステートメント試行 = 0 静的 SQL ステートメント試行 = 0 失敗したステートメント操作 = 0 Select SQL ステートメント実行 = 0 Update/Insert/Delete ステートメント実行 = 0 DDL ステートメント実行 = 0 内部自動再バインド = 0 内部行削除 = 0 内部挿入行 = 0 内部行更新 = 0 内部コミット = 1 内部ロールバック = 0 デッドロックによる内部ロールバック = 0 バインド / プリコンパイル試行 = 0 削除行数 = 0 挿入行数 = 0 更新行数 = 0 選択行数 = 0 読み取り行数 = 0 書き込み行数 = 0 UOW 使用ログ・スペース (バイト) = 収集されませんでし た 直前の UOW 完了タイム・スタンプ = 収集されませんでし た 最後に完了した uow の経過時間 (sec.ms) = 収集されませんで した UOW 開始タイム・スタンプ = 収集されませんでし た UOW 停止タイム・スタンプ = 収集されませんでし た UOW 完了状況 = 収集されませんでし た オープン・リモート・カーソル = 0 ブロッキングによるオープン・リモート・カーソル = 0 拒否されたブロック・リモート・カーソル要求 = 0 受け入れられたブロック・リモート・カーソル要求 = 0 オープン・ローカル・カーソル = 0 ブロッキングによるオープン・ローカル・カーソル = 0 エージェントによって使用される合計ユーザー CPU 時間 (s) = 0.000000 エージェントによって使用される合計システム CPU 時間 (s) = 0.000000 ホスト実行経過時間 = 0.000000 パッケージ・キャッシュ検索 = 0 パッケージ・キャッシュ挿入 = 0 アプリケーション・セクション検索 = 0 アプリケーション・セクション挿入 = 0 カタログ・キャッシュ検索 = 3 カタログ・キャッシュ挿入 = 0 カタログ・キャッシュ・オーバーフロー = 0 カタログ・キャッシュの最高水準点 = 0 @@@@@@@@@@@@@@@ @こっちがSELECTしてる方の情報 ワークスペース情報 共有最高水準点 = 0 共有オーバーフローの合計 = 0 共有セクション挿入の合計 = 0 共有セクション・ルックアップの合計 = 0 専用最高水準点 = 0 専用オーバーフローの合計 = 0 専用セクション挿入の合計 = 1 専用セクション・ルックアップの合計 = 4 最新の操作 = フェッチ カーソル名 = SQLCUR201 最新の操作開始タイム・スタンプ = 06/26/2003 10:20:27 .605401 最新の操作停止タイム・スタンプ = アプリケーションに関連したエージェント = 1 ハッシュ結合数 = 0 ハッシュ・ループ数 = 0 ハッシュ結合オーバーフロー数 = 0 短精度ハッシュ結合オーバーフロー数 = 0 ステートメント・タイプ = 動的 SQL ステ ートメント ステートメント = フェッチ セクション数 = 201 アプリケーション作成者 = NULLID パッケージ名 = SQLC2E03 整合性トークン = AAAAAJHR パッケージ・バージョン ID = カーソル名 = SQLCUR201 ステートメント・データベース・パーティション番号 = 0 ステートメント開始タイム・スタンプ = 06/26/2003 10: 20:27.605401 ステートメント停止タイム・スタンプ = 最後に完了した stmt の経過時間 (sec.ms) = 0.000032 合計ユーザー CPU 時間 = 0.000000 合計システム CPU 時間 = 0.000000 timeron 時の SQL コンパイラー・コスト見積もり = 31 SQL コンパイラー・カーディナリティー見積もり = 1 要求された並列処理の度合い = 1 ステートメント上で作動しているエージェント数 = 1 ステートメント用に作成されたサブエージェントの数 = 1 ステートメント・ソート = 0 合計ソート時間 = 0 ソート・オーバーフロー = 0 読み取り行数 = 1 書き込み行数 = 0 削除行数 = 0 更新行数 = 0 挿入行数 = 0 フェッチ行数 = 0 ブロック・カーソル = NO 動的 SQL ステートメント・テキスト : SELECT US1.KNJ_FST_NM,US1.KNJ_LST_NM,US1.KANA_NM,US1.SYAIN_KBN,US1.CMP_CD,US1.CM P_NM,US1.SGY_TYP,US1.SYUKO_SAKI_NM,US1.MAIL_ADDR,US1.KNM_FLG,US2.KNM_NO,US1.PRE_ LOGIN_DTE,US2.TEN_CD,US2.KAS_CD,US2.SSK_KNR_CD,US2.TEN_KNJ_NM,US2.BU_KNJ_NM,US2. GRP_KNJ_NM,US2.YAKU_CD,US2.YAKU_NM FROM N5TSA0001 US1,N5TSA0002 US2 WHERE US1.US R_ID = 'T9900002' AND US1.STR_YMD <= DATE('2003-06-25') AND US1.END_YMD >= DATE( '2003-06-25') AND US1.SSK_KBN = '0' AND US2.KNM_NO = '0' AND US1.USR_ID = US2.US R_ID AND US1.STR_YMD = US2.STR_YMD エージェント処理/スレッド ID = 3000 アプリケーションのメモリー使用量: ロック待ちのサブセクション = 0 ロック保留中エージェント ID = 331 ロック保留中のアプリケーション ID = GA656DF1.KD04.00E10 6003237 ロック名 = 0x02000400128700000 000000052 ロック属性 = 0x00000000 リリース・フラグ = 0x00000008 ロック・オブジェクト・タイプ = 行 ロック・モード = 排他ロック (X) 要求ロック・モード = 次キー共有 (NS) ロック保留中の表スペース名 = USERSPACE1 ロック保留中の表スキーマ = SCS ロック保留中の表名 = N5TSA0001 ロック待機開始タイム・スタンプ = 06/26/2003 10:20:27 .605932 アプリケーション・スナップショット アプリケーション・ハンドル = 331 アプリケーション状況 = UOW 待機中 状況変更時刻 = 収集されませんでし た アプリケーション・コード・ページ = 943 アプリケーション国 / 領域別コード = 81 DUOW 相関トークン = GA656DF1.KD04.00E10 6003237 アプリケーション名 = db2bp.exe アプリケーション ID = GA656DF1.KD04.00E10 6003237 シーケンス番号 = 0003 TP モニター・クライアント・ユーザー ID = TP モニター・クライアント・ワークステーション名 = TP モニター・クライアント・アプリケーション名 = TP モニター・クライアント・アカウンティング・ストリング = 接続要求開始タイム・スタンプ = 06/26/2003 09:37:29 .146780 接続要求完了タイム・スタンプ = 06/26/2003 09:37:29 .146918 アプリケーション・アイドル時間 = 42 許可 ID = SCS クライアント・ログイン ID = UGYA クライアント構成名 = クライアント・データベース・マネージャー製品 ID = SQL08010 クライアント・アプリケーションの処理 ID = 2044 クライアント・アプリケーションのプラットフォーム = NT クライアントの通信プロトコル = TCP/IP インバウンド通信アドレス = 10.101.109.241 1971 6 データベース名 = ZEUS2_07 データベース・パス = D:\DB2\NODE0000\SQL 00010\ クライアント・データベース別名 = ZEUS2_07 入力データベース別名 = ZEUS2_07 最後のリセット・タイム・スタンプ = スナップショット・タイム・スタンプ = 06/26/2003 10:21:05 .156770 認可された最高権限レベル = 直接 DBADM 権限 直接 CREATETAB 権限 直接 BINDADD 権限 直接 CONNECT 権限 直接 CREATE_NOT_FENC 権限 直接 LOAD 権限 直接 IMPLICIT_SCHEMA 権限 間接 SYSADM 権限 間接 SYSCTRL 権限 間接 SYSMAINT 権限 間接 CREATETAB 権限 間接 BINDADD 権限 間接 CONNECT 権限 間接 IMPLICIT_SCHEMA 権限 調整データベース・パーティション番号 = 0 現行データベース・パーティション番号 = 0 コーディネーター・エージェント・プロセスまたはスレッド ID = 552 エージェント・スチール = 0 ロック上で待機するエージェント = 0 最大関連エージェント = 1 アプリケーション・エージェント作業の優先順位 = 0 優先順位タイプ = 動的 アプリケーションで保留されたロック = 3 接続からのロック待機 = 0 ロック上で待機している時間アプリケーション (ms) = 0 デッドロック検出 = 0 ロック・エスカレーション = 0 排他ロック・エスカレーション = 0 接続後のロック・タイムアウト数 = 0 ロック上で待機している合計時間 UOW (ms) = 収集されませんでし た ソートの合計 = 0 ソート時間の合計 (ms) = 収集されませんでし た 合計ソート・オーバーフロー = 0 拡張ストレージにコピーされたデータ・ページ = 収集されませんでし た 拡張ストレージにコピーされた索引ページ = 収集されませんでし た 拡張ストレージからコピーされたデータ・ページ = 収集されませんでし た 拡張ストレージからコピーされた索引ページ = 収集されませんでし た バッファー・プール・データ論理読み取り = 収集されませんでし た バッファー・プール・データ物理読み取り = 収集されませんでし た バッファー・プール・データ書き込み = 収集されませんでし た バッファー・プール索引論理読み取り = 収集されませんでし た バッファー・プール索引物理読み取り = 収集されませんでし た バッファー・プール索引書き込み = 収集されませんでし た バッファー・プール読み取り時間の合計 (ms) = 収集されませんでし た バッファー・プール書き込み時間の合計 (ms) = 収集されませんでし た プリフェッチ待機時間 (ms) = 収集されませんでし た 直接読み取り = 収集されませんでし た 直接読み取り = 収集されませんでし た 直接書き込み = 収集されませんでし た 直接読み取り要求 = 収集されませんでし た 直接書き込み要求 = 収集されませんでし た 直接読み取り経過時間 (ms) = 収集されませんでし た 直接書き込み経過時間 (ms) = 収集されませんでし た 最終コミット後の SQL 要求数 = 5 コミット・ステートメント = 2 ロールバック・ステートメント = 0 動的 SQL ステートメント試行 = 12 静的 SQL ステートメント試行 = 2 失敗したステートメント操作 = 0 Select SQL ステートメント実行 = 2 Update/Insert/Delete ステートメント実行 = 3 DDL ステートメント実行 = 0 内部自動再バインド = 0 内部行削除 = 0 内部挿入行 = 0 内部行更新 = 0 内部コミット = 1 内部ロールバック = 0 デッドロックによる内部ロールバック = 0 バインド / プリコンパイル試行 = 0 削除行数 = 0 挿入行数 = 0 更新行数 = 3 選択行数 = 2 読み取り行数 = 10 書き込み行数 = 1 UOW 使用ログ・スペース (バイト) = 収集されませんでし た 直前の UOW 完了タイム・スタンプ = 収集されませんでし た 最後に完了した uow の経過時間 (sec.ms) = 収集されませんで した UOW 開始タイム・スタンプ = 収集されませんでし た UOW 停止タイム・スタンプ = 収集されませんでし た UOW 完了状況 = 収集されませんでし た オープン・リモート・カーソル = 0 ブロッキングによるオープン・リモート・カーソル = 0 拒否されたブロック・リモート・カーソル要求 = 0 受け入れられたブロック・リモート・カーソル要求 = 2 オープン・ローカル・カーソル = 0 ブロッキングによるオープン・ローカル・カーソル = 0 エージェントによって使用される合計ユーザー CPU 時間 (s) = 0.015625 エージェントによって使用される合計システム CPU 時間 (s) = 0.000000 ホスト実行経過時間 = 0.000154 パッケージ・キャッシュ検索 = 6 パッケージ・キャッシュ挿入 = 2 アプリケーション・セクション検索 = 12 アプリケーション・セクション挿入 = 2 カタログ・キャッシュ検索 = 12 カタログ・キャッシュ挿入 = 0 カタログ・キャッシュ・オーバーフロー = 0 カタログ・キャッシュの最高水準点 = 0 @@@@@@@@@@@@@@ @ここからUPDATEのほうの状況 ワークスペース情報 共有最高水準点 = 0 共有オーバーフローの合計 = 0 共有セクション挿入の合計 = 0 共有セクション・ルックアップの合計 = 0 専用最高水準点 = 0 専用オーバーフローの合計 = 0 専用セクション挿入の合計 = 2 専用セクション・ルックアップの合計 = 5 最新の操作 = 即時に実行 最新の操作開始タイム・スタンプ = 06/26/2003 10:20:23 .974642 最新の操作停止タイム・スタンプ = 06/26/2003 10:20:23 .974796 アプリケーションに関連したエージェント = 1 ハッシュ結合数 = 0 ハッシュ・ループ数 = 0 ハッシュ結合オーバーフロー数 = 0 短精度ハッシュ結合オーバーフロー数 = 0 ステートメント・タイプ = 動的 SQL ステ ートメント ステートメント = 即時に実行 セクション数 = 203 アプリケーション作成者 = NULLID パッケージ名 = SQLC2E03 整合性トークン = AAAAAJHR パッケージ・バージョン ID = カーソル名 = ステートメント・データベース・パーティション番号 = 0 ステートメント開始タイム・スタンプ = 06/26/2003 10: 20:23.974642 ステートメント停止タイム・スタンプ = 06/26/2003 10: 20:23.974796 最後に完了した stmt の経過時間 (sec.ms) = 0.000154 合計ユーザー CPU 時間 = 0.000000 合計システム CPU 時間 = 0.000000 timeron 時の SQL コンパイラー・コスト見積もり = 118 SQL コンパイラー・カーディナリティー見積もり = 2 要求された並列処理の度合い = 1 ステートメント上で作動しているエージェント数 = 0 ステートメント用に作成されたサブエージェントの数 = 1 ステートメント・ソート = 0 合計ソート時間 = 0 ソート・オーバーフロー = 0 読み取り行数 = 2 書き込み行数 = 0 削除行数 = 0 更新行数 = 0 挿入行数 = 0 フェッチ行数 = 0 ブロック・カーソル = NO 動的 SQL ステートメント・テキスト : UPDATE N5TSA0001 SET PRE_LOGIN_DTE = '20030625114345' WHERE USR_ID = 'T9900002' AND STR_YMD <= '2003-06-25' AND END_YMD >= '2003-06-25' アプリケーションのメモリー使用量: アプリケーション・スナップショット アプリケーション・ハンドル = 151 アプリケーション状況 = UOW 待機中 状況変更時刻 = 収集されませんでし た アプリケーション・コード・ページ = 1208 アプリケーション国 / 領域別コード = 81 DUOW 相関トークン = GA656D98.P60C.00FD8 5013654 アプリケーション名 = java.exe アプリケーション ID = GA656D98.P60C.00FD8 5013654 シーケンス番号 = 0210 TP モニター・クライアント・ユーザー ID = TP モニター・クライアント・ワークステーション名 = TP モニター・クライアント・アプリケーション名 = TP モニター・クライアント・アカウンティング・ストリング = 接続要求開始タイム・スタンプ = 06/25/2003 10:40:46 .646740 接続要求完了タイム・スタンプ = 06/25/2003 10:40:46 .646886 アプリケーション・アイドル時間 = 0 許可 ID = SCS クライアント・ログイン ID = ADMINISTRATOR クライアント構成名 = クライアント・データベース・マネージャー製品 ID = SQL08010 クライアント・アプリケーションの処理 ID = 2016 クライアント・アプリケーションのプラットフォーム = NT クライアントの通信プロトコル = TCP/IP インバウンド通信アドレス = 10.101.109.152 3841 2 データベース名 = ZEUS2_07 データベース・パス = D:\DB2\NODE0000\SQL 00010\ クライアント・データベース別名 = ZEUS2_07 入力データベース別名 = ZEUS2_07 最後のリセット・タイム・スタンプ = スナップショット・タイム・スタンプ = 06/26/2003 10:21:05 .156770 認可された最高権限レベル = 直接 DBADM 権限 直接 CREATETAB 権限 直接 BINDADD 権限 直接 CONNECT 権限 直接 CREATE_NOT_FENC 権限 直接 LOAD 権限 直接 IMPLICIT_SCHEMA 権限 間接 SYSADM 権限 間接 SYSCTRL 権限 間接 SYSMAINT 権限 間接 CREATETAB 権限 間接 BINDADD 権限 間接 CONNECT 権限 間接 IMPLICIT_SCHEMA 権限 調整データベース・パーティション番号 = 0 現行データベース・パーティション番号 = 0 コーディネーター・エージェント・プロセスまたはスレッド ID = 3056 エージェント・スチール = 0 ロック上で待機するエージェント = 0 最大関連エージェント = 1 アプリケーション・エージェント作業の優先順位 = 0 優先順位タイプ = 動的 アプリケーションで保留されたロック = 0 接続からのロック待機 = 0 ロック上で待機している時間アプリケーション (ms) = 0 デッドロック検出 = 0 ロック・エスカレーション = 35 排他ロック・エスカレーション = 0 接続後のロック・タイムアウト数 = 0 ロック上で待機している合計時間 UOW (ms) = 収集されませんでし た ソートの合計 = 598 ソート時間の合計 (ms) = 収集されませんでし た 合計ソート・オーバーフロー = 14 拡張ストレージにコピーされたデータ・ページ = 収集されませんでし た 拡張ストレージにコピーされた索引ページ = 収集されませんでし た 拡張ストレージからコピーされたデータ・ページ = 収集されませんでし た 拡張ストレージからコピーされた索引ページ = 収集されませんでし た バッファー・プール・データ論理読み取り = 収集されませんでし た バッファー・プール・データ物理読み取り = 収集されませんでし た バッファー・プール・データ書き込み = 収集されませんでし た バッファー・プール索引論理読み取り = 収集されませんでし た バッファー・プール索引物理読み取り = 収集されませんでし た バッファー・プール索引書き込み = 収集されませんでし た バッファー・プール読み取り時間の合計 (ms) = 収集されませんでし た バッファー・プール書き込み時間の合計 (ms) = 収集されませんでし た プリフェッチ待機時間 (ms) = 収集されませんでし た 直接読み取り = 収集されませんでし た 直接読み取り = 収集されませんでし た 直接書き込み = 収集されませんでし た 直接読み取り要求 = 収集されませんでし た 直接書き込み要求 = 収集されませんでし た 直接読み取り経過時間 (ms) = 収集されませんでし た 直接書き込み経過時間 (ms) = 収集されませんでし た 最終コミット後の SQL 要求数 = 0 コミット・ステートメント = 494 ロールバック・ステートメント = 33 動的 SQL ステートメント試行 = 5826 静的 SQL ステートメント試行 = 527 失敗したステートメント操作 = 27 Select SQL ステートメント実行 = 2875 Update/Insert/Delete ステートメント実行 = 48 DDL ステートメント実行 = 0 内部自動再バインド = 0 内部行削除 = 0 内部挿入行 = 0 内部行更新 = 0 内部コミット = 1 内部ロールバック = 0 デッドロックによる内部ロールバック = 0 バインド / プリコンパイル試行 = 0 削除行数 = 8 挿入行数 = 14 更新行数 = 27 選択行数 = 36068 読み取り行数 = 501020 書き込み行数 = 50760 UOW 使用ログ・スペース (バイト) = 収集されませんでし た 直前の UOW 完了タイム・スタンプ = 収集されませんでし た 最後に完了した uow の経過時間 (sec.ms) = 収集されませんで した UOW 開始タイム・スタンプ = 収集されませんでし た UOW 停止タイム・スタンプ = 収集されませんでし た UOW 完了状況 = 収集されませんでし た オープン・リモート・カーソル = 0 ブロッキングによるオープン・リモート・カーソル = 0 拒否されたブロック・リモート・カーソル要求 = 0 受け入れられたブロック・リモート・カーソル要求 = 2875 オープン・ローカル・カーソル = 0 ブロッキングによるオープン・ローカル・カーソル = 0 エージェントによって使用される合計ユーザー CPU 時間 (s) = 3.984375 エージェントによって使用される合計システム CPU 時間 (s) = 0.687500 ホスト実行経過時間 = 0.000000 パッケージ・キャッシュ検索 = 2951 パッケージ・キャッシュ挿入 = 512 アプリケーション・セクション検索 = 5826 アプリケーション・セクション挿入 = 584 カタログ・キャッシュ検索 = 1394 カタログ・キャッシュ挿入 = 0 カタログ・キャッシュ・オーバーフロー = 0 カタログ・キャッシュの最高水準点 = 0 アプリケーションのメモリー使用量: db2 => ワークスペース情報 共有最高水準点 = 0 共有オーバーフローの合計 = 0 共有セクション挿入の合計 = 0 共有セクション・ルックアップの合計 = 0 専用最高水準点 = 0 専用オーバーフローの合計 = 0 専用セクション挿入の合計 = 3 専用セクション・ルックアップの合計 = 12 最新の操作 = 即時に実行 最新の操作開始タイム・スタンプ = 06/26/2003 10:59:06 .629514 最新の操作停止タイム・スタンプ = アプリケーションに関連したエージェント = 1 ハッシュ結合数 = 0 ハッシュ・ループ数 = 0 ハッシュ結合オーバーフロー数 = 0 短精度ハッシュ結合オーバーフロー数 = 0 ステートメント・タイプ = 動的 SQL ステ ートメント ステートメント = 即時に実行 セクション数 = 203 アプリケーション作成者 = NULLID パッケージ名 = SQLC2E03 整合性トークン = AAAAAJHR パッケージ・バージョン ID = カーソル名 = ステートメント・データベース・パーティション番号 = 0 ステートメント開始タイム・スタンプ = 06/26/2003 10: 59:06.629514 ステートメント停止タイム・スタンプ = 最後に完了した stmt の経過時間 (sec.ms) = 0.000000 合計ユーザー CPU 時間 = 0.000000 合計システム CPU 時間 = 0.000000 timeron 時の SQL コンパイラー・コスト見積もり = 118 SQL コンパイラー・カーディナリティー見積もり = 2 要求された並列処理の度合い = 1 ステートメント上で作動しているエージェント数 = 1 ステートメント用に作成されたサブエージェントの数 = 1 ステートメント・ソート = 0 合計ソート時間 = 0 ソート・オーバーフロー = 0 読み取り行数 = 0 書き込み行数 = 0 削除行数 = 0 更新行数 = 0 挿入行数 = 0 フェッチ行数 = 0 ブロック・カーソル = NO 動的 SQL ステートメント・テキスト : UPDATE N5TSA0001 SET PRE_LOGIN_DTE = '20030625114345' WHERE USR_ID = 'T9900002' AND STR_YMD <= '2003-06-25' AND END_YMD >= '2003-06-25' エージェント処理/スレッド ID = 3000 アプリケーションのメモリー使用量: ロック待ちのサブセクション = 0 ロック保留中エージェント ID = 331 ロック保留中のアプリケーション ID = GA656DF1.KD04.00E10 6003237 ロック名 = 0x02000400128700000 000000052 ロック属性 = 0x00000000 リリース・フラグ = 0x40000000 ロック・オブジェクト・タイプ = 行 ロック・モード = 排他ロック (X) 要求ロック・モード = 更新ロック (U) ロック保留中の表スペース名 = USERSPACE1 ロック保留中の表スキーマ = SCS ロック保留中の表名 = N5TSA0001 ロック待機開始タイム・スタンプ = 06/26/2003 10:59:06 .629738 アプリケーション・スナップショット アプリケーション・ハンドル = 331 アプリケーション状況 = UOW 待機中 状況変更時刻 = 収集されませんでし た アプリケーション・コード・ページ = 943 アプリケーション国 / 領域別コード = 81 DUOW 相関トークン = GA656DF1.KD04.00E10 6003237 アプリケーション名 = db2bp.exe アプリケーション ID = GA656DF1.KD04.00E10 6003237 シーケンス番号 = 000a TP モニター・クライアント・ユーザー ID = TP モニター・クライアント・ワークステーション名 = TP モニター・クライアント・アプリケーション名 = TP モニター・クライアント・アカウンティング・ストリング = 接続要求開始タイム・スタンプ = 06/26/2003 09:37:29 .146780 接続要求完了タイム・スタンプ = 06/26/2003 09:37:29 .146918 アプリケーション・アイドル時間 = 38 許可 ID = SCS クライアント・ログイン ID = UGYA クライアント構成名 = クライアント・データベース・マネージャー製品 ID = SQL08010 クライアント・アプリケーションの処理 ID = 2044 クライアント・アプリケーションのプラットフォーム = NT クライアントの通信プロトコル = TCP/IP インバウンド通信アドレス = 10.101.109.241 1971 6 データベース名 = ZEUS2_07 データベース・パス = D:\DB2\NODE0000\SQL 00010\ クライアント・データベース別名 = ZEUS2_07 入力データベース別名 = ZEUS2_07 最後のリセット・タイム・スタンプ = スナップショット・タイム・スタンプ = 06/26/2003 10:59:41 .458168 認可された最高権限レベル = 直接 DBADM 権限 直接 CREATETAB 権限 直接 BINDADD 権限 直接 CONNECT 権限 直接 CREATE_NOT_FENC 権限 直接 LOAD 権限 直接 IMPLICIT_SCHEMA 権限 間接 SYSADM 権限 間接 SYSCTRL 権限 間接 SYSMAINT 権限 間接 CREATETAB 権限 間接 BINDADD 権限 間接 CONNECT 権限 間接 IMPLICIT_SCHEMA 権限 調整データベース・パーティション番号 = 0 現行データベース・パーティション番号 = 0 コーディネーター・エージェント・プロセスまたはスレッド ID = 552 エージェント・スチール = 0 ロック上で待機するエージェント = 0 最大関連エージェント = 1 アプリケーション・エージェント作業の優先順位 = 0 優先順位タイプ = 動的 アプリケーションで保留されたロック = 3 接続からのロック待機 = 0 ロック上で待機している時間アプリケーション (ms) = 0 デッドロック検出 = 0 ロック・エスカレーション = 0 排他ロック・エスカレーション = 0 接続後のロック・タイムアウト数 = 0 ロック上で待機している合計時間 UOW (ms) = 収集されませんでし た ソートの合計 = 0 ソート時間の合計 (ms) = 収集されませんでし た 合計ソート・オーバーフロー = 0 拡張ストレージにコピーされたデータ・ページ = 収集されませんでし た 拡張ストレージにコピーされた索引ページ = 収集されませんでし た 拡張ストレージからコピーされたデータ・ページ = 収集されませんでし た 拡張ストレージからコピーされた索引ページ = 収集されませんでし た バッファー・プール・データ論理読み取り = 収集されませんでし た バッファー・プール・データ物理読み取り = 収集されませんでし た バッファー・プール・データ書き込み = 収集されませんでし た バッファー・プール索引論理読み取り = 収集されませんでし た バッファー・プール索引物理読み取り = 収集されませんでし た バッファー・プール索引書き込み = 収集されませんでし た バッファー・プール読み取り時間の合計 (ms) = 収集されませんでし た バッファー・プール書き込み時間の合計 (ms) = 収集されませんでし た プリフェッチ待機時間 (ms) = 収集されませんでし た 直接読み取り = 収集されませんでし た 直接読み取り = 収集されませんでし た 直接書き込み = 収集されませんでし た 直接読み取り要求 = 収集されませんでし た 直接書き込み要求 = 収集されませんでし た 直接読み取り経過時間 (ms) = 収集されませんでし た 直接書き込み経過時間 (ms) = 収集されませんでし た 最終コミット後の SQL 要求数 = 5 コミット・ステートメント = 9 ロールバック・ステートメント = 0 動的 SQL ステートメント試行 = 39 静的 SQL ステートメント試行 = 9 失敗したステートメント操作 = 1 Select SQL ステートメント実行 = 7 Update/Insert/Delete ステートメント実行 = 9 DDL ステートメント実行 = 0 内部自動再バインド = 0 内部行削除 = 0 内部挿入行 = 0 内部行更新 = 0 内部コミット = 1 内部ロールバック = 0 デッドロックによる内部ロールバック = 0 バインド / プリコンパイル試行 = 0 削除行数 = 0 挿入行数 = 0 更新行数 = 9 選択行数 = 7 読み取り行数 = 32 書き込み行数 = 2 UOW 使用ログ・スペース (バイト) = 収集されませんでし た 直前の UOW 完了タイム・スタンプ = 収集されませんでし た 最後に完了した uow の経過時間 (sec.ms) = 収集されませんで した UOW 開始タイム・スタンプ = 収集されませんでし た UOW 停止タイム・スタンプ = 収集されませんでし た UOW 完了状況 = 収集されませんでし た オープン・リモート・カーソル = 0 ブロッキングによるオープン・リモート・カーソル = 0 拒否されたブロック・リモート・カーソル要求 = 0 受け入れられたブロック・リモート・カーソル要求 = 7 オープン・ローカル・カーソル = 0 ブロッキングによるオープン・ローカル・カーソル = 0 エージェントによって使用される合計ユーザー CPU 時間 (s) = 0.015625 エージェントによって使用される合計システム CPU 時間 (s) = 0.000000 ホスト実行経過時間 = 0.000174 パッケージ・キャッシュ検索 = 18 パッケージ・キャッシュ挿入 = 3 アプリケーション・セクション検索 = 39 アプリケーション・セクション挿入 = 3 カタログ・キャッシュ検索 = 14 カタログ・キャッシュ挿入 = 0 カタログ・キャッシュ・オーバーフロー = 0 カタログ・キャッシュの最高水準点 = 0 http://webdocs.caspur.it/ibm/web/udb-6.1/db2d0/c5lock.htm#HDRDEAD Another problem can occur when an application with more than one independent process accessing the database is structured in such a way as to make deadlocks likely. An example is an application in which several processes access the same table for reads and then writes. If the processes do read-only SQL queries at first and then do SQL updates on the same table, the chances of deadlocks occurring increase because of potential contention between the processes for the same data. For instance, if two processes read the table, and then update the table, they get into a state where process A is trying to get an X lock on a row, on which process B has an S lock and vice versa. The result could be a deadlock. To avoid these deadlocks, applications that access data with the intention of modifying it should use the FOR UPDATE OF clause when performing a select. This clause ensures that a U lock is imposed when process A attempts to read the data. 例えば、もし2つのプロセスが表を読んだあとに更新するとする。 AのプロセスはBのプロセスがSロックを取得している行に対してXロックを取得しようとし、逆の状態も発生する。 結果としてデッドロックが発生する。 このようなデッドロックを回避するために、アプリケーションは更新するつもりの行のselectを行うときは FOR UPDATE OF句を使うべきである。 FOR UPDATE OF句はAのプロセスがデータを読むときにUロックをかけること保証する。 End of FILE.