■ はじめに
https://dk521123.hatenablog.com/entry/2021/09/04/172021
において 「3)インターリーブソートキー(Interleaved SortKey)」 の「デメリット」より ~~~~~~~~~~~ * インターリーブソートキーの性能を維持するためには 定期的に VACUUM REINDEX を実行する必要がある ~~~~~~~~~~~ Redshift の VACUUM を調べてみると、 PostgreSQLとは違う部分があったのでメモする。
目次
【1】VACUUM 【2】構文 1)サンプル 【3】VACUUM の種類 1)VACUUM FULL 2)VACUUM DELETE ONLY 3)VACUUM SORT ONLY 4)VACUUM REINDEX
【1】VACUUM
* パフォーマンス向上・維持されるための手段で 行を再ソートや削除された行の領域を再利用することを行う
補足:PostgreSQL の VACUUM 操作との違い
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_VACUUM_command.html
より抜粋 ~~~~~~~~~~~~~~~~ Amazon Redshift の VACUUM コマンドの構文と動作は、 PostgreSQL の VACUUM 操作とは大幅に異なります。 たとえば、Amazon Redshift でのデフォルトの VACUUM 操作は VACUUM FULL です。 これは、ディスク領域を再利用し、すべての行を再ソートします。 これに対して、PostgreSQL のデフォルトの VACUUM 操作は、 単純に領域を再利用し、再び使用できるようにするだけです。 ~~~~~~~~~~~~~~~~
【2】構文
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_VACUUM_command.html
VACUUM [ FULL | SORT ONLY | DELETE ONLY | REINDEX ] [ [ table_name ] [ TO threshold PERCENT ] [ BOOST ] ]
1)サンプル
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_VACUUM_command.html
より # SALES テーブルで、常に容量の再利用と行の再ソートを実行 vacuum sales to 100 percent; # ISTING テーブルのインデックスを再作成した後、バキューム処理を実行 vacuum reindex listing;
【3】VACUUM の種類
* 公式サイトの以下のページを参照。
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/t_Reclaiming_storage_space202.html#vacuum-types
1)VACUUM FULL
* 以下の2点を行う。 [1] 行を再ソート [2] 削除された行の領域を再利用する * VACUUM でも VACUUM FULL と同じ
2)VACUUM DELETE ONLY
* ソートをスキップする以外、VACUUM FULLと同じ * Amazon Redshift はバックグラウンドで自動的に実行される
3)VACUUM SORT ONLY
* ソートを行う([1]のみを行う)
4)VACUUM REINDEX
* インターリーブソートキー(※)を使用するテーブルに使用 ※ インターリーブソートキーについては、 以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2021/09/04/172021
使用上の注意
* VACUUM REINDEX は VACUUM FULL よりも大幅に時間がかかる => データ全体を分析する時間だけでなく、 インターリーブされたデータのマージに 全データブロックへのアクセスすることが含まれるため => 以下を読んでみるといいかも。
公式サイト:インデックスを再生成するかどうかの決定
https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_vacuum-decide-whether-to-reindex.html
関連記事
Amazon Redshift ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/22/002139
Amazon Redshift ~ 他DB・サービスとの違い ~
https://dk521123.hatenablog.com/entry/2021/08/29/000000
Amazon Redshift ~ DistStyle / DistKey / SortKey ~
https://dk521123.hatenablog.com/entry/2021/09/04/172021
よく使う pdqlコマンド
https://dk521123.hatenablog.com/entry/2020/01/10/224818