ENV_GET_SYSTEM_RESOURCES 表関数 - システム情報を戻す
ENV_GET_SYSTEM_RESOURCES 表関数は、オペレーティング・システム、CPU、メモリーなど、システム上のメンバーに関連した情報を戻します。
アクティブなデータベースは、システム上の 1 つ以上のメンバーに存在することがあります。 コマンドを発行したデータベースがアクティブ状態になっているメンバーからのみ、この表関数がデータを戻します。
注: ENV_GET_SYSTEM_RESOURCES 表関数は、ENV_GET_SYS_RESOURCES 表関数および関連する ENV_SYS_RESOURCES 管理ビューに代わるものです。
ENV_GET_SYSTEM_RESOURCES 表関数は、メンバーごとに複数の行を戻すのではなく、メンバーごとに複数の列から成る 1 行で、すべてのデータを戻します。 また、ENV_GET_SYS_RESOURCES 表関数で戻される DBPARTITIONNUM 列のデータは、ENV_GET_SYSTEM_RESOURCES 表関数では MEMBER 列で戻されます。
スキーマは SYSPROC です。
許可
以下のいずれかの権限が必要です。
- 表関数に対する EXECUTE 特権
- DATAACCESS 権限
- DBADM 権限
- SQLADM 権限
デフォルトの PUBLIC 特権
なし
戻される情報
使用上の注意
- 仮想化環境 (VMWare ESX など) では、データベース・システムが CPU_HMT_DEGREE または CPU_CORES_PER_SOCKET などの CPU トポロジーを判別できない場合があります。 これは、ハイパーバイザーが仮想化オペレーティング・システムに対して提供する情報が限られているために生じます。 このような場合は、CPU_CORES_PER_SOCKET および CPU_HMT_DEGREE の値が 1 になります。
- 正確な結果を返すために、AIX、HP、および Windows のオペレーティング・システムでは、ENV_GET_SYSTEM_RESOURCES 表関数は 1 秒より長くかかります。
例
例 1: 3 つのメンバーからなる Db2® pureScale® セットアップのすべてのメンバーに関するオペレーティング・システム情報を取得します。
select MEMBER, varchar(HOST_NAME,12) as HOST_NAME, varchar(OS_NAME,8) as OS_NAME,
varchar(OS_VERSION,8) as OS_VERSION, varchar(OS_RELEASE,8)
as OS_RELEASE from table(SYSPROC.ENV_GET_SYSTEM_RESOURCES()) order by MEMBER出力例を以下に示します。
MEMBER HOST_NAME OS_NAME OS_VERSION OS_RELEASE
------ ------------ -------- ---------- ----------
0 hotel75 Linux 2 6
1 hotel78 Linux 2 6
2 hotel90 Linux 2 6
3 record(s) selected.例 2: Db2 Enterprise Server Edition システム上の、このデータベースのホストとなっているシステムのメモリー情報を取得します。
select varchar(HOST_NAME,12) as HOST_NAME, MEMORY_TOTAL, MEMORY_FREE,
MEMORY_SWAP_TOTAL, MEMORY_SWAP_FREE, VIRTUAL_MEM_TOTAL, VIRTUAL_MEM_FREE
from table(SYSPROC.ENV_GET_SYSTEM_RESOURCES())出力例を以下に示します。 スペースの制約上、出力の続きを 2 番目の行で示します。
HOST_NAME MEMORY_TOTAL MEMORY_FREE MEMORY_SWAP_TOTAL ...
------------ -------------------- -------------------- -------------------- ...
hotel75 32189 4370 8198 ...
1 record(s) selected... MEMORY_SWAP_FREE VIRTUAL_MEM_TOTAL VIRTUAL_MEM_FREE
... -------------------- -------------------- --------------------
... 7316 40387 11686 例 3: 4 メンバーのパーティション・データベース環境で、データベースをホストするすべてのシステムのロード時間を検出します。
select MEMBER, varchar(HOST_NAME,12) as HOST_NAME,
CPU_LOAD_SHORT, CPU_LOAD_MEDIUM, CPU_LOAD_LONG
from table(SYSPROC.ENV_GET_SYSTEM_RESOURCES()) order by MEMBER出力例を以下に示します。
MEMBER HOST_NAME CPU_LOAD_SHORT CPU_LOAD_MEDIUM CPU_LOAD_LONG
------ --------- ----------------------- ---------------------- ------------------------
0 hotel75 +5.21000000000000E+000 +5.08000000000000E+000 +4.67000000000000E+000
1 hotel78 +1.33000000000000E+000 +2.18000000000000E+000 +3.66000000000000E+000
2 hotel90 +9.02000000000000E+000 +9.08000000000000E+000 +9.47000000000000E+000
3 hotel32 +1.09000000000000E+000 +1.38000000000000E+000 +1.27000000000000E+000
4 record(s) selected.例 4:
select MEMBER, varchar(HOST_NAME,12) as HOST_NAME, CPU_TOTAL,
MEMORY_TOTAL, CPU_LOAD_SHORT
from table(SYSPROC.ENV_GET_SYSTEM_RESOURCES())
order by MEMBER出力例を以下に示します。MEMBER HOST_NAME CPU_TOTAL MEMORY_TOTAL CPU_LOAD_SHORT
----- -------------- --------- ------------ -----------------------
0 coralpib23 24 81920 +1.23696899414062E+000
1 coralpib23 24 81920 +1.23696899414062E+000
2 coralpib23 24 81920 +1.23696899414062E+000
3 coralpib23 24 81920 +1.23696899414062E+000
4 record(s) selected.