Rules for trigger execution

Started by pginfoabout 23 years ago3 messagesgeneral
Jump to latest
#1pginfo
pginfo@t1.unisoftbg.com

Hi,

Is it possible in pg to define rules for trigger execution.

I have a table with namy fields and have defined trigger ( in PL/SQL) on
updating.

If I try to update one field from the table and it is not includet in
trigger calculation,
pg takes about 15 min for updating 700K records.

If I do not have trigger installed all is ok as performance.

My Question is how to define that I need trigger execution by changin
only some fields from table?

Will be trigger execution faster if I write it in C ?

regards,
ivan.

#2pginfo
pginfo@t1.unisoftbg.com
In reply to: pginfo (#1)
Re: Rules for trigger execution

Richard Huxton wrote:

On Wednesday 29 Jan 2003 11:11 am, pginfo wrote:

Hi,

Is it possible in pg to define rules for trigger execution.
I have a table with namy fields and have defined trigger ( in PL/SQL) on
updating.

If I try to update one field from the table and it is not includet in
trigger calculation, pg takes about 15 min for updating 700K records.

If I do not have trigger installed all is ok as performance.

My Question is how to define that I need trigger execution by changin
only some fields from table?

Unfortunately, you can't specify firing triggers only on changes to certain
columns (although the docs say this is part of the SQL 99 spec).

Will be trigger execution faster if I write it in C ?

Almost certainly, although how much faster depends on what the trigger is
doing. The first thing I'd do is test which columns have changed and exit the
trigger function unless it really has to do some work.

I do the same, but it looks that pg calls slow the trigger.No mather if the
trigger do what else.

regards,
ivan.

Show quoted text

--
Richard Huxton

#3Richard Huxton
dev@archonet.com
In reply to: pginfo (#1)
Re: Rules for trigger execution

On Wednesday 29 Jan 2003 11:11 am, pginfo wrote:

Hi,

Is it possible in pg to define rules for trigger execution.
I have a table with namy fields and have defined trigger ( in PL/SQL) on
updating.

If I try to update one field from the table and it is not includet in
trigger calculation, pg takes about 15 min for updating 700K records.

If I do not have trigger installed all is ok as performance.

My Question is how to define that I need trigger execution by changin
only some fields from table?

Unfortunately, you can't specify firing triggers only on changes to certain
columns (although the docs say this is part of the SQL 99 spec).

Will be trigger execution faster if I write it in C ?

Almost certainly, although how much faster depends on what the trigger is
doing. The first thing I'd do is test which columns have changed and exit the
trigger function unless it really has to do some work.

--
Richard Huxton