説明
このビュー名はV4.0.0バージョン以降、V$MEMORYからV$OB_MEMORYに変更されました。
機能の概要
現在のテナントが現在のノード上で使用しているメモリ統計情報を表示します。
フィールド説明
フィールド名 |
型 |
NULL許容 |
説明 |
|---|---|---|---|
| TENANT_ID | bigint(20) | NO | テナントID |
| SVR_IP | varchar(46) | NO | サーバーのIPアドレス |
| SVR_PORT | bigint(20) | NO | サーバーポート番号 |
| CTX_NAME | varchar(256) | NO | メモリが属するCTX名 |
| MOD_NAME | varchar(256) | NO | メモリが属するMod名 |
| COUNT | decimal(20,0) | NO | メモリの割り当てと解放の差分、すなわち現在そのModで使用中のメモリユニット数 |
| HOLD | decimal(20,0) | NO | そのModが現在占有しているメモリサイズ |
| USED | decimal(20,0) | NO | そのModが現在使用しているメモリ量、単位:Byte |
CTX_NAMEフィールドの値
一般的なメモリCTXの名前と意味は以下のとおりです。
CTX_NAME |
説明 |
|---|---|
| DEFAULT_CTX_ID | 未分割メモリコレクションのコンテキストIDを表します。 |
| MEMSTORE_CTX_ID | ユーザーMemTableデータのコンテキストIDを表します。 |
| TRANS_CTX_MGR_ID | トランザクションコンテキストIDを表します。 |
| PLAN_CACHE_CTX_ID | 実行計画キャッシュのコンテキストIDを表します。 |
| GLIBC | Glibc Mallocインターフェースを使用して割り当てられたメモリを表します。 |
| CO_STACK | スレッド実行スタックメモリを表します。 |
| KVSTORE_CACHE_ID | 動的スケーラブルキャッシュIDを表します。 |
| META_OBJ_CTX_ID | マクロブロックMetaなどのメタデータを格納するメモリを表します。 |
| TX_CALLBACK_CTX_ID | トランザクションコールバックコンテキストIDを表します。トランザクション実行中の一部の変更を記録し、トランザクションのコミットまたはロールバック時に対応するデータを見つけて操作を行うために使用されます。 |
| LOB_CTX_ID | ObLobManager内のAllocator IDをマークするために使用されます。 |
| PS_CACHE_CTX_ID | PREPARE stmt_name FROM preparable_stmt ステートメントのキャッシュIDを表します。 |
| TX_DATA_TABLE | トランザクションデータテーブルを表します。決済済みトランザクションの状態を格納し、未コミット、FAST COMMITなどのシナリオでのクエリに使用されます。 |
| MDS_DATA_ID | マルチソースデータのメモリIDを表します。 |
| LIBEASY | ネットワークフレームワークメモリ(EASY)を表します。 |
| LOGGER_CTX_ID | プログラムログメモリコンテキストIDを表します。 |
| RPC_CTX_ID | RPCフレームワークメモリコンテキストIDを表します。 |
| PKT_NIO | ネットワークフレームワークメモリ(pkt_nio)を表します。 |
| SCHEMA_SERVICE | スキーマメタ情報メモリを表します。テーブル、データベースなどが該当します。 |
CTX_NAMEとMOD_NAMEの対応関係
一般的なCTX_NAMEとMOD_NAMEの対応関係は次のとおりです。
CTX_NAME |
MOD_NAME |
TENANT |
|---|---|---|
| DEFAULT_CTX_ID |
|
ALL |
|
500 | |
| SQL_EXEC_CTX_ID |
|
ALL |
| WORK_AREA |
|
|
| PLAN_CACHE_CTX_ID |
|
|
| TRANS_CTX_MGR_ID |
|
|
| TX_CALLBACK_CTX_ID | MemtableCallbac:メモリテーブルコールバック関連モジュール | |
| REPLAY_STATUS_CTX_ID | ReplayStatus:再現状態関連モジュール | |
| CO_STACK | CO_STACK:コルーチンスタック関連モジュール | 500 |
| STORAGE_LONG_TERM_META_CTX_ID |
|
|
| STORAGE_SHORT_TERM_META_CTX_ID |
|
|
| ALL | OB_COMMON_ARRAY:OceanBase汎用配列 | ALL |
一般的なSQL操作がメモリCTXに与える影響
OceanBaseデータベースでは、各SQLの実行や操作には特定のCTXが対応します。データ量や操作の複雑さなどによって、使用されるメモリCTXがメモリ使用量の増加を引き起こす可能性があります。 以下は、特定のメモリCTXの使用量が増加する可能性のある一般的なSQLの実行や操作です:
大量データのソート(ORDER BY、GROUP BYなど):ソート操作ではデータをメモリに読み込んでからソートする必要があるため、PLAN_CACHE_CTX_ID、MEMSTORE_CTX_ID、DEFAULT_CTX_IDのメモリ使用量が増加する可能性があります。
大量データの集計(SUM、AVG、MAX、MINなど):集計操作ではデータをメモリに読み込んで計算する必要があるため、PLAN_CACHE_CTX_ID、MEMSTORE_CTX_ID、DEFAULT_CTX_IDのメモリ使用量が増加する可能性があります。
大量データの結合(JOIN):結合操作ではデータをメモリに読み込んでマッチングする必要があるため、PLAN_CACHE_CTX_ID、MEMSTORE_CTX_ID、DEFAULT_CTX_IDのメモリ使用量が増加する可能性があります。
大量データのクエリ(SELECT):クエリ操作ではデータをメモリに読み込んでフィルタリングとソートを行う必要があるため、PLAN_CACHE_CTX_ID、MEMSTORE_CTX_ID、DEFAULT_CTX_IDのメモリ使用量が増加する可能性があります。
大量データの書き込み(INSERT、UPDATE、DELETEなど):書き込み操作ではトランザクションの管理と処理が必要なため、TRANS_CTX_MGR_ID、MEMSTORE_CTX_ID、DEFAULT_CTX_IDのメモリ使用量が増加する可能性があります。
大量データのログ(REDO、UNDO、BINLOGなど):ログ操作ではデータをメモリに読み込んで操作を行う必要があるため、TRANS_CTX_MGR_ID、DEFAULT_CTX_ID、LOB_CTX_ID、TX_DATA_TABLEのメモリ使用量が増加する可能性があります。