pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: tank.zhang <6220104@qq.com>
To: pgsql-performance@postgresql.org
Subject: Postgresql Sort cost Poor performance?
Date: Mon, 1 Apr 2019 02:45:14 -0700 (MST)
Message-ID: <1554111914781-0.post@n3.nabble.com> (raw)

1、postgresql version

qis3_dp2=> select * from version();
                                                 version                                                 
---------------------------------------------------------------------------------------------------------
 PostgreSQL 11.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5
20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)

qis3_dp2=> 

2、postgresql work_mem 


qis3_dp2=> SHOW work_mem;
 work_mem 
----------
 2GB
(1 row)

qis3_dp2=> SHOW  shared_buffers;
 shared_buffers 
----------------
 4028MB
(1 row)

qis3_dp2=> 

3、Table count

qis3_dp2=> select count(*) from  QIS_CARPASSEDSTATION;
  count   
----------
 11453079
(1 row)

qis3_dp2=> 

4、table desc

qis3_dp2=> \dS QIS_CARPASSEDSTATION;
                   Table "qis_schema.qis_carpassedstation"
    Column    |            Type             | Collation | Nullable | Default 
--------------+-----------------------------+-----------+----------+---------
 iid          | integer                     |           | not null | 
 scartypecd   | character varying(50)       |           |          | 
 svin         | character varying(20)       |           |          | 
 sstationcd   | character varying(50)       |           |          | 
 dpassedtime  | timestamp(6) with time zone |           |          | 
 dworkdate    | date                        |           |          | 
 iworkyear    | integer                     |           |          | 
 iworkmonth   | integer                     |           |          | 
 iweek        | integer                     |           |          | 
 sinputteamcd | character varying(20)       |           |          | 
 sinputdutycd | character varying(20)       |           |          | 
 smtoc        | character varying(50)       |           |          | 
 slineno      | character varying(18)       |           |          | 
Indexes:
    "qis_carpassedstation_pkey" PRIMARY KEY, btree (iid)
    "q_carp_dworkdate" btree (dworkdate)
    "q_carp_smtoc" btree (smtoc)

qis3_dp2=> 

5、Execute SQL:
qis3_dp2=> EXPLAIN (analyze true,buffers true)   SELECT COUNT(DISTINCT SVIN)
AS CHECKCARNUM ,SMTOC FROM QIS_CARPASSEDSTATION A WHERE 1=1 AND A.SSTATIONCD
= 'VQ3_LYG' AND A.SLINENO IN ( '1F' , '2F' , '3F' ) AND A.DWORKDATE >=
TO_DATE('2017-02-11','YYYY-MM-DD') AND A.DWORKDATE <=
TO_DATE('2019-03-11','YYYY-MM-DD') group by  SMTOC
;
                                                                                                                         
QUERY PLAN                                                                              
                                             
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------
 GroupAggregate  (cost=697738.61..714224.02 rows=372 width=30) (actual
time=5908.786..32420.412 rows=410 loops=1)
   Group Key: smtoc
   Buffers: shared hit=401 read=184983
   I/O Timings: read=1377.762
   ->  Sort  (cost=697738.61..703232.51 rows=2197559 width=40) (actual
time=5907.791..6139.351 rows=2142215 loops=1)
         Sort Key: smtoc
         Sort Method: quicksort  Memory: 265665kB
         Buffers: shared hit=401 read=184983
         I/O Timings: read=1377.762
         ->  Gather  (cost=1000.00..466253.56 rows=2197559 width=40) (actual
time=0.641..1934.614 rows=2142215 loops=1)
               Workers Planned: 5
               Workers Launched: 5
               Buffers: shared hit=401 read=184983
               I/O Timings: read=1377.762
               ->  Parallel Seq Scan on qis_carpassedstation a 
(cost=0.00..245497.66 rows=439512 width=40) (actual time=0.245..1940.527
rows=357036 loops=6)
                     Filter: (((sstationcd)::text = 'VQ3_LYG'::text) AND
((slineno)::text = ANY ('{1F,2F,3F}'::text[])) AND (dworkdate >=
to_date('2017-02-11'::text, 'YYYY-MM-DD'::text)) AND (dworkdate <= to_da
te('2019-03-11'::text, 'YYYY-MM-DD'::text)))
                     Rows Removed by Filter: 1551811
                     Buffers: shared hit=401 read=184983
                     I/O Timings: read=1377.762
 Planning Time: 0.393 ms
 Execution Time: 32439.704 ms
(21 rows)

qis3_dp2=> 


6、Why does sort take a long time to execute and how can you optimize it?
Thanks!!!






--
Sent from: http://www.postgresql-archive.org/PostgreSQL-performance-f2050081.html





view thread (9+ messages)  latest in thread

Message-ID: <1554111914781-0.post@n3.nabble.com>
Permalink:  ../1554111914781-0.post@n3.nabble.com/
Also on:    postgresql.org/message-id/1554111914781-0.post@n3.nabble.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: 6220104@qq.com
  Subject: Re: Postgresql Sort cost Poor performance?
  In-Reply-To: <1554111914781-0.post@n3.nabble.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox