コンテンツにスキップ

16.3.1 メタデータテーブル辞典

メタデータテーブルはM$で始まり、テーブル定義、列、インデックス、ユーザーなどのMachbaseスキーマ情報を参照します。DDLの実行結果を自動反映する読み取り専用テーブルです。

8.7.0 Standard Editionの複数データベース環境でカタログローカルなメタデータを結合するときは、 DATABASE_IDTABLESPACE_ID、親オブジェクトIDを併用してください。論理的なDATABASE_IDと 物理的なTABLESPACE_IDは相互に代用できません。データベースの運用境界は 複数データベースの運用ガイドを参照してください。

メタデータテーブル一覧

テーブル名説明
M$SYS_TABLESユーザー作成テーブルの一覧とタイプ
M$SYS_TABLE_PROPERTYテーブルに適用されたプロパティ情報
M$SYS_COLUMNSテーブルの列定義(型、長さなど)
M$SYS_INDEXESインデックス定義
M$SYS_INDEX_COLUMNSインデックスを構成する列の情報
M$SYS_TABLESPACESテーブルスペース一覧
M$SYS_TABLESPACE_DISKSテーブルスペースが使用するディスクパス
M$SYS_USERS登録済みユーザー一覧
M$SYS_VIEWSビューを定義するSQLテキスト
M$SYS_USER_ACCESSテーブル別のユーザー権限
M$RETENTION保持ポリシー情報
M$TABLESM$メタデータテーブル自体の一覧
M$COLUMNSM$メタデータテーブルの列一覧

M$SYS_TABLES

ユーザーが作成したテーブルの一覧とタイプを参照します。

列名説明
NAMEVARCHARテーブル名
TYPEINTEGERテーブルタイプ
IDLONGテーブル識別子
DATABASE_IDLONG論理データベース識別子
TABLESPACE_IDLONG物理テーブルスペース識別子
USER_IDINTEGERテーブルを作成したユーザーの識別子
COLCOUNTINTEGER列数
FLAGINTEGERサブタイプ(1: Tag Data, 2: Rollup, 4: Tag Meta, 8: Tag Stat)

TYPE値の意味:

テーブルタイプ
0Log テーブル
1Fixed テーブル
3Volatile テーブル
4Lookup テーブル
5Key Value テーブル
6Tag テーブル
7View
8TRANSACTION テーブル

M$SYS_COLUMNS

テーブルの列定義を参照します。

列名説明
NAMEVARCHAR列名
TYPEINTEGER列のデータ型
TABLE_IDLONG所属テーブルの識別子
DATABASE_IDLONG論理データベース識別子
TABLESPACE_IDLONG物理テーブルスペース識別子
LENGTHINTEGER列の最大長
PART_PAGE_COUNTINTEGERパーティション当たりのページ数
MINMAX_CACHE_SIZELONGMIN-MAXキャッシュサイズ

M$SYS_INDEXES

インデックス定義を参照します。

列名説明
NAMEVARCHARインデックス名
TYPEINTEGERインデックスタイプ
TABLE_IDLONG所属テーブルの識別子
DATABASE_IDLONG論理データベース識別子
TABLESPACE_IDLONG物理テーブルスペース識別子
COLCOUNTINTEGERインデックスの列数
MAX_LEVELINTEGER最大LSMレベル

M$SYS_USERS

登録済みユーザー一覧を参照します。

列名説明
USER_IDINTEGERユーザー識別子
NAMEVARCHARユーザー名
PWD_POLICY_LEVELINTEGERパスワードポリシーレベル
VALID_BEFOREVARCHARアカウントの有効期間

M$RETENTION

保持ポリシーの情報を参照します。

列名説明
POLICY_NAMEVARCHARポリシー名
DURATIONLONG保持期間(秒)
INTERVALLONG削除実行間隔(秒)

SQL例

-- 全テーブル一覧(タイプを含む)
SELECT name, type, colcount
  FROM m$sys_tables
 ORDER BY name;

-- Tagテーブルのみ参照(type = 6)
SELECT name FROM m$sys_tables WHERE type = 6;

-- 特定テーブルの列一覧
SELECT c.name AS col_name, c.type AS col_type, c.length
  FROM m$sys_columns c
  JOIN m$sys_tables  t
    ON c.database_id = t.database_id
   AND c.tablespace_id = t.tablespace_id
   AND c.table_id = t.id
 WHERE t.name = 'SENSOR_TAG'
 ORDER BY c.id;

-- 特定テーブルのインデックス一覧
SELECT i.name AS idx_name, i.type AS idx_type, i.colcount
  FROM m$sys_indexes i
  JOIN m$sys_tables  t
    ON i.database_id = t.database_id
   AND i.tablespace_id = t.tablespace_id
   AND i.table_id = t.id
 WHERE t.name = 'SENSOR_TAG';

-- インデックスを構成する列の確認
SELECT ic.name AS col_name, ic.index_type
  FROM m$sys_index_columns ic
  JOIN m$sys_indexes i ON ic.index_id = i.id
  JOIN m$sys_tables  t ON i.table_id = t.id
 WHERE t.name = 'SENSOR_TAG';

-- テーブルスペースのディスクパスの確認
SELECT ts.name AS tbs_name, d.path, d.io_thread_count
  FROM m$sys_tablespace_disks d
  JOIN m$sys_tablespaces ts ON d.tablespace_id = ts.id;

-- ユーザー一覧の参照
SELECT user_id, name, pwd_policy_level, valid_before
  FROM m$sys_users;

-- 保持ポリシー一覧
SELECT * FROM m$retention;

メタデータテーブルは読み取り専用です。INSERTUPDATEDELETEはエラーを返します。スキーマの変更にはCREATE TABLEALTER TABLEDROP TABLEなどのDDLを使用してください。

最終更新日