メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

ANALYZE COMPRESSION

圧縮分析を行い、分析されたテーブルの推奨列エンコードスキームのレポートを生成します。レポートには、列ごとに現在のエンコードと比較したディスク容量の圧縮可能率の推定値が含まれます。

構文

Copy
ANALYZE COMPRESSION [ [ table_name ] [ ( column_name [, ...] ) ] ] [COMPROWS numrows]

Parameters

table_name

一時テーブルを含む、特定のテーブルの圧縮を分析できます。テーブルをそのスキーマ名で修飾することができます。また、table_name を指定して単一のテーブルを分析することもできます。table_name を指定しなかった場合、現在接続されているデータベースがすべて分析されます。1 つの ANALYZE COMPRESSION ステートメントで複数の table_name を指定することはできません。

column_name

table_name を指定する場合、テーブルの 1 つ以上の列を指定することもできます (括弧内に列をカンマ区切りリストとして指定します)。

COMPROWS

圧縮分析のサンプルサイズとして使用される行数。分析は各データスライスの行に対して実行されます。例えば、COMPROWS 1000000 (1,000,000) を指定し、システムに合計 4 つのスライスが含まれている場合、スライスごとに 250,000 行のみが読み取られ、分析されます。COMPROWS を指定しない場合、サンプルサイズはデフォルトでスライスごとに 100,000 になります。COMPROWS の値がスライスごとに 100,000 行のデフォルト値より小さい場合、自動的にデフォルト値にアップグレードされます。ただし、テーブルのデータが不十分であるため有意のサンプルを作成できない場合、圧縮分析では推奨を作成しません。COMPROWS 数がテーブルの行数より大きい場合でも、ANALYZE COMPRESSION コマンドは続行し、利用可能なすべての行に対して圧縮分析を実行します。

numrows

圧縮分析のサンプルサイズとして使用される行数。numrows の許容範囲は 1000~1000000000 (1,000,000,000) の数値です。

使用に関する注意事項

テーブルの内容サンプルに基づいて推奨列エンコードスキームを取得するには、ANALYZE COMPRESSION を実行します。ANALYZE COMPRESSION はアドバイスツールであり、テーブルの列エンコードは変更しません。 推奨エンコードを適用するには、テーブルを再作成するか、同じスキーマを持つ新しいテーブルを作成します。適切なエンコードスキームを使用して未圧縮テーブルを再作成すると、オンディスクフットプリントを大幅に減らし、ディスクスペースを節約できるだけではなく、IO 関連ワークロードのクエリパフォーマンスを向上させることができます。

ANALYZE COMPRESSION では、SORTKEY と指定されている列の ランレングスエンコード エンコードを考慮に入れません。これは、SORTKEY 列が他の列より高度に圧縮された場合、範囲制限されたスキャンのパフォーマンスが低下する可能性があるためです。

ANALYZE COMPRESSION は排他的テーブルロックを取得し、テーブルに対する同時読み取り書き込みが防止されます。ANALYZE COMPRESSION コマンドは、テーブルがアイドル状態になっている場合にのみ実行してください。

LISTING テーブルのみを分析します。

Copy
analyze compression listing; Table | Column | Encoding | Est_reduction_pct --------+----------------+----------+------------------ listing | listid | delta32k | 0.00 listing | sellerid | delta32k | 0.00 listing | eventid | delta32k | 0.00 listing | dateid | lzo | 96.94 listing | numtickets | delta | 0.00 listing | priceperticket | lzo | 15.74 listing | totalprice | lzo | 18.06 listing | listtime | lzo | 20.98

SALES テーブルの QTYSOLD、COMMISSION、SALETIME の各列を分析します。

Copy
analyze compression sales(qtysold, commission, saletime); Table | Column | Encoding | Est_reduction_pct ------+------------+----------+------------------ sales | salesid | N/A | 0.00 sales | listid | N/A | 0.00 sales | sellerid | N/A | 0.00 sales | buyerid | N/A | 0.00 sales | eventid | N/A | 0.00 sales | dateid | N/A | 0.00 sales | qtysold | lzo | 17.49 sales | pricepaid | N/A | 0.00 sales | commission | delta32k | 0.00 sales | saletime | lzo | 20.99