Wykonywanie wstawek z wyzwalacza do tabeli na serwerze połączonym - zła decyzja. Wpłynie to świetnie na wydajność wstawiania w tabeli źródłowej ([dbo].[Table_1]), a także istnieje transakcja rozproszona i konfiguracja serwerów do obsługi transakcji rozproszonych - koszmar.
Jednym z możliwych rozwiązań jest:
-
Na serwerze źródłowym możesz utworzyć tabelę kolejek synchronizacji. Na przykład:
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 może szybko wstawić do rekordu dbo.SyncQueue Klucz, który należy zsynchronizować
- Niektóre okresowo wykonywane procedury składowane mogą następnie wstawiać rekordy z kolejki do tabeli na połączonym serwerze.