17.10 - COMPRESS - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データベース ユーティリティ

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
構成
Publication ID
B035-1102-171K-JPN
Language
日本語 (日本)

指定したデータベースおよびテーブルで、指定したデータ型を圧縮、またはテーブルを圧縮した場合の予想結果を示します。指定した型のいずれかに当てはまるデータが最終的に指定したテーブルまたはデータベースに追加される場合、同様に圧縮されます。

テーブルの圧縮では、CREATE TABLE文またはALTER TABLE文で指定されたBLOCKCOMPRESSIONALGORITHMオプションとBLOCKCOMPRESSIONLEVELオプションによって指定されるアルゴリズムとレベルが使用されます。これらのいずれかのオプションがテーブルで指定されていない場合、または値がDEFAULTとして指定された場合、データはDBS制御のCompressionAlgorithmおよびCompressionLevel設定によって指定されたアルゴリズムとレベルを使用して圧縮されます。
BLOCKCOMPRESSIONLEVELは、ZLIB圧縮アルゴリズムにのみ有効です。

圧縮形式は、DBS制御のCompressionAlgorithm設定で指定されたアルゴリズムが用いられます。

構文規則

COMPRESS [ /Y ] table_unique [
  PRIMARY |
  FALLBACK |
  FALLBACKANDCLOBS |
  { WITHOUT | ONLY } CLOBS
] 
[ ESTIMATE | E ]

構文要素

/Y
確認のメッセージが表示されないようにします。
table_unique
データ ブロックが圧縮されるテーブルの固有の識別子。
圧縮されるテーブルは、次の2つの方法のいずれかで固有に識別されます。
  • テーブルが属するデータベースの名前とテーブル名をピリオドで区切って指定します。名前は個別に、またはまとめて区切る必要があります。以下は有効な形式です。
    • "database_name.table_name"
    • 'database_name.table_name'
    • "database_name"."table_name"
    • 'database_name'.'table_name'
    • "database_name.*"
    • 'database_name.*'
    • "database_name"."*"
    • 'database_name'.'*'

    アスタリスク(*)は、所定のデータベースにおけるすべてのテーブルを表わします。

  • テーブルの固有の数値の識別子を指定します。これは、スペースで区切られた2つの数値で構成されます。テーブル識別子は、TABLEIDコマンドで返される最初の2つの数値で構成されます。この2つの数値は、テーブルを構成するすべてのサブテーブルに共通です。
    入力番号の形式は基数の現在の設定によって異なり、この設定はRADIXコマンドで表示されます。

次のオプションは、圧縮するデータの種類を指定します。

PRIMARY
指定のデータベースまたはテーブル内での圧縮の対象となるすべてのプライマリ基本テーブルとプライマリLOBデータ。
FALLBACK
指定のデータベースまたはテーブル内での圧縮の対象となるすべてのフォールバック基本テーブル データとフォールバックLOBデータ。
FALLBACKANDCLOBS
圧縮の対象となるすべてのフォールバック基本テーブル データ、フォールバックLOBデータ、および指定のデータベースまたはテーブル内での圧縮の対象となるプライマリLOBデータ。
WITHOUT CLOBS
指定のデータベースまたはテーブル内での圧縮の対象となる、LOBデータを除くすべてのデータ。
ONLY CLOBS
指定のテーブル内での圧縮の対象となるプライマリおよびフォールバックLOBデータのみ。他のテーブルのDBは対象となりません。

次のオプションでは、データは圧縮されません。

ESTIMATE
E
圧縮操作が実行された後のデータ ブロック(DB)の推定サイズと、必要となるCPU使用量(DBあたりの時間)を予想します。いずれのデータも圧縮されません。
出力結果で表示されるテーブル サイズ因数を現在のテーブル サイズと掛け合わせて、圧縮実行後のテーブル サイズを見積もります。
見積もりが最も正確になるのは、テーブルDBサイズがDATABLOCKSIZE(テーブルの作成または変更時にオプションとして指定された)で定義されたサイズであるかそれに近い場合、あるいはDBS制御のPermDBSize設定によって定義されたサイズであるかそれに近い場合(DATABLOCKSIZEがテーブルに指定されていないときに当てはまる)です。

