Re: Long running INSERT+SELECT query - Mailing list pgsql-general

From Vitaliy Garnashevich
Subject Re: Long running INSERT+SELECT query
Date
Msg-id f2b804fc-bd9a-fcf4-f3bd-cb1b129daab4@gmail.com
Whole thread Raw
In response to Re: Long running INSERT+SELECT query  (Adrian Klaver <adrian.klaver@aklaver.com>)
Responses Re: Long running INSERT+SELECT query
Re: Long running INSERT+SELECT query
List pgsql-general
> Without the query we are flying blind, so suggestions will have a ? 

Here is one such query:

     INSERT INTO cmdb_sp_usage_history
       (created_by, updated_by, created_on, updated_on, mod_count,
       summary_on, quarter, product, used_from, "user",
       keystrokes, minutes_in_use, times_started, avg_keystrokes, 
max_keystrokes, spkg_operational)
     SELECT
        2, 2, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 1,
        CURRENT_TIMESTAMP, quarter.id, "spv"."product", 
"usage"."used_from", "usage"."user",
        coalesce(sum("usage"."keystrokes"), 0),
        coalesce(sum("usage"."minutes_in_use"), 0),
        coalesce(sum("usage"."times_started"), 0),
        coalesce(avg("usage"."keystrokes"), 0),
        coalesce(max("usage"."keystrokes"), 0),
        bool_or("cmdb_ci"."operational")
     FROM
       "cmdb_program_daily_usage" "usage"
     LEFT OUTER JOIN
       "cmdb_program_instance" "p" ON "p"."id" = "usage"."program_instance"
     LEFT OUTER JOIN
       "cmdb_ci_spkg" "s" ON "s"."id" = "p"."spkg"
     LEFT OUTER JOIN
       "cmdb_ci" "cmdb_ci" ON "s"."id" = "cmdb_ci"."id"
     LEFT OUTER JOIN
       "cmdb_software_product_version" "spv" ON "spv"."id" = "s"."software"
     WHERE ("usage"."minutes_in_use" > 0)
       AND ((NOT ("s"."software" IS NULL))
            AND ((NOT ("s"."os" = TRUE))
                 OR ("s"."os" IS NULL)))
       AND ("usage"."usage_date" >= quarter.start_date)
       AND ("usage"."usage_date" < quarter.end_date)
     GROUP BY "spv"."product", "usage"."used_from", "usage"."user"
     HAVING (coalesce(sum("usage"."keystrokes"), 0) > 0) OR 
(coalesce(sum("usage"."minutes_in_use"), 0) > 0) OR 
(coalesce(sum("usage"."times_started"), 0) > 0)
     ORDER BY "spv"."product", "usage"."used_from", "usage"."user";

Regards,
Vitaliy



pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Long running INSERT+SELECT query
Next
From: Adrian Klaver
Date:
Subject: Re: Long running INSERT+SELECT query