From: | Satalabaha Postgres <satalabaha(dot)postgres(at)gmail(dot)com> |
---|---|
To: | Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> |
Cc: | pgsql-performance(at)lists(dot)postgresql(dot)org |
Subject: | Re: Weird behavior of INSERT QUERY |
Date: | 2023-06-04 14:49:37 |
Message-ID: | CAJ_W8nZ0LtVLJsSSRjR6b+poNswtNsm4n7B5jbRUkYbHxQPmuw@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On Sun, 4 Jun 2023 at 19:46, Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> wrote:
> Em dom., 4 de jun. de 2023 às 05:35, Satalabaha Postgres <
> satalabaha(dot)postgres(at)gmail(dot)com> escreveu:
>
>> Hi Listers,
>>
>> DB : postgres 14.
>>
>> We are experiencing weird performance issue of one simple insert
>> statement taking several minutes to insert data. The application calls
>> insert statement via stored procedure show mentioned below.
>>
>> The select query in the insert returns about 499 rows. However, this
>> insert statement when executed from application user i.e. schema1_u takes
>> close to 8 minutes. When the same insert statement gets executed as
>> postgres user it takes less than 280 ms. Both the executions use the same
>> execution plan with only difference that when schema1_u executes the SQL,
>> we observe "Trigger for constraint fk_con_tablea: time=426499.314
>> calls=499" taking more time. Both the parent and child tables are not big
>> in size. There is no table bloat etc for both of these tables. Below are
>> the details.
>> Is there any way we can identify why as postgres user the insert
>> statement works fine and why not with application user schema1_u?
>>
>> Stored Procedure:
>> ====================
>>
>> CREATE OR REPLACE FUNCTION schema1.ins_staging_fn(parfileid double
>> precision, parcreatedby text)
>> RETURNS void
>> LANGUAGE plpgsql
>> AS $function$
>> BEGIN
>> insert into table_a
>> (
>> ROWVERSION,
>> CREATED,
>> ISDELETED,
>> ISIGNORED,
>> IMPORTEDACCOUNTCODE,
>> IMPORTEDUNITCODE,
>> BEGINNINGBALANCE,
>> ENDINGBALANCE,
>> CREATEDBY,
>> FILEID
>> )
>> select to_timestamp(To_char(clock_timestamp(),'DD-MON-YY
>> HH.MI.SS.FF4 AM'),'DD-MON-YY HH.MI.SS.FF4 AM'),
>> to_timestamp(To_char(clock_timestamp() at time zone
>> 'utc', 'DD-MON-YY HH.MI.SS.MS AM'),'DD-MON-YY HH.MI.SS.FF4 AM'),
>> false,
>> false,
>> IMPORTEDACCOUNTCODE,
>> IMPORTEDUNITCODE,
>> BEGINNINGBALANCE,
>> ENDINGBALANCE,
>> parCreatedBy,
>> FILEID
>> from STAGING_table_a
>> where FILEID = parFileId;
>>
>> END;
>> $function$
>> ;
>>
> Can you show what type is FILEID?
>
> Can there be type mismatch?
>
>
regards,
> Ranier Vilela
>
Thanks Ranier. Please find the below.
\d+ schema1.table_a
Table "schema1.table_a"
Column | Type | Collation |
Nullable | Default | Storage | Stats target | Description
---------------------+--------------------------------+-----------+----------+---------+----------+--------------+-------------
id | numeric(20,0) | | not
null | | main | |
rowversion | timestamp(4) without time zone | | not
null | | plain | |
created | timestamp(4) without time zone | | not
null | | plain | |
isdeleted | boolean | | not
null | | plain | |
lastupdated | timestamp(4) without time zone | |
| | plain | |
isignored | boolean | | not
null | | plain | |
importedaccountcode | character varying(255) | |
| | extended | |
importedunitcode | character varying(255) | |
| | extended | |
beginningbalance | numeric(19,5) | |
| | main | |
endingbalance | numeric(19,5) | |
| | main | |
createdbyid | numeric(20,0) | |
| | main | |
updatedbyid | numeric(20,0) | |
| | main | |
fileid | numeric(20,0) | | not
null | | main | |
previousid | numeric(20,0) | |
| | main | |
createdby | character varying(255) | |
| | extended | |
lastupdatedby | character varying(255) | |
| | extended | |
\d+ schema1.table_b
Table "schema1.table_b"
Column | Type | Collation |
Nullable | Default | Storage | Stats target | Description
--------------------------+--------------------------------+-----------+----------+---------+----------+--------------+-------------
id | numeric(20,0) | |
not null | | main | |
rowversion | timestamp(4) without time zone | |
not null | | plain | |
created | timestamp(4) without time zone | |
not null | | plain | |
isdeleted | boolean | |
not null | | plain | |
lastupdated | timestamp(4) without time zone | |
| | plain | |
version | numeric(10,0) | |
not null | | main | |
isactive | boolean | |
not null | | plain | |
name | character varying(255) | |
not null | | extended | |
displayname | character varying(255) | |
not null | | extended | |
ispublished | boolean | |
not null | | plain | |
isretired | boolean | |
not null | | plain | |
publishdatetime | timestamp(4) without time zone | |
| | plain | |
createdbyid | numeric(20,0) | |
| | main | |
updatedbyid | numeric(20,0) | |
| | main | |
periodid | numeric(20,0) | |
not null | | main | |
uploadchartyearversionid | numeric(20,0) | |
not null | | main | |
importchartyearversionid | numeric(20,0) | |
| | main | |
initialtbadjversionid | numeric(20,0) | |
| | main | |
latesttbadjversionid | numeric(20,0) | |
| | main | |
trialbalancesourceid | numeric(20,0) | |
not null | | main | |
filedefinitionid | numeric(20,0) | |
not null | | main | |
createdby | character varying(255) | |
| | extended | |
lastupdatedby | character varying(255) | |
| | extended | |
Regards, Satalabaha
From | Date | Subject | |
---|---|---|---|
Next Message | Satalabaha Postgres | 2023-06-04 14:58:18 | Re: Weird behavior of INSERT QUERY |
Previous Message | Ranier Vilela | 2023-06-04 14:16:45 | Re: Weird behavior of INSERT QUERY |