From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Kristjan Mustkivi <sonicmonkey(at)gmail(dot)com> |
Cc: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Pgsql Performance <pgsql-performance(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Postgres chooses slow query plan from time to time |
Date: | 2021-09-14 15:47:21 |
Message-ID: | 632224.1631634441@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Kristjan Mustkivi <sonicmonkey(at)gmail(dot)com> writes:
>>> Filter: (((product_code)::text = ($1)::text) AND
>>> ((balance_type)::text = ($4)::text))
> But the Primary Key is defined as btree (cage_code, cage_player_id,
> product_code, balance_type, version) so this should be exactly that
> (apart from the extra "version" column).
Oh, interesting. So this is really a datatype mismatch problem.
I'd wondered idly why you were getting the explicit casts to text
in these conditions, but now it seems that that's key to the
problem: the casts prevent these clauses from being matched to
the index. What are the declared data types of product_code
and balance_type? And of the parameters they're compared to?
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | manish yadav | 2021-09-14 16:22:53 | Re: EnterpriseDB |
Previous Message | Kristjan Mustkivi | 2021-09-14 15:36:45 | Re: Postgres chooses slow query plan from time to time |