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).

Reply via email to