11.20.1 ディクショナリ表およびシステム表を再編成する理由
HADBユーザが,実表に対してSQL文やコマンドを実行した場合,HADBサーバによって自動的にディクショナリ表(実表)およびシステム表(実表)も更新されることがあります。その際,ディクショナリ表(実表)およびシステム表(実表)に無効な行データが増加することがあります。無効となった行データは,ディスクから削除されません。
-
ディクショナリ表(実表)およびシステム表(実表)の行が削除されると,削除対象の行データは無効となります。
-
ディクショナリ表(実表)およびシステム表(実表)の行が更新されると,更新後の行データが新たな行として追加されます。更新前の行データは無効となります。
ディクショナリ表(実表)およびシステム表(実表)に無効な行データが増加し続けた場合,ディクショナリ表(実表)およびシステム表(実表)を格納するディスクの空き容量が不足し,最終的にディクショナリ表(実表)およびシステム表(実表)の更新が発生するような運用は実行できなくなります。例えば,バックグラウンドインポートによるデータインポートやチャンクのマージなどは実行できなくなります。
そのため,定期的にディクショナリ表(実表)およびシステム表(実表)を再編成して,無効な行データを削除する必要があります。ディクショナリ表(実表)およびシステム表(実表)の再編成は,adbreorgsystemdataコマンドで行います。
ディクショナリ表(実表)およびシステム表(実表)に無効な行データが増加するタイミングについては,「表11‒12 ディクショナリ表(実表)に無効な行データが増加するタイミング」および「表11‒13 システム表(実表)に無効な行データが増加するタイミング」を確認してください。
ディクショナリ表(実表)に無効な行データが増加するタイミングを,次の表に示します。
|
項番 |
ディクショナリ表(実表)の種類 |
ディクショナリ表(実表)に無効な行データが増加する操作 |
|---|---|---|
|
1 |
SQL_TABLES |
|
|
2 |
SQL_TABLE_PRIVILEGES |
|
|
3 |
SQL_VIEWS |
|
|
4 |
SQL_COLUMNS |
|
|
5 |
SQL_DBAREAS |
|
|
6 |
|
|
|
7 |
SQL_DATATYPE_DESCRIPTORS |
定義系SQLによる外部表,またはビュー表の削除 |
|
8 |
|
|
|
9 |
SQL_VIEW_TABLE_USAGE |
|
|
10 |
|
|
|
11 |
SQL_DEFINE_SOURCE |
定義系SQLによるビュー表の削除 |
|
12 |
SQL_FOREIGN_SERVERS |
|
|
13 |
SQL_SCHEMATA |
定義系SQLによるスキーマの削除 |
|
14 |
SQL_USERS |
|
|
15 |
SQL_AUDITS |
DROP AUDIT文による監査対象定義の削除 |
- 注※1
-
主キーを参照する外部キーが増えた場合が対象です。
- 注※2
-
ビュー表が無効になる場合が対象です。
システム表(実表)に無効な行データが増加するタイミングを,次の表に示します。
|
項番 |
システム表(実表)の種類 |
システム表(実表)に無効な行データが増加する操作 |
|---|---|---|
|
1 |
|
|
|
2 |
STATUS_CHUNKS |
|
|
3 |
STATUS_SYNONYM_DICTIONARIES |
adbsyndictコマンドによる同義語辞書の登録,更新および削除 |
- 注※
-
処理対象の表やインデクスに対して,コスト情報を収集している場合が対象です。