[pgsql-jp: 40471] Re: SQLの検索性能について

Itagaki Takahiro itagaki.takahiro @ gmail.com
2010年 10月 21日 (木) 15:46:02 JST


2010/10/21 松元 瑛理子 <e-matsumoto @ nri.co.jp>:
> work_memとshared_buffersでチューニングを実施したのですが、
> 思うように検索性能が改善しませんでした。
...
> →半減する程の速度向上を期待していたのですが、前述のとおり性能改善は見られませんでした。

うーん、そんなに期待できるものなんですかね?
データやクエリにも依りますが、物理メモリを増やすならばともかく、
メモリ系はチューニングしても、それ自体はそんなに性能には貢献しませんよ?
# work_mem を増やして実行計画が変化する、とかなら別ですが。

> データ総数8,000万件(約600万件ずつ13パーティションに分散)
                                   ~~~~~~~~~~~~~~~~~~~~~~
「パーティションに分散」というところが重要にみえます。
具体的な定義はどうなっていますか?

> SELECT * FROM LOG_TBL
> WHERE LOG_DATE BETWEEN [下限値] AND [上限値]
> ORDER BY LOG_DATE, REC_DATE
> OFFSET 0 LIMIT 1001;

この SQL の EXPLAIN 結果はどうなりますか?
また、[下限値] や [上限値] を生の値として与えているか、
Prepared Statement のパラメータにしているかでも結果が変わります。

-- 
Itagaki Takahiro


pgsql-jp メーリングリストの案内