説明
このビューの名前は、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 | ネットワークフレームワークメモリ(kt_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が変化し、メモリ使用量の増加を引き起こす可能性があります。 以下は、一部の一般的なSQL実行または操作であり、特定のメモリCTXの使用量が増加する可能性があります:
大規模データのソート(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のメモリ使用量が増加する可能性があります。