Enhancing Transactional Replication Performance

Po rozważeniu wskazówki ogólnej wydajności, opisaną w Zwiększanie wydajności replikacja ogólne, należy wziąć pod uwagę następujące dodatkowe obszary specyficzne dla replikacja transakcyjnej.

Projekt bazy danych

  • Minimalizowanie rozmiaru transakcji w projekcie aplikacji.

    Domyślnie replikacja transakcyjnej propaguje zmienia się w zależności od granice transakcji.Jeśli transakcje są mniejsze, jest mniej prawdopodobne jest, Agent dystrybucji będzie musiał ponownie wysłać transakcji z powodu problemów z siecią.Jeśli agent jest wymagany do ponownego wysłania transakcji, ilość danych przesyłanych jest mniejszy.

Konfiguracja dystrybutor

  • Skonfiguruj dystrybutor w dedykowanym serwerze.

    Można zmniejszyć obciążenie przetwarzania na Wydawca przez skonfigurowanie zdalnych dystrybutor.Aby uzyskać więcej informacji zobacz Konfigurowanie dystrybucji.

  • Odpowiednio zmień rozmiar baza danych dystrybucji.

    Przetestuj replikacja z typowego obciążenia dla danego systemu określić, ile miejsca jest wymagany do przechowywania poleceń.Upewnij się, baza danych jest wystarczająco duży, aby przechowywać poleceń bez konieczności auto rosnąć często.Aby uzyskać więcej informacji na temat zmiany rozmiaru bazy danych zobacz ALTER DATABASE języka Transact-SQL).

Projekt publikacja

  • Równoległe wykonywanie procedura przechowywana, podczas wprowadzania aktualizacje partia opublikowanych tabel.

    Jeśli aktualizacje partia, które czasami wpływać na dużą liczbę wierszy przez subskrybent, należy wziąć pod uwagę aktualizowania opublikowanej tabela przy użyciu procedura przechowywana i opublikować wykonanie procedura przechowywana.Zamiast wysyłać aktualizacji lub usuwania dla każdego wiersza wpływa na, Agent dystrybucji wykonuje tę samą procedurę subskrybent przy użyciu tej samej wartości parametrów.Aby uzyskać więcej informacji zobacz Publikowanie wykonanie procedura przechowywana w transakcji replikacja.

  • Artykuły umieszczonych na wiele publikacji.

    Jeśli nie możesz używać -SubscriptionStreams parametr (opisane w dalszej części tego tematu), warto utworzyć wiele publikacji.Rozmieszczanie artykuły w tych publikacji umożliwia replikację zastosować zmiany równolegle do subskrybentów.

Uwagi dotyczące subskrypcja

  • Jeśli masz wiele publikacja na tym samym Wydawca (jest to wartość domyślna dla nowego Kreatora publikacja), należy używać agentów niezależnych zamiast udostępnionego agentów.

  • Uruchomić agentów stale zamiast na bardzo często harmonogramów.

    Ustawienie agentów na uruchamianie ciągłe zamiast tworzenia częste harmonogramów (np. co minutę) poprawia wydajność replikacja, ponieważ agent nie trzeba uruchamiać i zatrzymywać.Po ustawieniu agent dystrybucji do uruchomienia w sposób ciągły, zmiany są propagowane z niskim opóźnienie na inne serwery, które są połączone w topologii.Aby uzyskać więcej informacji, zobacz:

