Redshiftにおいて、バキュームは、システムを使用しない時間帯に行うのが定石です。
VACUUM は、夜間や指定されたデータベース管理期間など、クラスターのアクティビティが最小限になると予想される期間に実行します。
しかし、グローバル展開しているシステムは、使用しない時間帯がないため、使用中にバキュームを行わざるを得ません。
そこで、バキューム中にクエリ性能がどの程度落ちるのか知らべてみました。
事前準備
testテーブルに以下の準備をしておく。
- ORDER BYに指定するカラム(sort_column)をテーブルのソートキーに設定しておく。
- テーブルにレコードを登録しておく(件数2000万件)。
検証に使うSQL
クエリ
以下のクエリで検証する。対象レコードの件数は、45000件。
SELECT * FROM test WHERE date_column = '2016-01-01' ORDER BY sort_column
バキューム
VACUUM test
クエリ応答時間(単位秒)
- バキューム前
- 6.4
- バキューム中
- 8.9
バキューム中はクエリ性能が39%低下する結果になりました。