« 気象病 | 記事一覧へ | Cinelli Xperience (イタリアンカラー)納車!! »

2007年04月24日

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

[あとで読む]

pgadmin3.jpg

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

コメントする

※コメント・スパムが多いため、承認制を取っています。
  また、コメント返信がいつも遅くなりがちなのですが、、><
  コメント頂くと、とても嬉しいですので、お気軽にどうぞ♪