可能重複:
Consolidate several Oracle triggers. Any performance impact?多個小觸發VS上表大單觸發
問題: 哪一個是最好的(性能)?有多個觸發器(約7-10)一個用於每種情況/目的,或一個觸發器它可以處理所有情況(通過使用if等)。
詳細信息:基於Oracle數據庫 我們正在開發的企業應用程序。我們有一張大約3M行的表格,這是我們應用的基本表格。有幾種情況我們只需要使用觸發器來處理。恕我直言,爲了維護,最好有多個觸發器。但是表演呢?
您是否意識到,如果在單個表上有多個相同類型的觸發器,則Oracle數據庫選擇_arbitrary_命令來執行這些觸發器。每個後續觸發器都可以看到以前觸發的觸發器所做的更改。每個觸發器都可以看到舊的和新的值。但如前所述,執行順序是任意的。爲確保以特定順序發生多個觸發操作,您必須將這些操作合併爲一個觸發器。 –
是的,我意識到(並知道)。這種情況就像是一個觸發器插入'table_1'中,第二個觸發器更新'table_2',第三個觸發器插入'table_3'(當然是用他們的小邏輯)。所有觸發器都沒有任何順序(或關係)。我們可以將它們放到一個大觸發器中,或者將它們分離爲多個觸發器。
也許有人會告訴我們,我們不應該通過觸發器來做到這一點。但這是特殊情況,這個問題是關於理解數據庫(幕後過程)的。 –
這可能是間歇性的:http://stackoverflow.com/questions/8579240/consolidate-several-oracle-triggers-any-performance-impact –