Voer invoegingen uit van een trigger in een tabel op een gekoppelde server - slechte beslissing. Dit heeft grote invloed op de invoegprestaties in de brontabel ([dbo].[Table_1]) en er is ook een gedistribueerde transactie en het configureren van servers voor ondersteuning van gedistribueerde transacties - nachtmerrie.
Een mogelijke oplossing is:
-
Op de bronserver kunt u een synchronisatiewachtrijtabel maken. Bijvoorbeeld:
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 op dbo.SourceTable kan snel in dbo.SyncQueue record worden ingevoegd Sleutel die u moet synchroniseren
- Sommige periodiek uitgevoerde opgeslagen procedures kunnen dan records uit de wachtrij intable op de gekoppelde server invoegen.