Udostępnij za pośrednictwem


Zwiększenie ogólnej wydajności replikacji

Ogólnej wydajności dla wszystkich typów replikacja można zwiększyć w aplikacji i w sieci przy użyciu wytycznych opisanych w tym temacie.

Serwer i sieć

  • Set the minimum and maximum amount of memory allocated to Microsoft Aparat baz danych programu SQL Server.

    Domyślnie Aparat baz danych zmiany jego wymagania pamięci dynamicznie oparte na systemie dostępne zasoby.Aby uniknąć niskiej dostępności pamięci podczas działania replikacja, użyj pamięć serwera min opcji zestaw minimalna ilość dostępnej pamięci.Aby uniknąć strona systemu operacyjnego na dysk pamięci można także zestaw maksymalna ilość pamięci z Maksymalna pamięć opcji.Aby uzyskać więcej informacji, zobacz Opcje pamięci serwera.

  • Zapewnienia właściwego przydziału plików danych do bazy danych i plików dziennika.Użyj osobny dysk dla dziennika transakcji dla wszystkich uczestniczących w replikacja baz danych.

    Można zmniejszyć czas zapisu transakcji przez przechowywanie plików dziennika na dysku innym niż używany do przechowywania bazy danych.Można dublować tego dysku przy użyciu Redundant Array z Inexpensive Disks (RAID) -1, jeśli wymagana jest odporność na uszkodzenia.RAID 0 lub 1 0 + (w zależności od potrzeby odporności na uszkodzenia) należy użyć dla innych plików bazy danych.Jest dobrą praktyką, niezależnie od tego, czy replikacja jest używany.Aby uzyskać więcej informacji, zobacz Poziomy RAID i SQL Server.

  • Należy rozważyć dodanie pamięci do serwerów używanych w replikacja, szczególnie dystrybutora.

  • Za pomocą komputerów wieloprocesorowych.

    Agenci replikacji można korzystać z dodatkowych procesorów na serwerze.Jeśli używasz na obciążenia Procesora, rozważyć zainstalowanie szybszego Procesora lub wielu procesorów.

  • Użyj szybkiego sieci.

    Sieć może być wąskiego gardła wydajności znaczący, szczególnie dla replikacja transakcyjna.Propagację zmian subskrybentom można znacznie ulepszona przy użyciu szybkiego sieci 100 megabitów na sekundę (MB/S) lub szybciej.Jeśli sieć jest powolne, należy określić odpowiednią siecią, ustawienia i parametry agenta.Aby uzyskać więcej informacji, zobacz Przyczyną problemów powolnej sieci.

Projekt bazy danych

  • Stosuj najważniejsze wskazówki dotyczące projektowania bazy danych.

    Zreplikowanej bazy danych zazwyczaj korzyści z tego samego performance optimizations jako-zreplikowane bazy danych.Jednak indeksy należy używać z rozwagą subskrybent: klucz podstawowy kolumna, subskrybent powinien być indeksowany, ale dodatkowe indeksy mogą wpływać na wstawianie, aktualizowanie i usuwanie wydajności.Aby uzyskać więcej informacji na temat optymalizowania baz danych, zobacz Optymalizacja bazy danych.

  • Należy rozważyć ustawienie opcji bazy danych READ_COMMITTED_SNAPSHOT.

    Aby zmniejszyć rywalizacja między aktywności użytkownika i działalności agenta replikacja, zestaw tę opcję dla baz danych publikacja i subskrypcja:

    ALTER DATABASE AdventureWorks2008R2
    SET READ_COMMITTED_SNAPSHOT ON
    

    Aby uzyskać więcej informacji, zobacz ALTER DATABASE (Transact-SQL).

  • Zachowaj ostrożność z logikę aplikacji wyzwalaczy.

    Logiki biznesowej w zdefiniowanej przez użytkownika wyzwalaczy subskrybent może spowalniać niedziałający replikacja zmian subskrybenta:

    Jeśli subskrybent używanie wyzwalaczy, zobacz następujące tematy, aby uzyskać więcej informacji: Kontrolowanie ograniczenia, tożsamości i wyzwalaczy z nie dla replikacjiand Zagadnienia dotyczące replikacji transakcyjnej.Jeśli zachowania integralność referencyjnej w tabelach opublikowane replikacja scalająca za pomocą wyzwalaczy, określić kolejność przetwarzania tabel, zmniejszyć liczbę ponownych prób, wymagane dla agenta korespondencji seryjnej.Aby uzyskać więcej informacji, zobacz Określanie kolejności przetwarzania artykułów korespondencji seryjnej.

  • Ogranicz używanie typów danych do dużego obiektu LOB.

    Obiektów LOB wymaga więcej miejsca do magazynowania i przetwarzania niż inne kolumna typów danych.Nie zawierają tych kolumn w artykułach chyba że niezbędne dla aplikacji.Typy danych text, ntext, i image zostały zaniechane.Jeśli obiektów LOB, zaleca się używać typów danych varchar(max), nvarchar(max), varbinary(max), odpowiednio.

    Dla replikacja transakcyjna, należy wziąć pod uwagę przy użyciu profilu agenta dystrybucji o nazwie Dystrybucji profilu dla OLEDB streaming.Aby uzyskać więcej informacji, zobacz Profile Agent replikacji.

