2012年1月15日日曜日

[PostgreSQL] 控制执行计划的方法

1-1. 提高 ANALYZE 频率

1-2. 增加统计信息的直方图记录数 (抽样)

1-2-1. postgresql.conf 设置 (PostgreSQL 8.0 以后)
default_statistics_target = 1000

1-2-2. 特定表的特定列设置 (推荐使用)
ALTER TABLE table_name ALTER col_name SET STATISTICS 1000;

1-3. 调整优化器的参数

=# show enable_
enable_bitmapscan  enable_hashjoin    enable_material    enable_nestloop
enable_sort        enable_hashagg     enable_indexscan   enable_mergejoin
enable_seqscan     enable_tidscan

=# show enable_seqscan;
-[ RECORD 1 ]--+---
enable_seqscan | on

=# BEGIN;
BEGIN

=# set local enable_seqscan to off;
SET

=# show enable_seqscan;
-[ RECORD 1 ]--+----
enable_seqscan | off

=# select ...
=# commit;

0 件のコメント:

コメントを投稿