something to suggest indexes
Hi,
Is there something built-in to Postgres that would suggest what indexes I
might add to improve performance? I created my required tables (they only
contain small amounts of test data) and the performance is great. But as the
data starts growing I'm betting that creating a few indexes will be needed.
In the past I just started playing with explain using a hit and miss way of
doing it.
If there is nothing in Postgres does anyone have any suggestions?
John
John wrote:
Hi,
Is there something built-in to Postgres that would suggest what indexes I
might add to improve performance? I created my required tables (they only
contain small amounts of test data) and the performance is great. But as the
data starts growing I'm betting that creating a few indexes will be needed.In the past I just started playing with explain using a hit and miss way of
doing it.
You'll want EXPLAIN once you know which queries you really care about
but before that you'll need to identify them. Two things might prove useful:
http://www.postgresql.org/docs/8.4/static/monitoring-stats.html
The statistics views will let you see which tables and indexes are being
used the most. You don't want unnecessary indexes either. Take a copy of
the table, leave it 24 hours (or whatever testing time is suitable) and
take another copy. Compare the two.
You can also turn on query-time logging and use a log analyser to see
precisely how much time you spend with each query. Then, you know which
to target with EXPLAIN. A couple of log-analyser packages are:
http://pgfouine.projects.postgresql.org/
http://pqa.projects.postgresql.org/
--
Richard Huxton
Archonet Ltd
On Friday 17 July 2009 12:29:59 am Richard Huxton wrote:
John wrote:
Hi,
Is there something built-in to Postgres that would suggest what indexes I
might add to improve performance? I created my required tables (they
only contain small amounts of test data) and the performance is great.
But as the data starts growing I'm betting that creating a few indexes
will be needed.In the past I just started playing with explain using a hit and miss way
of doing it.You'll want EXPLAIN once you know which queries you really care about
but before that you'll need to identify them. Two things might prove
useful:http://www.postgresql.org/docs/8.4/static/monitoring-stats.html
The statistics views will let you see which tables and indexes are being
used the most. You don't want unnecessary indexes either. Take a copy of
the table, leave it 24 hours (or whatever testing time is suitable) and
take another copy. Compare the two.You can also turn on query-time logging and use a log analyser to see
precisely how much time you spend with each query. Then, you know which
to target with EXPLAIN. A couple of log-analyser packages are:
http://pgfouine.projects.postgresql.org/
http://pqa.projects.postgresql.org/--
Richard Huxton
Archonet Ltd
Yes that's what I was looking for. Thanks for taking the time.
Johnf