當前位置:ag真人国际官网-ag旗舰厅官方网站 » 操作系統 » 跨資料庫觸發器

跨資料庫觸發器-ag真人国际官网

發布時間: 2024-11-09 21:29:58

『壹』 如何使觸發器具備良好的性能

觸發器使得表和跨資料庫之間數據的自動同步行為變得簡單。但是,那些一眼看上去不是很明顯的東西卻會對他們的性能造成顯著的影響。這里我將描述一個命令,他可用來減少一些不可預料的問題產生的影響 。
以反復被觸發的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命令。大多數時候,以任何方式對行進行計數都是無需的。假如確實需要,您能夠考慮重新構造命令來觸發觸發器(或是觸發器本身),這樣就使任何的改變作為一個命令完成。

『貳』 在mysql中的兩個不同的資料庫之間建立觸發器連接

若想利用此方法達到反向同步則可能出現察鬧問題,比如想在parkfee資料庫有絕大新數據插入時讓當前資料庫也同時插入一條記錄,建立一個觸發器,則形成了一個循環觸發,當插入數據時會報大於最大遞歸次數錯。因此因避敗宏罩免這樣的觸發循環,若要達到類似效果還須想別的方法。(待續)
補充:
若兩個庫處於不同的資料庫伺服器則應先進行以下操作:
在 server1 上創建連接伺服器,以便在 server1 中操作 server2,實現同步
exec sp_addlinkedserver 'server2','','sqloledb','server2的資料庫實例名或ip'
exec sp_addlinkedsrvlogin 'server2','false',null,'用戶名','密碼'
go

熱點內容
接龍源碼 發布:2024-11-19 10:14:48 瀏覽:33
驅動軟體哪個安卓版好 發布:2024-11-19 10:08:28 瀏覽:703
伺服器一鍵搭建java環境 發布:2024-11-19 10:08:27 瀏覽:729
布丁少兒編程 發布:2024-11-19 09:57:11 瀏覽:98
vb資料庫數組 發布:2024-11-19 09:23:40 瀏覽:828
安卓游戲數據保存在哪裡找 發布:2024-11-19 09:22:02 瀏覽:310
解壓出來的文件亂碼 發布:2024-11-19 09:15:40 瀏覽:940
北航ftp是多少 發布:2024-11-19 09:15:32 瀏覽:822
瀏覽保存密碼如何取消 發布:2024-11-19 09:10:17 瀏覽:90
安卓怎麼關簡訊重復提醒 發布:2024-11-19 09:02:00 瀏覽:636
网站地图