Re: [EXT] YNT: Need help tuning a query

From: Amn Ojee Uw <amnojeeuw(at)gmail(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: [EXT] YNT: Need help tuning a query
Date: 2023-09-30 09:58:27
Message-ID: bfd25a98-b57f-7930-eb2b-2e8519c7ebf7@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Wow!! This is what I call cryptic!!

On 9/29/23 2:46 a.m., Vladimir Sitnikov wrote:
> Oh, I misplaced the added where conditions.
> It should have been as follows, however, the overall idea is the same
>
> --- orignial.sql
> +++ tuned_v2.sql
> @@ -83,6 +83,7 @@
>                                 AND (judg1.jrt_opt_out_flag <> 'Y' OR
> judg1.jrt_opt_out_flag IS NULL)
>                      ) sub0
>                 LEFT OUTER JOIN
> +                    LATERAL
>                     (  SELECT sub4.case_year_number,
>                                   sub4.judge_wld_id,
>                                   sub4.judge_id,
> @@ -99,6 +100,7 @@
>                                   jrtf1.higher_judge_id,
>                                   jrtf1.case_document_id
>                              ) sub4
> +                     WHERE sub4.judge_id = sub0.judge_id
>                  GROUP BY sub4.case_year_number,
>                                  sub4.judge_wld_id,
>                                  sub4.judge_id,
> @@ -106,6 +108,7 @@
>                    ) sub1
>                 ON sub1.judge_id = sub0.judge_id
>               LEFT OUTER JOIN
> +                  LATERAL
>                   (SELECT sub5.case_year_number,
>                                 sub5.judge_wld_id,
>                                 sub5.judge_id,
> @@ -129,6 +132,7 @@
>                                 ),
>                                 jrtf2.case_document_id
>                                ) sub5
> +                  WHERE sub5.judge_id = sub0.judge_id
>                GROUP BY sub5.case_year_number,
>                                sub5.judge_wld_id,
>                                sub5.judge_id,
>
> SELECT agg_sub.judge_id,
>        agg_sub.display_name,
>        agg_sub.active_flag,
>        agg_sub.judge_court_level,
>        agg_sub.jrt_fact_first_year_trial,
>        agg_sub.jrt_fact_last_year_trial,
>        agg_sub.jrt_fact_totalcount_trial,
>        agg_sub.filtered_first_year_trial,
>        agg_sub.filtered_last_year_trial,
>        agg_sub.jrt_fact_count_trial,
>        agg_sub.jrt_fact_first_year_appeal,
>        agg_sub.jrt_fact_last_year_appeal,
>        agg_sub.jrt_fact_totalcount_appeal,
>        agg_sub.filtered_first_year_appeal,
>        agg_sub.filtered_last_year_appeal,
>        agg_sub.jrt_fact_count_appeal,
>        appellate_flag_sub.appellate_flag
>    FROM (SELECT sub3.judge_id,
>              sub3.display_name,
>              sub3.active_flag,
>              sub3.judge_court_level,
>              (MIN(sub3.trial_unfilt_case_year_number)) AS
> jrt_fact_first_year_trial,
>              (MAX(sub3.trial_unfilt_case_year_number)) AS
> jrt_fact_last_year_trial,
>              (SUM(sub3.trial_unfilt_subcount)) AS
> jrt_fact_totalcount_trial,
>              (MIN(sub3.trial_filt_case_year_number)) AS
> filtered_first_year_trial,
>              (MAX(sub3.trial_filt_case_year_number)) AS
> filtered_last_year_trial,
>              (SUM(sub3.trial_filt_subcount)) AS jrt_fact_count_trial,
>              (MIN(sub3.appeal_unfilt_case_year_number)) AS
> jrt_fact_first_year_appeal,
>              (MAX(sub3.appeal_unfilt_case_year_number)) AS
> jrt_fact_last_year_appeal,
>              (SUM(sub3.appeal_unfilt_subcount)) AS
> jrt_fact_totalcount_appeal,
>              (MIN(sub3.appeal_filt_case_year_number)) AS
> filtered_first_year_appeal,
>              (MAX(sub3.appeal_filt_case_year_number)) AS
> filtered_last_year_appeal,
>              (SUM(sub3.appeal_filt_subcount)) AS jrt_fact_count_appeal
>            FROM (SELECT sub0.judge_id,
>                     sub0.display_name,
>                     sub0.active_flag,
>                     sub0.judge_court_level,
>                     (CASE WHEN sub2.grouping_flg = 'T' AND
> sub2.judge_wld_id = sub0.judge_wld_id THEN sub2.case_year_number ELSE
> NULL END) AS trial_unfilt_case_year_number,
>                     (CASE WHEN sub2.grouping_flg = 'T'AND
> sub2.judge_wld_id = sub0.judge_wld_id THEN sub2.subcount ELSE NULL END
>                       ) AS trial_unfilt_subcount,
>                     (CASE WHEN sub2.grouping_flg = 'T' AND
> sub2.judge_wld_id = sub0.judge_wld_id THEN (CASE WHEN
> sub2.case_year_number BETWEEN sub0.low_case_year_number AND
> sub0.high_case_year_number
>                            THEN sub2.case_year_number ELSE NULL END)
> ELSE NULL END) AS trial_filt_case_year_number,
>                     (CASE WHEN sub2.grouping_flg = 'T' AND
> sub2.judge_wld_id = sub0.judge_wld_id THEN (CASE WHEN
> sub2.case_year_number BETWEEN sub0.low_case_year_number AND
> sub0.high_case_year_number
>                            THEN sub2.subcount ELSE NULL END       )
> ELSE NULL END        ) AS trial_filt_subcount,
>                     (CASE WHEN sub1.grouping_flg = 'A'AND
> sub1.judge_wld_id = sub0.judge_wld_id THEN sub1.case_year_number WHEN
> sub2.grouping_flg = 'A'   AND sub2.judge_wld_id = sub0.judge_wld_id
>                            THEN sub2.case_year_number ELSE NULL END  
>       ) AS appeal_unfilt_case_year_number,
>                     (
>                     CASE WHEN sub1.grouping_flg = 'A'
>                     AND sub1.judge_wld_id = sub0.judge_wld_id THEN
> sub1.subcount WHEN sub2.grouping_flg = 'A'
>                     AND sub2.judge_wld_id = sub0.judge_wld_id THEN
> sub2.subcount ELSE NULL END
>                     ) AS appeal_unfilt_subcount,
>                     (
>                     CASE WHEN sub1.grouping_flg = 'A'
>                     AND sub1.judge_wld_id = sub0.judge_wld_id THEN (
>                           CASE WHEN sub1.case_year_number BETWEEN
> sub0.low_case_year_number
>                            AND sub0.high_case_year_number THEN
> sub1.case_year_number ELSE NULL END
>                     ) WHEN sub2.grouping_flg = 'A'
>                     AND sub2.judge_wld_id = sub0.judge_wld_id THEN (
>                            CASE WHEN sub2.case_year_number BETWEEN
> sub0.low_case_year_number
>                            AND sub0.high_case_year_number THEN
> sub2.case_year_number ELSE NULL END
>                     ) ELSE NULL END
>                     ) AS appeal_filt_case_year_number,
>                     (
>                     CASE WHEN sub1.grouping_flg = 'A'
>                     AND sub1.judge_wld_id = sub0.judge_wld_id THEN (
>                            CASE WHEN sub1.case_year_number BETWEEN
> sub0.low_case_year_number
>                            AND sub0.high_case_year_number THEN
> sub1.subcount ELSE NULL END
>                     ) WHEN sub2.grouping_flg = 'A'
>                     AND sub2.judge_wld_id = sub0.judge_wld_id THEN (
>                            CASE WHEN sub2.case_year_number BETWEEN
> sub0.low_case_year_number
>                            AND sub0.high_case_year_number THEN
> sub2.subcount ELSE NULL END
>                     ) ELSE NULL END
>                     ) AS appeal_filt_subcount
>                FROM ( SELECT 0104119201 AS judge_wld_id,
>                                  2013 AS low_case_year_number,
>                                  2023 AS high_case_year_number,
>                                  judg1.judge_id,
>                                  judg1.display_name,
>                                  judg1.active_flag,
>                                  judg1.judge_court_level
>                        FROM wln_mart.judge judg1
>                       WHERE judg1.wld_id = 01041192
>                                AND judg1.profile_id = 01
>                                AND (judg1.jrt_opt_out_flag <> 'Y' OR
> judg1.jrt_opt_out_flag IS NULL)
>                     ) sub0
>                LEFT OUTER JOIN
>                     LATERAL
>                    (  SELECT sub4.case_year_number,
>                                  sub4.judge_wld_id,
>                                  sub4.judge_id,
>                                  sub4.grouping_flg,
>                                  COUNT(*) AS subcount
>                       FROM  (SELECT jrtf1.case_year_number,
>                                  jrtf1.higher_judge_wld_id AS
> judge_wld_id,
>                                  jrtf1.higher_judge_id AS judge_id,
>                                  'A' AS grouping_flg,
>                                  jrtf1.case_document_id AS subcount
>                               FROM wln_mart.jrt_fact jrtf1
>                            GROUP BY jrtf1.case_year_number,
>  jrtf1.higher_judge_wld_id,
>                                  jrtf1.higher_judge_id,
>                                  jrtf1.case_document_id
>                             ) sub4
>                      WHERE sub4.judge_id = sub0.judge_id
>                 GROUP BY sub4.case_year_number,
>                                 sub4.judge_wld_id,
>                                 sub4.judge_id,
>                                 sub4.grouping_flg
>                   ) sub1
>                ON sub1.judge_id = sub0.judge_id
>              LEFT OUTER JOIN
>                   LATERAL
>                  (SELECT sub5.case_year_number,
>                                sub5.judge_wld_id,
>                                sub5.judge_id,
>                                sub5.grouping_flg,
>                                COUNT(*) AS subcount
>                    FROM (SELECT jrtf2.case_year_number,
>                                jrtf2.lower_judge_wld_id AS judge_wld_id,
>                                jrtf2.lower_judge_id AS judge_id,
>                                (
>                                         CASE WHEN
> jrtf2.lower_judge_court_level_id = 1004 THEN 'T' ELSE 'A' END
>                                ) AS grouping_flg,
>                                jrtf2.case_document_id AS subcount
>                            FROM wln_mart.jrt_fact jrtf2
>                           WHERE jrtf2.lower_judge_court_level_id > 1000
>                            AND jrtf2.lower_judge_court_level_id <= 1004
>                        GROUP BY jrtf2.case_year_number,
>                                jrtf2.lower_judge_wld_id,
>                                jrtf2.lower_judge_id,
>                                (
>                                         CASE WHEN
> jrtf2.lower_judge_court_level_id = 1004 THEN 'T' ELSE 'A' END
>                                ),
>                                jrtf2.case_document_id
>                               ) sub5
>                   WHERE sub5.judge_id = sub0.judge_id
>               GROUP BY sub5.case_year_number,
>                               sub5.judge_wld_id,
>                               sub5.judge_id,
>                               sub5.grouping_flg
>                  ) sub2
>              ON sub2.judge_id = sub0.judge_id
>       ) sub3
>     GROUP BY sub3.judge_id,
>            sub3.display_name,
>                   sub3.active_flag,
>            sub3.judge_court_level
>   ) agg_sub,
>   (SELECT judge_id,
>         (CASE WHEN (SUM (appellate_flag) < (COUNT(*) / 2)) THEN 0 ELSE
> 1 END    ) AS appellate_flag
>      FROM (SELECT DISTINCT jrtf.case_year_number,
>                jrtf.case_document_id,
>               jrtf.lower_judge_id,
>                jrtf.higher_judge_id,
>                (
>                     CASE WHEN (
>                            lower_judge_wld_id = 0104119201
>                            AND lower_judge_court_level_id = 1004
>               ) THEN 0 ELSE 1 END      ) AS appellate_flag,
>                (
>                     CASE WHEN lower_judge_wld_id = 0104119201 THEN
> lower_judge_id ELSE higher_judge_id END
>                ) AS judge_id
>             FROM wln_mart.JRT_FACT jrtf
>            WHERE LOWER_JUDGE_WLD_ID = 0104119201
>               OR HIGHER_JUDGE_WLD_ID = 0104119201
>         ORDER BY case_year_number DESC
>       ) sub0
>   GROUP BY judge_id
>   LIMIT 11
>   ) appellate_flag_sub
> WHERE
>   Agg_sub.judge_id = appellate_flag_sub.judge_id
>
>
> Vladimir
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Raivo Rebane 2023-09-30 10:49:29 Re: Right version of jdbc
Previous Message Raivo Rebane 2023-09-30 08:10:50 Re: Right version of jdbc