<<

The problem that I have is thatthe trigger adds an enormous amount of 
processing time(10 times longer), even when the trigger isbeing bypassed.  As a 
work around, I drop the trigger when the triggerwhen itis notneeded, instead of 
using the bypass.
Is thisbehaviornormal or do I have something wrongwith my codeor my process.>>

This behavior is normal and expected as far as I know.

The bulk of the overhead with triggers is in detecting the existence of the 
trigger, finding the stored procedure code, and executing it.  The fact that 
you skip over most of the code in your trigger doesn't eliminate that basic 
overhead.  R:Base is extraordinarily fast at basic UPDATE operations, but when 
you stick an interpreted code process in the middle of update to each row, 
you're invariably going to slow down the operation substantially.

Even if RBTI were to go all out optimizing trigger performance, I'm sure that 
using a trigger will slow down an update by a factor of several hundred percent.

You're left with dropping and re-adding the trigger, which is not a great 
solution (the purpose of a trigger, after all, is to become an unavoidable part 
of the database structure), accepting the performance hit, or refactoring your 
database in some way to separate out the "trigger" and "non-trigger" rows into 
separate tables.
--
Larry

Reply via email to