Single table

Query

SELECT anon_1.type,
       anon_1.description,
       anon_1.input_of_id,
       anon_1.output_of_id,
       anon_1.id,
       anon_1.string_value,
       anon_1.string_regex,
       anon_1.json_value,
       anon_1.json_schema,
       anon_1.json_initial_value,
       anon_1.json_formly_schema,
       anon_1.boolean_value,
       anon_1.hash_value,
       anon_1.domain_value,
       anon_1.url_value,
       anon_1.ip_value,
       anon_1.date_value,
       anon_1.datetime_value,
       anon_1.email_address_value,
       anon_1.email_message_value,
       anon_1.file_ref_value,
       anon_1.file_value,
       __parent_id,
       __row_number
FROM (SELECT task_input_output_1.type                                                             AS type,
             task_input_output_1.description                                                      AS description,
             task_input_output_1.input_of_id                                                      AS input_of_id,
             task_input_output_1.output_of_id                                                     AS output_of_id,
             task_input_output_1.id                                                               AS id,
             task_input_output_1.string_value                                                     AS string_value,
             task_input_output_1.string_regex                                                     AS string_regex,
             task_input_output_1.json_value                                                       AS json_value,
             task_input_output_1.json_schema                                                      AS json_schema,
             task_input_output_1.json_initial_value                                               AS json_initial_value,
             task_input_output_1.json_formly_schema                                               AS json_formly_schema,
             task_input_output_1.boolean_value                                                    AS boolean_value,
             task_input_output_1.hash_value                                                       AS hash_value,
             task_input_output_1.domain_value                                                     AS domain_value,
             task_input_output_1.url_value                                                        AS url_value,
             task_input_output_1.ip_value                                                         AS ip_value,
             task_input_output_1.date_value                                                       AS date_value,
             task_input_output_1.datetime_value                                                   AS datetime_value,
             task_input_output_1.email_address_value                                              AS email_address_value,
             task_input_output_1.email_message_value                                              AS email_message_value,
             task_input_output_1.file_ref_value                                                   AS file_ref_value,
             task_input_output_1.file_value                                                       AS file_value,
             anon_2.task_id                                                                       AS __parent_id,
             row_number() OVER (PARTITION BY anon_2.task_id ORDER BY task_input_output_1.id DESC) AS __row_number
      FROM task_input_output AS task_input_output_1
               JOIN (SELECT task.weight            AS task_weight,
                            task.name              AS task_name,
                            task.description       AS task_description,
                            task.created           AS task_created,
                            task.last_updated      AS task_last_updated,
                            task.due_date          AS task_due_date,
                            task.state             AS task_state,
                            task.stage_id          AS task_stage_id,
                            task.is_automated      AS task_is_automated,
                            task.type              AS task_type_1,
                            task.task_type         AS task_task_type,
                            task.processing_queue  AS task_processing_queue,
                            task.created_by_id     AS task_created_by_id,
                            task.id                AS task_id,
                            generic_task.id        AS generic_task_id,
                            decision_task.decision AS decision_task_decision,
                            decision_task.id       AS decision_task_id
                     FROM task
                              LEFT OUTER JOIN generic_task ON generic_task.id = task.id
                              LEFT OUTER JOIN decision_task ON decision_task.id = task.id) AS anon_2
                    ON anon_2.task_id = task_input_output_1.input_of_id
      WHERE anon_2.task_id IN (8)) AS anon_1
WHERE __row_number <= 1

Execution times

Try Time (ms)
1 121
3 185
4 73
5 121
6 87
7 70
8 109
9 115
10 70

Average execution time

95.1 ms

bench/explain_plan_1662452870332.svg bench/single_table_analysis.png


Joined table

Query

SELECT anon_1.type,
       anon_1.description,
       anon_1.input_of_id,
       anon_1.output_of_id,
       anon_1.id,
       anon_1.id_1,
       anon_1.string_value,
       anon_1.string_regex,
       anon_1.id_2,
       anon_1.json_value,
       anon_1.json_schema,
       anon_1.json_initial_value,
       anon_1.json_formly_schema,
       anon_1.id_3,
       anon_1.boolean_value,
       anon_1.id_4,
       anon_1.hash_value,
       anon_1.id_5,
       anon_1.domain_value,
       anon_1.id_6,
       anon_1.url_value,
       anon_1.id_7,
       anon_1.ip_value,
       anon_1.id_8,
       anon_1.date_value,
       anon_1.id_9,
       anon_1.datetime_value,
       anon_1.id_10,
       anon_1.email_address_value,
       anon_1.id_11,
       anon_1.email_message_value,
       anon_1.id_12,
       anon_1.file_ref_value,
       anon_1.id_13,
       anon_1.file_value,
       __parent_id,
       __row_number
