From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Richard Guo <guofenglinux(at)gmail(dot)com> |
Cc: | Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, David Geier <geidav(dot)pg(at)gmail(dot)com>, PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Optimize join selectivity estimation by not reading MCV stats for unique join attributes |
Date: | 2022-11-18 05:21:36 |
Message-ID: | 2130228.1668748896@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Richard Guo <guofenglinux(at)gmail(dot)com> writes:
> Yes, it is. Using zero flag would short-cut get_attstatsslot() to just
> return whether the slot type exists without loading it. Do you think we
> need to emphasize this use case in the comments for 'flags'?
Perhaps, it's not really obvious now.
> I wonder whether we need to also check statistic_proc_security_check()
> when determining if MCVs exists in both sides.
Yeah, I thought about hoisting the statistic_proc_security_check
tests up into get_mcv_stats. I don't think it's a great idea
though. Again, it'd complicate untangling this if we ever
generalize the use of MCVs in this function. Also, I don't
think we should be micro-optimizing the case where the security
check doesn't pass --- if it doesn't, you're going to be hurting
from bad plans a lot more than you are from some wasted cycles
here.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2022-11-18 05:50:36 | Re: Assertion failure in SnapBuildInitialSnapshot() |
Previous Message | Amit Kapila | 2022-11-18 05:07:14 | Re: Perform streaming logical transactions by background workers and parallel apply |