觸發器怎麼調節提高觸發頻率?怎麼設定這個觸發器

時間 2023-05-11 07:50:08

1樓:邵寶

觸發器使得表和跨資料庫之間資料的自動同步行為變得簡單。但是,那些一眼看上去不是很明顯的東西卻會對他們的效能造成顯著的影響。這裡我將描述乙個命令,他可用來減少一些不可預料的問題產生的影響 。

以反覆被觸發的insert觸發器為例,尤其是當使用insert into語句用來進行大量插入操作時。在語句執行的過程中,當觸發器一遍又一遍的被激發的情況下,觸發器將會對每個insert動作發布done_in_proc訊息,這會使速度明顯下降。

尤其是當觸發器作為乙個預定了時間的sql server agent工作的結果而被觸發時,這個速度的減慢是特別明顯的 。sql server agent自動在每個done_in_proc 訊號後強加乙個延遲,以避免伺服器擁塞 。假如您想通過查詢分析器來執行同樣的一組命令,由於沒有強加這樣的延遲,他的執行將會快得多。

假如您通過查詢分析器執行這樣的查詢並且檢視多個語句產生的多個"n rows affected",那麼很有可能查詢會被反覆執行,並且觸發器也被重新觸發多次,這比他實際需要的次數要多很多。

要關掉done_in_proc訊息,能夠在觸發器語句的開始用set nocount on命令。大多數時候,以任何方式對行進行計數都是無需的。假如確實需要,您能夠考慮重新構造命令來觸發觸發器(或是觸發器本身),這樣就使任何的改變作為乙個命令完成。

如何設定sql 觸發器

請問sql觸發器insert觸發器如何使用

謹傑 在sql server中使用 create trigger insert stu on stufor insert asinsert into user uname,upassword select sid,sid from inserted在oracle中使用,預設密碼為學生id號creat...

sql server insert 觸發器指令碼求

create trigger utri emp inserton emp after insert as begin set nocount on 當ept裡已經存在相關部門編號 update b set counts counts 1 from inserted a inner join ept ...

SQL觸發器寫法,SQL資料庫中的觸發器怎麼寫啊?急

觸發器 trigger 是sql server 提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與表事件相關的特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,比如當對乙個表進行操作 insert,delete,update 時就會啟用它執行。觸發器經常用於加強資...

資料庫觸發器有什麼作用,SQL中觸發器有什麼作用

觸發器的作用 自動計算資料值,如果資料的值達到了一定的要求,則進行特定的處理。同步實時地複製表中的資料。實現複雜的非標準的資料庫相關完整性規則。可在寫入資料表前,強制檢驗或轉換資料。觸發器發生錯誤時,異動的結果會被撤銷。部分資料庫管理系統可以針對資料定義語言 ddl 使用觸發器,稱為ddl觸發器。可...

28觸發器的作用

歲月留情 觸發器觸發器 trigger 是個特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由個事件來觸發,比如當對乙個表進行操作 insert,delete,update 時就會啟用它執行。觸發器經常用於加強資料的完整性約束和業務規則等。觸發器可以從 dba triggers user...