Re: Postgres chooses slow query plan from time to time

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

In response to

Responses

Browse pgsql-performance by date

  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