Re: [PATCHES] [Fwd: Index Advisor]

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Gurjeet Singh <singh(dot)gurjeet(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: [PATCHES] [Fwd: Index Advisor]
Date: 2007-01-06 21:08:24
Message-ID: 200701062108.l06L8OO22501@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches


I have looked over this patch, and it completes part of this TODO item:

o Add SET PERFORMANCE_TIPS option to suggest INDEX, VACUUM, VACUUM
ANALYZE, and CLUSTER

Here is the foundation of it:

For an incoming EXPLAIN command, the planner generates the plan and, if
the Index Adviser is enabled, then the query is sent to the Index
Adviser for any suggestions it can make. The Adviser derives a set of
potentially useful indexes (index candidates) for this query by
analyzing the query predicates. These indexes are inserted into the
system catalog as virtual indexes; that is, they are not created on
disk.

Then, the query is again sent to the planner, and this time the planner
makes it's decisions taking the just-created vitual indexes into account
too. All index candidates used in the final plan represent the
recommendation for the query and are inserted into the advise_index
table by the Adviser.

The gain of this recommendation is estimated by comparing the execution
cost difference of this plan to the plan generated before virtual
indexes were created.

It involves a patch to the backend, and a /contrib module to access it.

I think we have to decide if we want this, and whether it should be in
/contrib or fully integrated into the backend. I am thinking the API
needs to be simpified, perhaps by removing the system table and having
the recommendations just logged to the server logs.

---------------------------------------------------------------------------

Gurjeet Singh wrote:
> Hi All,
>
> Please find attached the latest version of the patch attached. It
> is based on REL8_2_STABLE.
>
> It includes a few bug fixes and an improvement to the size
> estimation function. It also includes a work-around to circumvent the
> problem we were facing earlier in xact.c; it now fakes itself to be a
> PL/xxx module by surrounding the BIST()/RARCST() calls inside an
> SPI_connect()/SPI_finish() block.
>
> Please note that the sample_*.txt files in the contrib module,
> which show a few different sample runs, may be a little out of date.
>
> Best regards,
>
>
> --
> gurjeet[(dot)singh](at)EnterpriseDB(dot)com
> singh(dot)gurjeet(at){ gmail | hotmail | yahoo }.com

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings

--
Bruce Momjian bruce(at)momjian(dot)us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dave Page 2007-01-06 21:17:25 Re: -f <output file> option for pg_dumpall
Previous Message Dave Page 2007-01-06 20:28:39 Re: -f <output file> option for pg_dumpall

Browse pgsql-patches by date

  From Date Subject
Next Message Kenneth Marshall 2007-01-06 21:18:07 Re: [PATCHES] [Fwd: Index Advisor]
Previous Message Bruce Momjian 2007-01-06 20:24:02 Re: COPY with no WAL, in certain circumstances