I did some bulk load testing with triggers on v8.1.7.4 a few months ago. All the trigger(s) had for code was a "NULL;" statement. The first trigger increased the time 100% in the insert (ie: a load that took 1 minute increased to 2 minutes with the trigger). Each additional trigger after the first cost an additional 25%.
So I would read that as a 75% cost/increase to do the SQL to PLSQL switch. [EMAIL PROTECTED] .com To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]> Sent by: cc: [EMAIL PROTECTED] Subject: Re: Do triggers cause a context switch between SQL & PL/SQL 04/01/03 12:43 PM Please respond to ORACLE-L I thought as much, from what I've heard and read. Does anyone know if there's a way to figure out how much overhead the switches generate? I'm guessing they would show up in trace files in the 'other CPU' category. [EMAIL PROTECTED] T Sent by: To: Multiple recipients of list ORACLE-L [EMAIL PROTECTED] <[EMAIL PROTECTED]> cc: bcc: 04/01/03 01:19 PM Subject: Re: Do Please respond to triggers cause a context switch between SQL & PL/SQL ORACLE-L Since you the action switches from SQL to PL/SQL to enforce the trigger, it sounds like a context switch to me. FYI: This can be improved somewhat by adding "and rownum < 2 " into the WHERE clauses of these. There will be noticable improvement when there are many child rows. Jared [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 04/01/2003 09:48 AM Please respond to ORACLE-L To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]> cc: Subject: Do triggers cause a context switch between SQL & PL/SQL Question: If some idiot decides to circumvent Oracle's referential integrity and re-implement it by using triggers (insert, update, delete) that checks the foreign (parent/child) key fields in other tables like this, declare numrows INTEGER; begin -- ApplicationForm is used if the state and other criteria match that in -- ApplicationFormCriteria ON PARENT DELETE RESTRICT select count(*) into numrows from ApplicationFormCriteria where ApplicationFormCriteria.applicationFormId = :old.applicationFormId; if (numrows > 0) then raise_application_error( -20343, 'Database Integrity Violation - Cannot DELETE row in Table ''ApplicationForm'' because referencing row exists in table ''ApplicationFormCriteria'' for Primary Key (applicationFormId)=' || :old.applicationFormId ); end if; end; would it cause context switching between the SQL & PL/SQL engines? Yes, some genius did this in one of our databases. Two hundred third/fourth normal form tables enforced by 800 triggers... I have him registered to be stoned in public. -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).