Replikacja transakcji SQL Server ignoruje DML, który nie zmienia danych


4

Mam konfigurację replikacji transakcyjnej między dwoma serwerami i zauważyłem, że jeśli uruchomi się instrukcja podobna do tej:

UPDATE mytableSET mycolumn = mycolumn

replikacja w jakiś sposób wie, aby zignorować tę transakcję i nie zostanie zastosowana dla subskrybenta.Potwierdziłem to, uruchamiając SQL Profiler, a także dodając kolumnę TIMESTAMP do mojej tabeli subskrybentów (nie zmienia się).Podejrzewam, że istnieje jakiś mechanizm, który umożliwia takie „inteligentne” zachowanie i zastanawiałem się, czy ktokolwiek mógłby rzucić na to trochę światła.

Dziękuję Ci!

6

Replikacja works by reading the transaction log .

Ten rodzaj „aktualizacji bez aktualizacji” często nie generuje żadnych rekordów dziennika transakcji.

Więcej informacji na ten temat można znaleźć w artykule Paula White'a The Impact of Non-Updating Updates .

  0

To wyjaśnia zachowanie, które widzę.Dziękuję Ci bardzo! 24 sty. 142014-01-24 18:05:55