Projekt publikacji

  • Opublikować dane wymagane.

    Ponieważ replikacja jest łatwo zestaw up, istnieje tendencja do publikowania więcej danych niż faktycznie wymagane jest.Zajmowane są dodatkowe zasoby w dystrybucji baz danych i plików migawka i obniżyć przepływność dla wymaganych danych.Unikaj publikowania zbędne tabele i rozważyć aktualizację publikacje mniej często.

  • Minimalizowanie konfliktów poprzez zachowanie projektowanie oraz stosowanie publikacja.

    Następujące typy replikacja umożliwiają danych ma zostać zmieniony na subskrybentów: replikacja scalająca, replikacja transakcyjna z subskrypcjami aktualizowalna i replikacja transakcyjna peer-to-peer.Scalania replikacja i replikacja transakcyjna z subskrypcjami aktualizowalna obsługuje konflikty danych, jeśli dany wiersz zostanie zaktualizowany na więcej niż jeden węzeł między synchronizacjami.Peer-to-peer replikacja nie obsługuje konflikty danych; zmiany danych należy podzielić na partycje.Niezależnie od typu używanych replikacja zaleca partycji zmiany w miarę możliwości, ponieważ zmniejsza to przetwarzanie wymagane do wykrywanie konfliktów i rozdzielczość.

    Zmiany można podzielić na partycje, przez publikowanie podzbiory danych poszczególnym subskrybentom lub posiadające zmian bezpośredniego aplikacji dla danego wiersza na danym węźle:

    • Replikacja scalania obsługuje publikowania podzbiory danych filtry sparametryzowana przy użyciu pojedynczej publikacja.Aby uzyskać więcej informacji, zobacz Filtry parametrami wiersza.

    • replikacja transakcyjnej obsługuje publikowania podzbiory danych statycznych filtrów przy użyciu wielu publikacjach.Aby uzyskać więcej informacji, zobacz Filtrowanie opublikowane dane.

  • Za pomocą filtrów wiersza rozważny.

    Gdy transakcyjnych publikacja zawiera jeden lub więcej artykułów, które filtry wiersza Agent odczytywania dziennika należy zastosować filtr do każdego wiersza, dotyczy aktualizacji tabela jako skanuje dziennika transakcji.Przepływność Agent odczytywania dziennika jest zatem wpływ.

    Podobnie replikacja scalająca musi być zmienione lub usunięte wiersze do określenia abonentów, które powinny otrzymać te wiersze.Gdy wiersz filtry są zatrudnieni zmniejszenie danych wymaganych na subskrybenta, to przetwarzanie jest bardziej złożone i może być wolniejsze niż po opublikowaniu wszystkich wierszy w tabela.Należy rozważyć zależnościami między wymagań obniżonej składowania na każdy abonent i potrzebę osiągnięcia maksymalnej przepustowości.Aby uzyskać więcej informacji dotyczących filtrowania, zobacz Filtrowanie opublikowane dane.

Uwagi dotyczące subskrypcji

  • Użyj ściągać subskrypcje, gdy istnieje duża liczba subskrybentów.

    Agent dystrybucji i scalanie agenta Uruchom u dystrybutora dla wypychanie subskrypcji i na subskrybenci subskrypcji ściąganej.Za pomocą ściągać subskrypcje można poprawić wydajność, przenosząc przetwarzanie dystrybutora do subskrybentów agenta.Aby uzyskać więcej informacji, zobacz Subskrybowanie publikacje.

  • Jeśli subskrybentów są zbyt daleko za, należy rozważyć możliwość ponownego zainicjowania subskrypcja.

    Duże ilości zmiany muszą być wysyłane do subskrybentów, pomocą ponownego inicjowania z Nowa migawka może być szybsza niż przy użyciu replikacja, aby przenieść poszczególne zmiany.Aby uzyskać więcej informacji, zobacz Pomocą ponownego inicjowania subskrypcji.

    Dla replikacja transakcyjna, Monitor replikacja, wyświetla na Polecenia niepodzielonych karcie informacji dotyczących: Liczba transakcji w baza danych dystrybucji nie zostały jeszcze dystrybuowane do subskrybenta; a szacowany czas dla rozpowszechniania tych transakcji.Aby uzyskać więcej informacji, zobacz Jak Wyświetlanie informacji i wykonywać zadania dotyczące czynników związanych z subskrypcji (Monitor replikacji).