Agent dystrybucji i parametry Agent odczytywania dziennika

  • Użycie –MaxCmdsInTran parametr dla Agent odczytywania dziennika.

    The –MaxCmdsInTran parameter specifies the maximum number of statements grouped into a transaction as the Log Reader writes commands to the baza danych dystrybucji.Za pomocą tego parametru umożliwia Agent odczytywania dziennika i dystrybucji Agent podzielić duże transakcje (składający się z wielu poleceń) przez wydawcę na kilka mniejszych transakcji przy stosowaniu polecenia przez subskrybent.Określając ten parametr może zmniejszyć rywalizacji u dystrybutor i zmniejszyć opóźnienie między programem Wydawca a subskrybent.Ponieważ oryginalna transakcja jest stosowana w mniejszych jednostkach, subskrybent mogą uzyskiwać dostęp wierszy dużych transakcji Wydawca logicznych przed do końca oryginalnej transakcji ścisłe niepodzielność transakcyjnych na złamanie.Wartość domyślna to 0, który zachowuje granice transakcji Wydawca.Ten parametr nie ma zastosowania do bazy danych Oracle wydawcy.

  • Użycie –SubscriptionStreams parametr dla agenta dystrybucji.

    The –SubscriptionStreams parameter can greatly improve agregacja replikacja throughput.Umożliwia on wiele połączeń w celu subskrybentom zastosować instancje zmiany równolegle, zachowując jednocześnie wiele transakcyjnych cech prezentacji podczas korzystania z jednym wątek.Jeśli jedno z połączeń nie może wykonać lub przekazać, wszystkie połączenia spowoduje przerwanie bieżącej instancji i agenta użyje jednego strumienia ponownych prób instancje nie powiodło się.Przed zakończeniem tej fazy ponownych prób, może być tymczasowe niezgodności transakcyjnych przez subskrybent.Po serii nieudanych są zobowiązane pomyślnie, subskrybent jest ponownie przywiezione do stanu spójności transakcyjnej.

    Wartość tego parametru agenta można określać przy użyciu @ subscriptionstreams of sp_addsubscription (Transact-SQL).

  • Zwiększ wartość -ReadBatchSize parametr dla Agent odczytywania dziennika.

    Agent odczytywania dziennika i dystrybucji Agent obsługa partia rozmiarów dla transakcji odczytu, a dokonaniem operacji.Domyślne rozmiary partia do 500 transakcji.Agent odczytywania dziennika odczytuje określoną liczbę transakcji z dziennika, niezależnie od tego, czy są one oznaczone do replikacja.Gdy duża liczba transakcji jest zapisywany baza danych publikacja, tylko mały podzbiór tych, które zostały oznaczone do replikacja, należy użyć -ReadBatchSize parametr zwiększyć rozmiar odczytu wsadowego Agent odczytywania dziennika.Ten parametr nie ma zastosowania do bazy danych Oracle wydawcy.

  • Zwiększ wartość -CommitBatchSize parametr dla agenta dystrybucji.

    Zatwierdzanie zestaw transakcji koszty stałe; przez często zaangażowanie większej liczby transakcji mniej, obciążenie związane jest umieszczonych na większych ilości danych.Jednak korzyści wynikające z tego parametru zwiększenie spadnie jako koszt stosowania zmian jest bramkowane przez inne czynniki, takie jak maksymalny We/Wy dysku, który zawiera dziennik.Ponadto nie ma znaku towarowego poza uznawany jest: jakikolwiek błąd, który powoduje, że Agent dystrybucji zacząć od nowa, należy wycofać i ponownie zastosować większej liczby transakcji. W przypadku sieci zawodne niższą wartość może spowodować mniej awarii i mniejszą liczbę transakcji do wycofania i ponownie zastosować, jeśli wystąpi awaria.

  • Zmniejszenie wartości -PollingInterval parametr dla Agent odczytywania dziennika.

    The -PollingInterval parameter specifies how often the dziennik transakcji of a published database is queried for transactions to replicate.Wartość domyślna to 5 sekund.Jeśli ta wartość, w dzienniku jest być sondowany częściej, co może spowodować niższe opóźnienia dostawy transakcje z baza danych publikacja do baza danych dystrybucji.Jednak powinny się bilansować potrzebę niższe opóźnienie przed zwiększone obciążenie serwera z sondowanie częściej.

Agent parametry można określić w profilach agenta, jak i w wierszu polecenia.Aby uzyskać więcej informacji, zobacz:

See Also

Concepts