Question & Answer
Question
SQL ステートメントがどの分離レベルで実行されているか確認する方法はありますか。
Answer
SQL ステートメントは各アプリケーションが指定した分離レベルで実行されます。
SQL ステートメントの分離レベルは、パッケージ・キャッシュの内容から MON_GET_PKG_CACHE_STMT 表関数を使って確認できます。
ただし、該当の SQL がデータベースの活動化以降少なくとも1回は実行され、かつパッケージ・キャッシュから削除されていない状態であることが必要です。
関連情報
MON_GET_PKG_CACHE_STMT 表関数 - パッケージ・キャッシュ・ステートメント・メトリックの取得
pckcachesz - パッケージ・キャッシュ・サイズ構成パラメーター
SQL ステートメントの分離レベルは、パッケージ・キャッシュの内容から MON_GET_PKG_CACHE_STMT 表関数を使って確認できます。
ただし、該当の SQL がデータベースの活動化以降少なくとも1回は実行され、かつパッケージ・キャッシュから削除されていない状態であることが必要です。
実行例:
SECTION_TYPE 列の内容は、'S' が静的 SQL、'D' は動的 SQL を意味します。
$ db2 "SELECT SECTION_TYPE, PACKAGE_SCHEMA, PACKAGE_NAME, EFFECTIVE_ISOLATION, SUBSTR(STMT_TEXT,1,100) as STMT_TEXT FROM TABLE(MON_GET_PKG_CACHE_STMT(NULL,NULL,NULL,-2)) as T1 WHERE STMT_TEXT LIKE 'SELECT COUNT(*)%'"
SECTION_TYPE PACKAGE_SCHEMA PACKAGE_NAME EFFECTIVE_ISOLATION STMT_TEXT
------------ --------------- ------------ ------------------- -----------------------------------
D - - CS SELECT COUNT(*) FROM SYSCAT.TABLES
S NULLID DB2L2K1S UR SELECT COUNT(*) INTO :H00197 FROM SYSCAT.INDEXES
2 レコードが選択されました。
EFFECTIVE_ISOLATION 列の内容が、実行されている分離レベルを示しています。
関連情報
MON_GET_PKG_CACHE_STMT 表関数 - パッケージ・キャッシュ・ステートメント・メトリックの取得
pckcachesz - パッケージ・キャッシュ・サイズ構成パラメーター
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PkcAAE","label":"Compiler"},{"code":"a8m0z00000006seAAA","label":"Monitors"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
Modified date:
31 August 2023
UID
swg21698184