[pgsql-jp: 40640] Re: PostgreSQLキャッシュクリア方法についてご質問

Satoshi Nagayasu satoshi.nagayasu @ gmail.com
2010年 12月 23日 (木) 12:14:57 JST


永安です。

On 2010/12/22 16:08, toshihideka4316 @ zenrin.co.jp wrote:
> SQLの速度計測を行うことが多々あるのですが、
> 2度目に実行した場合はキャッシュがきいているのか速度が速くなります。
> (例えば1度目で速度が数十秒であるSQLが2度目以降は1秒かからず返ってきます)
> (サーバ、クライアント共にPostgreSQL8.2.14、ODBCドライバver8.2.4です)
> 
> そこで質問なのですが、
> ・キャッシュをクリアする方法は無いでしょうか。
> (サーバの再起動は厳しいです)
> ・または、キャッシュの影響を受けずにSQLの速度計測を行う方法は無いでしょう
> か。

EXPLAIN/EXPLAIN ANALYZE ではだめでしょうか?

「キャッシュ」には、OSバッファとPostgreSQLの共有バッファが
あると思いますが、EXPLAIN/EXPLAIN ANALYZE で出てくるコストは
どちらにもキャッシュの状況には影響を受けなかったと思います。

詳細はこちらの資料をどうぞ。

Explaining Explain PostgreSQLの実行計画を読む
http://lets.postgresql.jp/documents/technical/query_tuning/explaining_explain_ja.pdf/view

ちなみに、「キャッシュをクリアする」というのは
キャッシュされたデータをバッファから追い出すのと同義なので、
大きなデータをスキャンする、大量のメモリを確保する、等によって
実現可能ですが、多少の手間と技術が必要です(昔やってました)。

-- 
NAGAYASU Satoshi <satoshi.nagayasu @ gmail.com>


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