(2014/01/27 21:49), Shigeru Hanada wrote:
2014-01-27 Etsuro Fujita <fujita.ets...@lab.ntt.co.jp>:
(2014/01/25 11:27), Shigeru Hanada wrote:
Yeah, the consistency is essential for its ease of use.  But I'm not sure
that inherited stats ignoring foreign tables is actually useful for query
optimization.  What I think about the consistency is a) the ANALYZE command
with no table names skips ANALYZEing inheritance trees that include at least
one foreign table as a child, but b) the ANALYZE command with a table name
indicating an inheritance tree that includes any foreign tables does compute
the inherited stats in the same way as an inheritance tree consiting of only
ordinary tables by acquiring the sample rows from each foreign table on the
far side.

b) sounds little complex to understand or explain.

Is it too big change that making ANALYZE command to handle foreign
tables too even if no table name was specified?  IIRC, performance
issue was the reason to exclude foreign tables from auto-analyze
processing.  ANALYZEing large database contains local huge data also
takes long time.  One idea to avoid unexpected long processing is to
add option to foreign tables to mark it as "not-auto-analyzable".

Maybe I didn't express my idea clearly.  Sorry for that.

I don't think that we now allow the ANALYZE command to handle foreign tables when no table name is specified with the command. I think that we allow the ANALYZE command to handle an inheritance tree that includes foreign tables when the name of the parent table is specified, without ignoring such foreign tables in the caluculation. ISTM it would be possible to do so if we introduce a new parameter, say, vac_mode, which indicates wether vacuum() is called with a specific table or not.

I'll try to modify the ANALYZE command to do so on top of you patch.

Thanks,

Best regards,
Etsuro Fujita


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to