プログラマーな日々

プログラマーをやっています。好きなものは、C#, TaskChute Cloud, WorkFlowy, Backlog, AWSです。

【Redshift】バキューム中のクエリ性能調査

Redshiftにおいて、バキュームは、システムを使用しない時間帯に行うのが定石です。

VACUUM は、夜間や指定されたデータベース管理期間など、クラスターのアクティビティが最小限になると予想される期間に実行します。

docs.aws.amazon.com

しかし、グローバル展開しているシステムは、使用しない時間帯がないため、使用中にバキュームを行わざるを得ません。

そこで、バキューム中にクエリ性能がどの程度落ちるのか知らべてみました。

事前準備

testテーブルに以下の準備をしておく。

  1. ORDER BYに指定するカラム(sort_column)をテーブルのソートキーに設定しておく。
  2. テーブルにレコードを登録しておく(件数2000万件)。

検証に使うSQL

クエリ

以下のクエリで検証する。対象レコードの件数は、45000件。

SELECT * FROM test WHERE date_column = '2016-01-01' ORDER BY sort_column

バキューム

VACUUM test

クエリ応答時間(単位秒)

バキューム前
6.4
バキューム中
8.9

バキューム中はクエリ性能が39%低下する結果になりました。