產生遞迴呼叫 (Recursive Call 或 recursive SQL statements) 的幾種情況

tolywang發表於2012-08-08
 
當執行一條SQL語句時,產生的對其他SQL語句的呼叫,這些額外的語句稱之為''recursive calls''或''recursive SQL statements''.
 
  
觸發Recursive Call的幾種情況:  
        如:
       (1)我們做一條insert 時,沒有足夠的空間來儲存row記錄,Oracle 透過Recursive Call 來動態的分配空間。
       (2)執行DDL語句時,ORACLE總是隱含的發出一些recursive SQL語句,來修改資料字典資訊,以便成功的執行該DDL語句。
       (3)當Shared Pool過小,data dictionary cache 也會相應的過小,沒有足夠的空間儲存ORACLE的系統資料字典資訊時,會發生
            Recursive calls,這些Recursive calls會將資料字典資訊從硬碟讀入記憶體中。
       (4)儲存過程、觸發器內如果有SQL呼叫的話,也會產生recursive SQL。
 
 
Recursive calls can be generated by the following activities:
       (1)An object requiring an additional extent for storage (dynamic extension)
       (2)Misses on the dictionary cache (in buffer cache)
       (3)Firing of database triggers  
       (4)DDL statements
       (5)Execution of SQL statements within stored procedures, packages, functions, and anonymous PL/SQL blocks
       (6)Enforcement of referential integrity constraints

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-741416/,如需轉載,請註明出處,否則將追究法律責任。

相關文章