UNCOMPRESS - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/xha1591998860283.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1102
Product Category
Software
Teradata Vantage

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

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

構文規則

UNCOMPRESS [ /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がテーブルに指定されていないときに当てはまる)です。

使用上の注意

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

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

システム全体、またはテーブルのさまざまなカテゴリに対して、BLCを有効または無効にできます。永久データの場合、該当するのは、プライマリ インデックス、フォールバック インデックス、対象となるLOBデータ インデックス、結合インデックス、およびハッシュ インデックスのサブテーブルです。基本行のセカンダリ インデックスとセカンダリ インデックスのフォールバック コピーが圧縮されることはありません。

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

UNCOMPRESSコマンドは、データの圧縮解除時にストレージ領域を消費します。圧縮解除コマンド完了後に十分なスペースを確保するために、DBS制御でUncompressReservedSpace設定を使用し、予約するスペースの容量を指定します。圧縮解除操作は、利用可能なスペースが予約した容量を下回った時点で停止します。その時点で圧縮解除を行なっているテーブルは、部分的に圧縮された状態になる可能性があります。これにより表またはデータベースの機能が影響を受けることはありません。圧縮解除を再開するためには、一部のストレージ領域を解放するか、UncompressReservedSpaceの値を下げてから、UNCOMPRESSコマンドを再発行します。

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

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

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

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

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

関連情報

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