●PostgreSQL カラムサイズの変更と SET STATISTICS n

PostgreSQLでテーブルのカラムサイズの変更方法をすぐに忘れてしまうのでメモ。
(ちなみに、これはキャスト可能な型の場合に限定する。)
TABLE_AのCOL_1を varchar(3)→varchar(10)に変換。
alter table TABLE_A alter COL_1 type VARCHAR(10);
alter table TABLE_A alter column COL1 set statistics -1;
上記はpgAdminⅢからカラムサイズの変更を行った際に、実行されていたSQL。
(PostgreSQLのバージョンは8.0.3)
ひとつ気になったのが、「SET STATISTICS -1」の部分。
PostgreSQL 7.1 から 7.2 への変更点によると、
ALTER TABLE SET STATISTICS integer でオプティマイザが使用する統計情報の中の,頻繁に現れる値の数をデフォルトの10から変更できます.
要するに、ここに指定する数値が小さければ小さいほど、
いちいちオプティマイザが最適化を行わなくなる、ということらしい。
0を指定すると、その列に関する統計情報の集計は無効になる。
WHERE句で頻繁に使用するカラムじゃなければ、最適化は不要ってこと?
DBチューニングは、(当たり前だけど)DBの種類ごとに異なるので覚えるのが面倒臭い。。
PostgreSQLチューニング実践テクニック 第7回:オプティマイザに関するチューニング
href="http://www.thinkit.co.jp/free/marugoto/2/1/17/1.html
PostgreSQL 8.0.3 文書 ANALYZE
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-8.0-ja/sql-analyze.html





