Udostępnij za pośrednictwem


Zwiększanie wydajności replikacji transakcyjnej

Po uwzględniając ogólne porady opisane w Zwiększenie ogólnej wydajności replikacja, należy wziąć pod uwagę te dodatkowe obszary dla replikacja transakcyjna.

Projekt bazy danych

  • Zminimalizować rozmiar transakcji w projekcie aplikacji.

    Domyślnie replikacja transakcyjna propaguje zmiany w granice transakcji.Jeśli transakcje są mniejsze, jest mniej prawdopodobne, że Agent dystrybucji ponownie transakcji z powodu problemów z siecią.W razie potrzeby agent ponownie transakcji ilość danych przesyłanych jest mniejszy.

Konfiguracja dystrybutora

  • Skonfiguruj dystrybutora w dedykowanym serwerze.

    Można zmniejszyć przetwarzania na wydawcy konfigurując dystrybutor zdalny.Aby uzyskać więcej informacji, zobacz Konfigurowanie dystrybucji.

  • Rozmiar baza danych dystrybucji odpowiednio.

    Test replikacja z typowego obciążenia systemu określić, ile miejsca jest wymagana 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 zmieniania rozmiaru bazy danych, zobacz ALTER DATABASE (Transact-SQL).

Projekt publikacji

  • Replikuj wykonanie procedura składowana, dokonując aktualizacje partia opublikowanych tabel.

    Jeśli aktualizacje partia czasami wpływające na dużą liczbę wierszy przez subskrybenta, należy rozważyć aktualizację opublikowaną tabela przy użyciu procedura składowana i opublikować wykonanie procedura składowana.Zamiast wysyłania aktualizacji lub usuwania dla każdego wiersza, dotyczy, Agent dystrybucji wykonuje tę samą procedurę przez subskrybenta z wartości parametru.Aby uzyskać więcej informacji, zobacz Publikowanie wykonanie procedury przechowywanej w replikacji transakcyjnej.

  • Wiele publikacji rozkładane do artykułów.

    Jeśli nie można używać - subscriptionstreams parametr (opisane dalej w tym temacie), należy rozważyć utworzenie wiele publikacji.Rozmieszczanie w wymiarze artykułów tych publikacji umożliwia replikacja zastosować zmiany równolegle do subskrybentów.

Uwagi dotyczące subskrypcji

  • Użyj czynników niezależnych zamiast agentów udostępnionego, jeśli masz wiele publikacji na tym samym Wydawca (jest to domyślne dla nowego Kreatora publikacji).

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

    Ustawienie agentów do pracy ciągłej, zamiast tworzenia harmonogramów częste (np. co minutę) zwiększa wydajność replikacja, ponieważ agent nie trzeba uruchamiać i zatrzymywać.Gdy użytkownik zestaw Agent dystrybucji do pracy ciągłej, zmiany są propagowane z małego opóźnienia na inne serwery, które są połączone w topologii.Aby uzyskać więcej informacji, zobacz:

Agent dystrybucji i Agent odczytywania dziennika parametry

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

    –MaxCmdsInTran parametr określa maksymalną liczbę instrukcje zgrupowane w transakcji, jak czytnik dziennika zapisuje poleceń baza danych dystrybucji.Za pomocą tego parametru umożliwia Agent czytnik dziennika i dystrybucji agenta Podziel duże transakcje (składające się z wielu poleceń) w Wydawca na kilka mniejszych transakcji podczas stosowania poleceń przez subskrybenta.Określenie tego parametru można zmniejszyć rywalizacja u dystrybutora i zmniejszyć opóźnienia między Wydawca i abonenta.Ponieważ oryginalna transakcja w mniejszych jednostkach, subskrybent dostęp wierszy duży logiczne Wydawca transakcji przed do końca oryginalnej transakcji dzielenia ścisłe niepodzielność transakcyjnych.Wartością domyślną jest 0, który zachowuje granice transakcji z Wydawca.Ten parametr nie dotyczą wydawców Oracle.

  • Użyj –SubscriptionStreams parametr agenta dystrybucji.

    –SubscriptionStreams parametru może znacznie zwiększyć przepustowość replikacja wartość zagregowana.Dzięki temu wiele połączeń do subskrybenta zastosować instancje zmiany równolegle, zachowując wiele cech transakcyjnych przedstawić podczas korzystania z jednym wątek.Po awarii jednego z połączeń do wykonać lub zatwierdzanie, wszystkie połączenia spowoduje przerwanie bieżącej instancji i agent użyje jednego strumienia do ponawiania nieudanych instancje.Przed zakończeniem tej fazy ponawiania, subskrybent może istnieć tymczasowe niezgodności transakcyjnych.Po nieudanych instancje są zobowiązane pomyślnie, abonent jest dostarczana z powrotem do stanu spójności transakcyjnej.

    Wartość tego parametru agenta można określić za pomocą @ subscriptionstreams z sp_addsubscription (języka Transact-SQL).

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

    Agent odczytywania dziennika i rozmiary partia obsługa agenta dystrybucji dla zatwierdzanie odczytu i działań.Domyślne rozmiary partii 500 transakcji.Agent odczytywania dziennika Odczytuje określoną liczbę transakcji z dziennika, czy są one oznaczone dla replikacja.Gdy zapisywany jest duża liczba transakcji baza danych publikacja, lecz oznaczone tylko podzbiór tych replikacja, należy używać - readbatchsize parametr zwiększyć rozmiar odczytu partia Agent czytnik dziennika.Ten parametr nie dotyczą wydawców Oracle.

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

    Zatwierdzanie zestaw transakcji ma stałych pośrednich kosztów; zobowiązując większej liczby transakcji mniej często, napowietrznej jest rozkładane większych ilości danych.Jednak korzyści zwiększenie tego parametru spada ponieważ koszty stosowania zmian są bramkowane przez inne czynniki, takie jak maksymalna We/Wy dysku, który zawiera dziennik.Ponadto istnieje handlu wyłączone za: jakikolwiek błąd powodujący, że Agent dystrybucji rozpoczęcie musi wycofać i ponownie większej liczby transakcji.Niewiarygodne sieci niższej wartości może spowodować mniej awarii i mniejszą liczbę transakcji rollback i ponownie zastosować, jeśli wystąpi awaria.

  • Zmniejsz wartość - pollinginterval parametr dla Agent odczytywania dziennika.

    - pollinginterval parametr określa, jak często dziennik transakcji opublikowana baza danych jest badany pod kątem transakcji do replikacji.Wartość domyślna to 5 sekund.Jeśli zmniejszyć tę wartość, dziennik ma sprawdzać częściej, może powodować małe, opóźnienie dostawy transakcje z baza danych publikacji do baza danych dystrybucji.Jednakże powinny się bilansować potrzebę dolnym opóźnienie przeciwko zwiększone obciążenie serwera z częściej sondowanie.

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

Zobacz także

Koncepcje