| From: | Durgamahesh Manne <maheshpostgres9(at)gmail(dot)com> |
|---|---|
| To: | Greg Sabino Mullane <htamfids(at)gmail(dot)com> |
| Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Regarding query optimisation (select for update) |
| Date: | 2026-02-16 00:38:41 |
| Message-ID: | CAJCZko+o7JsmkY02tf2QHfLVaykORKoWXT5facBuAUJqSOBkcA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Mon, 16 Feb, 2026, 05:56 Durgamahesh Manne, <maheshpostgres9(at)gmail(dot)com>
wrote:
>
>
> On Tue, 15 Jul, 2025, 20:21 Greg Sabino Mullane, <htamfids(at)gmail(dot)com>
> wrote:
>
>> You might want to examine the SKIP LOCKED feature as well, if you are
>> using this query to have multiple workers grab chunks of the table to work
>> on concurrently.
>>
>> Cheers,
>> Greg
>>
>> --
>> Crunchy Data - https://www.crunchydata.com
>> Enterprise Postgres Software Products & Tech Support
>>
>
> Hi
>
> We are facing issues with session blocking
>
>> e3scoring=> \d+ competition_category Table
>> "e3scoring.competition_category" Column | Type | Collation | Nullable |
>> Default | Storage | Compression | Stats target | Description
>> --------------+-----------------------------+-----------+----------+---------+----------+-------------+--------------+-------------
>> id | character varying(36) | | not null | | extended | | | name | character
>> varying | | | | extended | | | short_name | character varying | | | |
>> extended | | | sport_id | character varying(36) | | | | extended | | |
>> competitions | jsonb | | | | extended | | | sort_factor | real | | | |
>> plain | | | brand_id | character varying(36) | | not null | | extended | |
>> | created_at | timestamp without time zone | | | now() | plain | | |
>> modified | timestamp without time zone | | | | plain | | | version |
>> integer | | not null | 0 | plain | | | Indexes: "competition_category_pk"
>> PRIMARY KEY, btree (id) "unique_name_brand_sport" UNIQUE CONSTRAINT, btree
>> (name, brand_id, sport_id) Foreign-key constraints:
>> "competition_category_fk" FOREIGN KEY (brand_id) REFERENCES brand(brandid)
>> Access method: heap Options: fillfactor=75
>>
>
> select "version", competitions from competition_category cc where name =
> $1 and brand_id = $2 and sport_id = $3 FOR UPDATE
>
> Is there any best approach to optimize this with out sessions blocking
> most of the time while running mentioned query?
>
> Regards
> Durga Mahesh
>
Hi
Does this work in better way please check once
WITH c AS ( SELECT * FROM competition_category WHERE name = $1
AND brand_id = $2 AND sport_id = $3 ) SELECT "version", competitions
FROM c FOR UPDATE;
(OR)
SELECT "version", competitions FROM competition_category WHERE id = (
SELECT id FROM competition_category WHERE name = $1 AND brand_id =
$2 AND sport_id = $3 ) FOR UPDATE;
(OR)
UPDATE competition_category SET version = version WHERE name = $1 AND
brand_id = $2 AND sport_id = $3 RETURNING "version", competitions;
I am not a data developer.Was getting this multiple sources
Regards
Durga Mahesh
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Laurenz Albe | 2026-02-16 08:59:55 | Re: Question on execution plan and suitable index |
| Previous Message | Durgamahesh Manne | 2026-02-16 00:26:44 | Re: Regarding query optimisation (select for update) |