On 1/15/21 9:19 AM, Alexander Stoddard wrote:
I am having ongoing trouble with a pair of tables, the design of which is
beyond my control.
There is a 'primary' table with hundreds of millions of rows. There is
then a 'subclass' table ~ 10% of the primary which has additional fields.
The tables logically share a primary key field (although that is not
annotated in the schema).
Membership of the subclass table has high correlation with fields in the
primary table - it is very much not random. It seems query plans where the
two tables are joined are 'unstable'. Over time very different plans can
result even for unchanged queries and some plans are exceedingly inefficient.
I think what is going on is that the query planner assumes many fewer rows
are going to join to the subtable than actually do (because of the strong
correlation).
Can anyone offer any advice on dealing with this scenario (or better
diagnosing it)?
Do the tables get analyzed on a regular basis?
--
Angular momentum makes the world go 'round.