Uwagi dotyczące migawki

  • Uruchom agenta migawkę tylko wtedy, gdy to konieczne i szczytem.

    Luzem agenta migawka kopiuje dane z tabela opublikowanych na Wydawca do pliku w folderze migawka na dystrybutora.Generowanie migawka może być procesem intensywnie zasób i najlepiej jest zaplanowane w godzinach szczytu.

  • Użyj trybu macierzystego migawkę, chyba że jest wymagany znak trybu migawka.

    Użyj domyślnego trybu macierzystego migawkę dla subskrybentów wszystkie z wyjątkiem innych niż-SQL Server abonentów i abonentów z systemem SQL Server Compact 3.5 z dodatkiem SP1, które wymagają od migawka trybie znaków.

  • Użyj folderu migawka jednej publikacja.

    Określanie właściwości publikacja związanych z lokalizacji migawka, można generować migawkę plików w domyślnym folderze migawka, do folderu migawka alternatywny lub zarówno.Generowanie plików migawka w obu lokalizacjach wymaga dodatkowego miejsca na dysku i więcej przetwarzania podczas uruchamiania agenta migawka.

  • Umieścić folderu migawka na dysku lokalnego dystrybutora, który nie jest używany do przechowywania bazy danych lub plików dziennika.

    Agent migawka wykonuje kolejne zapisu danych folderu migawka.Wprowadzenie do folderu migawka na oddzielnym dysku z plików bazy danych lub dziennika zmniejsza rywalizacja między dyski i ułatwia szybsze przetwarzanie pełną migawkę.

  • Podczas tworzenia baza danych subskrypcja przez subskrybenta, warto określić modelu odzyskiwanie proste lub bulk-logged.Umożliwia to minimalny rejestrowania wstawia luzem, w czasie stosowania migawka subskrybent.Po zastosowaniu do migawki baza danych subskrypcja, w razie potrzeby można zmienić modelu odzyskiwanie innym (zreplikowane bazy danych można użyć dowolnej z modeli odzyskiwanie).Aby uzyskać więcej informacji o wybieraniu model odzyskiwanie, zobacz Przywracanie i odzyskiwanie omówienie (SQL Server).

  • Należy rozważyć użycie folderu migawka alternatywnego i skompresowany migawek na nośniku wymiennym małej przepustowości sieci.

    Kompresowanie plików migawka w folderze alternatywny migawka można zmniejszyć wymagania dotyczące magazynowania na dysku migawka i ułatwić transfer plików migawka na nośniku wymiennym.

    Skompresowany migawkas może w niektórych przypadkach zwiększyć wydajność przesyłania migawka plików przez sieć.Jednak kompresja migawka wymaga dodatkowe przetwarzanie przez agenta migawka podczas generowania plików migawka i przez agenta dystrybucji lub scalić Agent podczas stosowania plików migawka.Może to spowolnić niedziałający migawkę generacji i zwiększyć czas potrzebny do stosowania w niektórych przypadkach migawka.Ponadto nie można wznowić migawkami skompresowanych, jeśli wystąpi awaria sieci; dlatego nie są odpowiednie dla sieci zawodne.Należy rozważyć tych skutków ubocznych podczas korzystania z migawkami skompresowanych w sieci.Aby uzyskać więcej informacji, zobacz Alternatywnej lokalizacji folderu Snapshot i Skompresowane migawki.

  • Należy rozważyć ręczne inicjowanie subskrypcja.

    W niektórych scenariuszach, takich jak te obejmujące dużych zestawów początkowej danych zaleca się zainicjować subskrypcja przy użyciu metoda inne niż migawka.Aby uzyskać więcej informacji, zobacz Inicjowanie transakcyjnych subskrypcję bez migawki i Inicjowanie subskrypcji korespondencji seryjnej bez migawki.

Parametry Agent

  • Zmniejszenie poziomów verbose agenci replikacja, z wyjątkiem podczas wstępnego badania, monitorowania lub debugowania.

    Zmniejszenie –HistoryVerboseLevel parametr i –OutputVerboseLevel parametr agentów dystrybucji lub scalić czynników.Zmniejsza to liczbę nowe wiersze wstawione do śledzenia historia agenta i wyjście.Zamiast tego poprzednich historia wiadomości w tym samym stanie są aktualizowane do nowych informacji o historia.Zwiększenie poziomów pełne badania, monitorowania i debugowanie, aby zachować jak najwięcej informacji o działalności agenta, jak to możliwe.

  • Użyj –MaxBCPThreads parametr agenta migawki, Agent scalania i agenta dystrybucji (liczba określonych wątków nie może przekraczać liczby procesorów w komputerze).Ten parametr określa liczbę kopiowanie masowe operacji, które mogą być wykonywane równolegle, gdy migawka jest tworzone i stosowane.

  • Użyj –UseInprocLoader parametr agenta dystrybucji i scalanie Agent (tego parametru nie można używać Jeśli opublikowanych tabele zawierają kolumny XML).Ten parametr powoduje, że agent polecenia WSTAW luzem po zastosowaniu migawka.

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

Zobacz także

Koncepcje