Re:

From: Igor Korot <ikorot01(at)gmail(dot)com>
To: Atul Kumar <akumar14871(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re:
Date: 2021-07-02 15:05:56
Message-ID: CA+FnnTyjs7tL6b6KVANxwN6TPmQ8-QcUWt=E2qsk=6gUrXkL0g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

On Fri, Jul 2, 2021, 5:24 AM Atul Kumar <akumar14871(at)gmail(dot)com> wrote:

> Hi,
>
> I have one query like below :
>
>
> SELECT
> m.iMemberId "memberId",
> m.cFirstName "firstName",
> m.cLastName "lastName",
> m.cFirstName || ' ' ||
> m.cLastName "fullName",
> m.cPlayerStateId "stateId",
> DECODE(m.cBirthdateVerify, 1,
> 'Yes', 'No') "birthdateVerify",
> TO_CHAR(m.dBirthDate,
> 'MM/DD/YYYY') "dateOfBirth",
> p.cPosition "position",
> p.cJerseyNumber "number",
> DECODE(daps.status, 2, 'PT',
> 1, 'FT', NULL) "daps",
> op.cCitizenship "citizenship",
> op.cNotes "notes",
> NVL(op.cCountryOfBirth,
> op.cCountryOfBirthOther) "countryOfBirth"
> FROM sam_gameroster r
> INNER JOIN sam_guestParticipant p ON
> p.iMemberId = r.iMemberId AND p.iContainerId = r.iContainerId
> INNER JOIN sam_member m ON m.iMemberId
> = p.iMemberId
> INNER JOIN sam_container c ON
> c.iContainerId = r.iContainerId
> LEFT JOIN sam_container lc ON
> c.iContainerLinkId = lc.iContainerId
> LEFT JOIN sam_participant op ON
> op.iassignContainerId = NVL(c.iContainerLinkId, c.iContainerId) AND
> op.imemberID = m.imemberId
> LEFT JOIN (
> SELECT pp.iMemberId,
> MAX(CASE WHEN
> pp.cDpFtStatus = 'PT' THEN 2
> WHEN
> pp.cDpFtStatus = 'FT' THEN 1
> ELSE 0 END) status
> FROM sam_participant pp
> WHERE pp.igroupid =
> getGroupId() GROUP BY pp.iMemberId
> ) daps ON daps.iMemberId = r.iMemberId
> LEFT JOIN sam_playersuspension ps ON
> ps.iMemberId = m.iMemberId AND ps.iEventId = r.iEventId
> WHERE r.iEventId = '7571049' AND
> r.iContainerId = '15257396' AND ((ps.iIsAutoCreated = 1 AND
> ps.iIsTombstone = 1) OR ps.iPlayerSuspensionId IS NULL)
> ORDER BY LOWER(m.cLastName),
> LOWER(m.cFirstName)
>
>
>
>
>
> And the execution of above query is
>
>
>
>
> QUERY PLAN
>
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> Sort (cost=783789.11..783789.11 rows=1 width=377) (actual
> time=12410.619..12410.619 rows=0 loops=1)
> Sort Key: (lower((m.clastname)::text)), (lower((m.cfirstname)::text))
> Sort Method: quicksort Memory: 25kB
> Buffers: shared hit=525065
> -> Merge Right Join (cost=781822.64..783789.10 rows=1 width=377)
> (actual time=12410.609..12410.609 rows=0 loops=1)
> Merge Cond: (pp.imemberid = r.imemberid)
> Buffers: shared hit=525065
> -> GroupAggregate (cost=781820.08..783074.57 rows=55308
> width=11) (actual time=12410.251..12410.251 rows=1 loops=1)
> Group Key: pp.imemberid
> Buffers: shared hit=524884
> -> Sort (cost=781820.08..781960.36 rows=56113
> width=10) (actual time=12410.234..12410.234 rows=3 loops=1)
> Sort Key: pp.imemberid
> Sort Method: quicksort Memory: 207217kB
> Buffers: shared hit=524884
> -> Seq Scan on sam_participant pp
> (cost=0.00..777393.87 rows=56113 width=10) (actual
> time=0.284..10871.913 rows=2335154 loops=1)
> Filter: ((igroupid)::integer =
> (current_setting('env.groupid'::text))::integer)
> Rows Removed by Filter: 8887508
> Buffers: shared hit=524884
> -> Materialize (cost=2.56..23.14 rows=1 width=184) (actual
> time=0.354..0.354 rows=0 loops=1)
> Buffers: shared hit=181
> -> Nested Loop Left Join (cost=2.56..23.14 rows=1
> width=184) (actual time=0.352..0.353 rows=0 loops=1)
> Join Filter: (ps.ieventid = r.ieventid)
> Filter: (((ps.iisautocreated = '1'::numeric) AND
> (ps.iistombstone = '1'::numeric)) OR (ps.iplayersuspensionid IS NULL))
> Buffers: shared hit=181
> -> Nested Loop Left Join (cost=2.28..22.82
> rows=1 width=190) (actual time=0.351..0.351 rows=0 loops=1)
> Join Filter: (op.iassigncontainerid =
> nvl(c.icontainerlinkid, c.icontainerid))
> Buffers: shared hit=181
> -> Nested Loop (cost=1.84..21.95 rows=1
> width=159) (actual time=0.350..0.350 rows=0 loops=1)
> Buffers: shared hit=181
> -> Nested Loop (cost=1.41..13.49
> rows=1 width=153) (actual time=0.349..0.350 rows=0 loops=1)
> Join Filter: (r.imemberid =
> p.imemberid)
> Buffers: shared hit=181
> -> Nested Loop
> (cost=0.99..13.04 rows=1 width=69) (actual time=0.051..0.274 rows=25
> loops=1)
> Buffers: shared hit=106
> -> Index Only Scan using
> gmr_pk on sam_gameroster r (cost=0.56..4.58 rows=1 width=19) (actual
> time=0.029..0.051 rows=25 loops=1)
> Index Cond:
> ((ieventid = '7571049'::numeric) AND (icontainerid =
> '15257396'::numeric))
> Heap Fetches: 0
> Buffers: shared hit=5
> -> Index Scan using
> member_pk on sam_member m (cost=0.43..8.45 rows=1 width=50) (actual
> time=0.007..0.007 rows=1 loops=25)
> Index Cond:
> (imemberid = r.imemberid)
> Buffers: shared hit=101
> -> Index Scan using gp_pk on
> sam_guestparticipant p (cost=0.42..0.44 rows=1 width=97) (actual
> time=0.002..0.002 rows=0 loops=25)
> Index Cond:
> ((icontainerid = '15257396'::numeric) AND (imemberid = m.imemberid))
> Buffers: shared hit=75
> -> Index Scan using cont_pk on
> sam_container c (cost=0.43..8.45 rows=1 width=12) (never executed)
> Index Cond: (icontainerid =
> '15257396'::numeric)
> -> Index Scan using newindex5 on
> sam_participant op (cost=0.43..0.76 rows=7 width=56) (never executed)
> Index Cond: (imemberid = m.imemberid)
> -> Index Scan using uniq_psusp_memb_event on
> sam_playersuspension ps (cost=0.29..0.31 rows=1 width=26) (never
> executed)
> Index Cond: ((imemberid = m.imemberid) AND
> (ieventid = '7571049'::numeric))
> Planning time: 2.818 ms
> Execution time: 12416.544 ms
> (52 rows)
>
>
>
>
>
> issue I Found out:
>
> -> Seq Scan on sam_participant pp (cost=0.00..777393.87 rows=56113
> width=10) (actual time=0.277..10869.750 rows=2335154 loops=1)
> Filter: ((igroupid)::integer =
> (current_setting('env.groupid'::text))::integer)
> Rows Removed by Filter: 8887508
> Buffers: shared hit=524884
>
>
>
>
>
> I have already an index on the column igroupid of table
> sam_participant, but still it is doig seq scan, which is time
> consuming or is their something else is fishy.
>
> Can someone please help me by giving one's feedback.
>

Could you please show the tables schema involved?

Thank you.

>
>
> Regards.
>
>
>

In response to

  • at 2021-07-02 12:24:40 from Atul Kumar

Responses

  • at 2021-07-02 15:22:32 from Tom Lane
  • Re: at 2021-07-05 06:06:57 from Atul Kumar

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2021-07-02 15:16:15 Re: Damaged (during upgrade?) table, how to repair?
Previous Message Atul Kumar 2021-07-02 12:24:40