Re: How to improve the performance of my SQL query?

From: gzh <gzhcoder(at)126(dot)com>
To: "Laurenz Albe" <laurenz(dot)albe(at)cybertec(dot)at>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: How to improve the performance of my SQL query?
Date: 2023-07-21 01:43:52
Message-ID: 6f3fd2f9.12b3.189761e1ccc.Coremail.gzhcoder@126.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

The definitions of the columns used in SQL are as follows.

TBL_SHA

ms_cd character(6) NOT NULL -- PRIMARY KEY

et_cd character(8)

etrys character(8)

TBL_INF

ms_cd character(6) NOT NULL -- PRIMARY KEY

ry_cd character(8) NOT NULL -- PRIMARY KEY

I made some modifications to the data, and I realized that I should not change the length of the data.

The actual data and its corresponding execution plan are shown below.

explain analyze

select COUNT(ET_CD)

from TBL_SHA

WHERE TBL_SHA.MS_CD = 'MLD009'

and TBL_SHA.ETRYS in

(select TBL_INF.RY_CD

from TBL_INF

WHERE TBL_INF.MS_CD = 'MLD009'

AND TBL_INF.RY_CD = '00000001'

)

----- Execution Plan -----

Limit (cost=2738709.57..2738709.58 rows=1 width=8) (actual time=124168.769..124168.771 rows=1 loops=1)

-> Aggregate (cost=2738709.57..2738709.58 rows=1 width=8) (actual time=124168.767..124168.769 rows=1 loops=1)

-> Nested Loop (cost=0.29..2730702.63 rows=3202774 width=9) (actual time=97264.166..123920.769 rows=3200000 loops=1)

-> Index Only Scan using TBL_INF_pkc on TBL_INF (cost=0.29..8.31 rows=1 width=9) (actual time=0.025..0.030 rows=1 loops=1)

Index Cond: ((MS_CD = 'MLD009'::bpchar) AND (RY_CD = '00000001'::bpchar))

Heap Fetches: 1

-> Seq Scan on TBL_SHA (cost=0.00..2698666.58 rows=3202774 width=18) (actual time=97264.138..123554.792 rows=3200000 loops=1)

Filter: ((MS_CD = 'MLD009'::bpchar) AND (ETRYS = '00000001'::bpchar))

Rows Removed by Filter: 32000325

Planning Time: 0.162 ms

Execution Time: 124168.838 ms

At 2023-07-20 22:48:19, "Laurenz Albe" <laurenz(dot)albe(at)cybertec(dot)at> wrote:
>On Thu, 2023-07-20 at 22:14 +0800, gzh wrote:
>> The information I provided is incorrect, please see my previous reply.
>
>My question remains: I would like to see the table definitions.
>
>Also, did you ANALYZE the tables?
>
>Yours,
>Laurenz Albe

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message gzh 2023-07-21 02:02:51 Re:How to improve the performance of my SQL query?
Previous Message Thomas Munro 2023-07-20 23:26:06 Re: fsync data directory after DB crash