Ferret INQUIRE (INQ)コマンドおよびABORTコマンドを使用して、コマンド実行中に処理状況を確認、または処理を中断することができます。

圧縮解除中のテーブルが同時に他のプロセスにより変更されている場合、INQUIREコマンドによりレポートされるコマンド進行状況の割合は不正確となる可能性があります。

使用上の注意

COMPRESSコマンドは、Vantageのブロック レベル圧縮(BLC)機能の一部です。

BLCは、Teradataファイル システムのデータ ブロック(DB)レベルでのデータ圧縮を可能にします。圧縮により所定のデータ量に必要なストレージの量が低減されます。DBS制御のBlockLevelCompressionフィールドで、BLCを有効または無効にできます。

BLOCKCOMPRESSION値がCREATE TABLE文またはALTER TABLE文でNEVERに設定されているテーブルは、COMPRESSコマンドを使用して圧縮することはできません。

BLCは、圧縮関連のDBS制御設定の対象となります。圧縮されたテーブルには、以下の理由により圧縮されないデータ ブロックがあります。
  • ブロックがMinDBSectsToCompressで指定された数より少ないセクターで構成されている。
  • 圧縮後のブロック サイズが、MinPercentCompReductionで指定された割合で削減されていない。
  • 指定されたテーブル タイプのDBS制御圧縮設定が、NEVER圧縮に設定されている。

特定のアルゴリズムでデータ ブロックを圧縮し、その後アルゴリズムが変更された場合でも、データは圧縮されたままです。 テーブルに追加されたデータは、新たなアルゴリズムによって追加されます。 過去に圧縮されたデータが更新され、データの圧縮解除と再圧縮が必要となった場合、現在設定されているアルゴリズムが再圧縮で用いられます。

最終的に、データがテーブルに追加された時点での設定に応じて、圧縮解除されたデータ ブロックと別の圧縮アルゴリズムで圧縮されたデータ ブロックを混合して1つのサブテーブルで表示できます。データの圧縮で一貫性を持たせるには、Ferret COMPRESSコマンドを使用して、現在設定されているアルゴリズムですべてのデータを圧縮するか、またはFerret UNCOMPRESSコマンドを使用して、すべてのテーブル データを圧縮解除します。

DBS制御のPermDBSize設定とJournalDBSize設定は、これらのタイプのDBで圧縮解除サイズに対して適用されます。

Ferretは、COMPRESS操作の開始と終了をログに記録します。操作中にデータベースがリセットされると、データベース再始動後に、回復処理の一部として圧縮操作が続行されます。ただし、圧縮が続行されて完了するのは、リセット時に圧縮が進行中であったテーブルに関してのみです。データベースのその他の部分については、リセット前の状態のままとなります。

1つのCOMPRESSコマンドのインスタンスのみを、任意のタイミングにシステム上で実行できます。

COMPRESSまたはUNCOMPRESSコマンドを発行した場合にエラーを受信し、実行中のいずれかのコマンドのインスタンスが他にないことが確実な場合、RESETBLCTSKCNTコマンドを使用して、COMPRESSタスクおよびUNCOMPRESSタスクの実行数をゼロにリセットします。

関連情報

詳細情報 参照先
DBS制御圧縮設定 DBS制御(dbscontrol)
クエリー バンド Teradata Vantage™- SQLデータ定義言語 - 詳細トピック、B035-1184
RADIXコマンド RADIX
RESETBLCTSKCNTコマンド RESETBLCTSKCNT
TABLEIDコマンド TABLEID
UNCOMPRESSコマンド UNCOMPRESS