Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nfT2d-0001K0-Gp for pgsql-admin@arkaria.postgresql.org; Fri, 15 Apr 2022 20:59:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nfT2a-00040j-VW for pgsql-admin@arkaria.postgresql.org; Fri, 15 Apr 2022 20:59:40 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nfT2a-00040Z-Ih for pgsql-admin@lists.postgresql.org; Fri, 15 Apr 2022 20:59:40 +0000 Received: from mail-vs1-xe32.google.com ([2607:f8b0:4864:20::e32]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nfT2W-0001KJ-UT for pgsql-admin@lists.postgresql.org; Fri, 15 Apr 2022 20:59:39 +0000 Received: by mail-vs1-xe32.google.com with SMTP id i34so6923864vsv.6 for ; Fri, 15 Apr 2022 13:59:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=Ty/M4+iDcQs1GWJegsGpfhT58sTf47PH5uZC5swzDX0=; b=dmsaqyHSZ18apNRmoPNmRhmtzz0FvpPyXKNb1ZAlD8pSaGidBWbszeI6oZCQ3sFpPN fMdD6J4i/vAiixnq1d9BdpUsPNnGxSnjSjPUug7d3xgeIgl8q90real5CQwhKgcv+DlX /MrHjXezzeaT/0ZNgyf6kPivBYMtMvHKh7QyH1ONi5keKE2WPq6WbznOKxgbcnJe51B2 mtNClfOgZjVlrXbvmrpn7b17EGvTefEiG6ScXaEPiyDnB0OkESBHsjQSrd19WRsHdOCP C10n48ETnVq0LTdgwMkLtzoUua/BZP9PyW338LU+8UeJnh4SHcxoKfZ8ubyTil6Zs6KW xcjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Ty/M4+iDcQs1GWJegsGpfhT58sTf47PH5uZC5swzDX0=; b=tgbkOBAVSNUw1/dfvP7OHyLqPmXLMnhkZGSrF3CCgHkk8apNxMrI52pwTdt1YFBUys TBzo9usclDRQ9ZMFCS4uFEASIs1dhWg6NjgA5Hce7bB8HXbpq4d9d1ailN1/Ddy87aG2 JRCxTPz7KL7Fb2oLehKTnHm3ZEnfP+upjghs6CI8Fb5uTtHb43iV5y0YBy0ck1fLWdg9 XLBzSkFzpchtF98nR0iD6LczqfS8kBAcY483EJEapSv2FlH9/ulEL9L8jk4w+c+HYjqN 3O8SoK6Fz/G2YOEKuJ7h4oXif0AlxPz8eh6MnOKcFTlJayAh0HSUYaLVqdSYrHpxAo1F 4dYg== X-Gm-Message-State: AOAM531D+zUBS6LeEbSXZTK0FVvZKXWG9EMC0BViuGLXVW90LlB9hZKm Q+pEpbz8az5T4IWrATkfJxqc15DjPIcksW6+VEnzmX2On/o= X-Google-Smtp-Source: ABdhPJzMNhXxuMo8VDAY1ggQxBH8e2E/bniW5K8bCageMFAalN38ZucKDvZbqdOfpTwg6m6x+tW+jY3YdEfcqAmppII= X-Received: by 2002:a05:6102:3f90:b0:32a:2069:988d with SMTP id o16-20020a0561023f9000b0032a2069988dmr282689vsv.42.1650056375909; Fri, 15 Apr 2022 13:59:35 -0700 (PDT) MIME-Version: 1.0 From: Kenny Bachman Date: Fri, 15 Apr 2022 23:59:25 +0300 Message-ID: Subject: postgresql-14 slow query To: pgsql-admin@lists.postgresql.org Content-Type: multipart/alternative; boundary="00000000000025412b05dcb7b002" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000025412b05dcb7b002 Content-Type: text/plain; charset="UTF-8" Hello Team, How can I tune this query? It got even slower when I created the index for (state_id, order_id desc). The following explain analyze output is without an index. It takes 13 seconds if I create that index. Could you help me? Thank you so much for your help. SELECT DISTINCT ON (order_history.order_id) order_id, order_history.creation_date AS c_date FROM work.order_history WHERE (order_history.state_id = ANY (ARRAY[30, 51, 63, 136, 195, 233, 348])) AND order_history.is_false = 0 ORDER BY order_history.order_id DESC; EXPLAIN ANALYZE output: Unique (cost=672007.46..1519683.55 rows=206423 width=12) (actual time=1701.420..3439.095 rows=2049357 loops=1) -> Gather Merge (cost=672007.46..1502346.48 rows=6934827 width=12) (actual time=1701.419..2989.243 rows=6891551 loops=1) Workers Planned: 4 Workers Launched: 4 -> Sort (cost=671007.40..675341.67 rows=1733707 width=12) (actual time=1657.609..1799.723 rows=1378310 loops=5) Sort Key: order_id DESC Sort Method: external merge Disk: 38960kB Worker 0: Sort Method: external merge Disk: 31488kB Worker 1: Sort Method: external merge Disk: 36120kB Worker 2: Sort Method: external merge Disk: 31368kB Worker 3: Sort Method: external merge Disk: 36152kB -> Parallel Seq Scan on order_history (cost=0.00..473993.00 rows=1733707 width=12) (actual time=0.041..1211.485 rows=1378310 loops=5) Filter: ((is_false = 0) AND (state_id = ANY ('{30,51,63,136,195,233,348}'::integer[]))) Rows Removed by Filter: 3268432 Planning Time: 0.405 ms Execution Time: 3510.433 ms --00000000000025412b05dcb7b002 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello Team,

How can I tune this query? = It got even slower when I created the index for (state_id, order_id desc). = The following explain analyze output is without=C2=A0an=C2=A0index. It take= s 13 seconds if I create that index. Could you help me?

Thank you so much for your help.

SELECT DIST= INCT ON (order_history.order_id) order_id, order_history.creation_date =C2= =A0AS c_date
FROM work.order_history WHERE (order_history.state_id =3D A= NY (ARRAY[30, 51, 63, 136, 195, 233, 348])) AND order_history.is_false =3D = 0
ORDER BY order_history.order_id DESC;

EXP= LAIN ANALYZE output:

=C2=A0Unique =C2=A0(cost=3D67= 2007.46..1519683.55 rows=3D206423 width=3D12) (actual time=3D1701.420..3439= .095 rows=3D2049357 loops=3D1)
=C2=A0 =C2=A0-> =C2=A0Gather Merge =C2= =A0(cost=3D672007.46..1502346.48 rows=3D6934827 width=3D12) (actual time=3D= 1701.419..2989.243 rows=3D6891551 loops=3D1)
=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0Workers Planned: 4
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Workers Laun= ched: 4
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-> =C2=A0Sort =C2=A0(cost= =3D671007.40..675341.67 rows=3D1733707 width=3D12) (actual time=3D1657.609.= .1799.723 rows=3D1378310 loops=3D5)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0Sort Key: order_id DESC
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0Sort Method: external merge =C2=A0Disk: 38960kB<= br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Worker 0: =C2=A0S= ort Method: external merge =C2=A0Disk: 31488kB
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Worker 1: =C2=A0Sort Method: external merge = =C2=A0Disk: 36120kB
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0Worker 2: =C2=A0Sort Method: external merge =C2=A0Disk: 31368kB
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Worker 3: =C2=A0Sort Me= thod: external merge =C2=A0Disk: 36152kB
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0-> =C2=A0Parallel Seq Scan on order_history =C2= =A0(cost=3D0.00..473993.00 rows=3D1733707 width=3D12) (actual time=3D0.041.= .1211.485 rows=3D1378310 loops=3D5)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Filter: ((is_false =3D 0) AND (sta= te_id =3D ANY ('{30,51,63,136,195,233,348}'::integer[])))
=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Rows = Removed by Filter: 3268432
=C2=A0Planning Time: 0.405 ms
=C2=A0Execut= ion Time: 3510.433 ms
--00000000000025412b05dcb7b002--