Provádět vkládání z triggeru do tabulky na propojeném serveru - špatné rozhodnutí. To bude mít velký vliv na výkon vkládání do zdrojové tabulky ([dbo].[Table_1]) a také existuje distribuovaná transakce a konfigurace serverů pro podporu distribuovaných transakcí - noční můra.
Jedno z možných řešení je:
-
Na zdrojovém serveru můžete vytvořit tabulku synchronizační fronty. Například:
CREATE TABLE dbo.SyncQueue ( QueueId INT IDENTITY(1,1), KeyForSync INT, -- Primary key value of record in dbo.SourceTable SyncStatus INT -- statuses can be: 0 - New, 1 - Synchronized, 2 - Error ) suppose you source table is CREATE TABLE dbo.SourceTable ( Key INT, -- primary key of the table Data varchar(xxx) )
-
Triger na dbo.SourceTable může rychle vložit klíč záznamu dbo.SyncQueue, který potřebujete synchronizovat
- Některé pravidelně prováděné uložené procedury pak mohou vkládat záznamy z fronty na propojeném serveru.