Utför infogning från en utlösare till en tabell på länkad server - dåligt beslut. Detta kommer att ha stor inverkan på infogningsprestanda i källtabellen ([dbo].[Tabell_1]) och även det finns en distribuerad transaktion och konfigurering av servrar för att stödja distribuerade transaktioner - mardröm.
En möjlig lösning är:
-
På källservern kan du skapa en synkroniseringskötabell. Till exempel:
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) )
-
Trigger på dbo.SourceTable kan snabbt infoga i dbo.SyncQueue record Nyckel som du behöver synkronisera
- Någon periodiskt utförd lagrad procedur kan sedan infoga poster från kötabellen på den länkade servern.