FROM (SELECT task_input_output_1.type                                                             AS type,
             task_input_output_1.description                                                      AS description,
             task_input_output_1.input_of_id                                                      AS input_of_id,
             task_input_output_1.output_of_id                                                     AS output_of_id,
             task_input_output_1.id                                                               AS id,
             string_input_output_1.id                                                             AS id_1,
             string_input_output_1.string_value                                                   AS string_value,
             string_input_output_1.string_regex                                                   AS string_regex,
             json_input_output_1.id                                                               AS id_2,
             json_input_output_1.json_value                                                       AS json_value,
             json_input_output_1.json_schema                                                      AS json_schema,
             json_input_output_1.json_initial_value                                               AS json_initial_value,
             json_input_output_1.json_formly_schema                                               AS json_formly_schema,
             bool_input_output_1.id                                                               AS id_3,
             bool_input_output_1.boolean_value                                                    AS boolean_value,
             hash_input_output_1.id                                                               AS id_4,
             hash_input_output_1.hash_value                                                       AS hash_value,
             domain_input_output_1.id                                                             AS id_5,
             domain_input_output_1.domain_value                                                   AS domain_value,
             url_input_output_1.id                                                                AS id_6,
             url_input_output_1.url_value                                                         AS url_value,
             ip_input_output_1.id                                                                 AS id_7,
             ip_input_output_1.ip_value                                                           AS ip_value,
             date_input_output_1.id                                                               AS id_8,
             date_input_output_1.date_value                                                       AS date_value,
             date_time_input_output_1.id                                                          AS id_9,
             date_time_input_output_1.datetime_value                                              AS datetime_value,
             email_address_input_output_1.id                                                      AS id_10,
             email_address_input_output_1.email_address_value                                     AS email_address_value,
             email_message_input_output_1.id                                                      AS id_11,
             email_message_input_output_1.email_message_value                                     AS email_message_value,
             file_ref_input_output_1.id                                                           AS id_12,
             file_ref_input_output_1.file_ref_value                                               AS file_ref_value,
             file_input_output_1.id                                                               AS id_13,
             file_input_output_1.file_value                                                       AS file_value,
             anon_2.task_id                                                                       AS __parent_id,
             row_number() OVER (PARTITION BY anon_2.task_id ORDER BY task_input_output_1.id DESC) AS __row_number
      FROM task_input_output AS task_input_output_1
               LEFT OUTER JOIN string_input_output AS string_input_output_1
                               ON string_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN json_input_output AS json_input_output_1
                               ON json_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN bool_input_output AS bool_input_output_1
                               ON bool_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN hash_input_output AS hash_input_output_1
                               ON hash_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN domain_input_output AS domain_input_output_1
                               ON domain_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN url_input_output AS url_input_output_1 ON url_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN ip_input_output AS ip_input_output_1 ON ip_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN date_input_output AS date_input_output_1
                               ON date_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN date_time_input_output AS date_time_input_output_1
                               ON date_time_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN email_address_input_output AS email_address_input_output_1
                               ON email_address_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN email_message_input_output AS email_message_input_output_1
                               ON email_message_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN file_ref_input_output AS file_ref_input_output_1
                               ON file_ref_input_output_1.id = task_input_output_1.id
               LEFT OUTER JOIN file_input_output AS file_input_output_1
                               ON file_input_output_1.id = task_input_output_1.id
               JOIN (SELECT task.weight            AS task_weight,
                            task.name              AS task_name,
                            task.description       AS task_description,
                            task.created           AS task_created,
                            task.last_updated      AS task_last_updated,
                            task.due_date          AS task_due_date,
                            task.state             AS task_state,
                            task.stage_id          AS task_stage_id,
                            task.is_automated      AS task_is_automated,
                            task.type              AS task_type_1,
                            task.task_type         AS task_task_type,
                            task.processing_queue  AS task_processing_queue,
                            task.created_by_id     AS task_created_by_id,
                            task.id                AS task_id,
                            generic_task.id        AS generic_task_id,
                            decision_task.decision AS decision_task_decision,
                            decision_task.id       AS decision_task_id
                     FROM task
                              LEFT OUTER JOIN generic_task ON generic_task.id = task.id
                              LEFT OUTER JOIN decision_task ON decision_task.id = task.id) AS anon_2
                    ON anon_2.task_id = task_input_output_1.output_of_id
      WHERE anon_2.task_id IN (64)) AS anon_1
WHERE __row_number <= 1

Execution times

Try Time (ms)
1 1037
3 1073
4 815
5 1046
6 1016
7 1003
8 1135
9 1002
10 1293

Average execution time

942.0 ms

bench/explain_plan_1662458550561.svg bench/joined_table_analysis.png