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,
> 
> 
> -- 
> [EMAIL PROTECTED]
> [EMAIL PROTECTED] gmail | hotmail | yahoo }.com

[ Attachment, skipping... ]

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

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDB    http://www.enterprisedb.com

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

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to