Udostępnij za pośrednictwem


Zwiększanie wydajności replikacji scalania

Po uwzględniając ogólne porady opisane w Zwiększenie ogólnej wydajności replikacji, należy rozważyć szczególne replikacja scalająca tych dodatkowych obszarach.

Projekt bazy danych

  • Indeks kolumny w wierszu filtrów i filtrów łączyć.

    Korzystając z filtrowania wierszy na opublikowany artykuł, utworzyć indeks każdej kolumny używane w klauzula WHERE filtru.Without an index, Microsoft SQL Server has to read each row in the table to determine whether the row should be included in the partition.Z indeksu SQL Server szybko odnaleźć wierszy, które powinny być dołączone.Najszybszy przetwarzanie ma miejsce, jeśli replikacja można rozwiązać pełni klauzula WHERE filtr z samego indeksu.

    Ważne jest również indeksowanie wszystkie kolumny używane w filtrach łączyć.Każdy czas scalania Agent jest uruchamiany, przeszukuje tabela bazowa, aby określić, które wiersze w tabeli nadrzędnej i które wierszy w tabelach pokrewnych są zawarte w partycji.Tworzenie indeksu sprzężone kolumny uniknąć SQL Server odczytać każdy wiersz w tabela każdy czas uruchamia scalić agenta.

    Aby uzyskać więcej informacji dotyczących filtrowania, zobacz Filtrowanie opublikowanych danych dla replikacji scalania.

  • Należy rozważyć overnormalizing tabel, które zawierają duże obiektu LOB typów danych.

    Podczas synchronizacji agenta Scalanie może być konieczne do odczytu i przeniesienie wierszy danych z Wydawca lub abonenta.Jeśli wiersz zawiera kolumny, które używają obiektów LOB, proces ten można wymagać dodatkowej pamięci alokacji i negatywny wpływ na wydajność nawet tych kolumn może nie został zaktualizowany.Aby zmniejszyć prawdopodobieństwo, że występuje wpływ na wydajność, należy rozważyć umieszczenie kolumny LOB w osobnej tabela przy użyciu połączonych relacją z resztą wiersz danych.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.

Projekt publikacji

  • Użyj poziom zgodności publikacja 90RTM (SQL Server 2005 lub nowszej wersja).

    Chyba że subskrybentów jednego lub kilku różnych wersja SQL Server, określić publikacja musi obsługiwać tylko SQL Server 2005 lub nowszym.Dzięki temu publikacja wykorzystać nowe funkcje i optymalizacji wydajności.Aby uzyskać więcej informacji zobacz "Zgodność poziomu dla scalone publikacje" sekcja W topologii replikacji przy użyciu wielu wersji programu SQL Server.

  • Użyj ustawienia przechowywania w odpowiedniej publikacja.

    Okres zachowywania publikacja, która jest maksymalna kwota czas przed subskrypcja musi być synchronizowany, określa, jak długo przechowywane metadane śledzenia.Wysoka wartość może wpływać na wydajność składowania i przetwarzania.Aby uzyskać więcej informacji o ustawieniu okres przechowywania publikacja, zobacz Wygaśnięcia subskrypcji i dezaktywacji.

  • Użyj tylko do pobierania artykułów na te tabele, które są zmieniane tylko w Wydawca.Aby uzyskać więcej informacji, zobacz Optymalizacja wydajności replikacji scalania z artykułami tylko do pobrania.

Filtr projektu i użycia

  • Ograniczyć złożoność klauzul filtru wiersza.

    Ograniczanie złożoności kryteria filtrowania pomaga zwiększyć wydajność podczas scalania agenta jest ocena zmiany wiersza do wysłania do subskrybentów.Należy unikać sub-selects w ramach klauzul filtru wiersza korespondencji seryjnej.Zamiast tego należy rozważyć użycie filtrów łączyć, które są zazwyczaj wydajniejsze partycji danych w jednej tabela, oparte na klauzula filtr wiersza w innej tabela.Aby uzyskać więcej informacji na temat filtrowania, zobacz Filtrowanie opublikowanych danych dla replikacji scalania.

  • Precomputed partycji za pomocą sparametryzowanych filtrów (Ta funkcja jest używany domyślnie).Aby uzyskać więcej informacji, zobacz Optymalizacja sparametryzowana wydajności filtr partycji Precomputed.

    Precomputed partycje nałożyć liczba ograniczenia dotyczące filtrowania zachowanie.Jeśli aplikacja nie przestrzegają tych ograniczeń, zestaw keep_partition_changes opcji True, który zapewnia korzyści wydajności.Aby uzyskać więcej informacji, zobacz Filtry parametrami wiersza.

  • Porządkuje partycji należy użyć, jeśli dane są filtrowane, ale nie są współużytkowane przez użytkowników.

    Replikacja może zoptymalizować wydajność dla danych, który nie jest udostępniany między partycjami lub subskrypcje.Aby uzyskać więcej informacji, zobacz Filtry parametrami wiersza.

  • Nie należy tworzyć złożone filtr łączyć hierarchie.

    Filtry sprzężenia z pięciu lub więcej tabel może znacząco obniżyć wydajność podczas przetwarzania korespondencji seryjnej.Zalecane generowania filtry łączyć pięć lub więcej tabel, należy rozważyć innych rozwiązań:

    • Należy unikać filtrowanie tabel, które są głównie tabele przeszukiwania, mniejsze tabele i tabel, które nie podlegają zmianie.Te tabele części publikacja należy w całości.Zaleca się, aby korzystać z filtrów łączyć tylko między tabelami, które musi być podzielony między subskrybentów.Aby uzyskać więcej informacji, zobacz Dołącz filtry.

    • Należy rozważyć denormalizing projektu bazy danych lub przy użyciu tabela mapowania, jeśli istnieje duża liczba tabel w łączyć.Na przykład jeśli sprzedawca musi tylko dane dla jej klientów, ale wymaga sześciu sprzężenia, aby skojarzyć nabywcy sprzedaży osobom, należy rozważyć dodanie kolumna do tabela Nabywca, identyfikujący osobę sprzedaży.Dane Sprzedawca jest zbędne, ale koszty nieco denormalizing tabel może być zrównoważone przez korzyści wydajności dla replikacja partycjonowanie.

    • Aby zwiększyć wydajność precomputed partycji, gdy partie ziemniaków zawierają wiele zmian danych, projektowanie aplikacji z ostrożnością.Upewnij się, że zmiany danych w tabela nadrzędnej w filtr łączyć są dokonywane przed odpowiednie zmiany w tabelach podrzędność.

  • Ustaw join_unique_key opcji 1 Jeśli umożliwia logiczne.

    Ustawienie tego parametru na 1 wskazuje, że relacje między podrzędnym a nadrzędnym tabel w filtr łączyć jest jeden do jednego lub jeden do wielu.Tylko zestaw tego parametru do 1 Jeśli ograniczenie na przyłączanie do kolumna w tabela podrzędnej, który gwarantuje unikatowość.Jeśli parametr jest zestaw do 1 niepoprawnie, mogą wystąpić inne niż zbieżności danych.Aby uzyskać więcej informacji, zobacz Dołącz filtry.

  • Aby uniknąć wykonywania partie z partii zmiany podczas używania partycji precomputed.

    Podczas scalania agenta jest uruchamiane po uruchomieniu instancji, która zawiera wiele zmian danych, agent próbuje dzielenie dużych partia na mniejszych porcjach.Podczas tego czas, inne procesy scalić Agent może być blokowany.Rozważ zmniejszenie liczby zmian w partia i uruchom agenta scalić między instancje.Jeśli nie można wykonać, zwiększ wartość generation_leveling_threshold w publikacja.

Uwagi dotyczące subskrypcji

Parametry agenta korespondencji seryjnej

Informacje agenta scalanie i jego parametry, zobacz Agent replikacji scalania.

  • Uaktualnienie wszystkich subskrybenci subskrypcji ściąganej do SQL Server 2005 lub nowszej wersja.

    Uaktualnianie subskrybenta do SQL Server 2005 lub nowszej wersja uaktualnia Agent scalania używana przez subskrypcji tego abonenta.Korzystać z wielu nowych funkcji i performance optimizations agenta scalić z SQL Server 2005 lub nowszej wersja jest wymagane.

  • Jeśli subskrypcja jest synchronizowane za pośrednictwem szybkiego połączenia i zmiany są wysyłane z Wydawca i abonenta, użyj –ParallelUploadDownload parametr scalać agenta.

    SQL Server 2005wprowadzono nowy parametr scalać agenta: –ParallelUploadDownload.Ustawienie tego parametru umożliwia scalanie agenta przetwarzanie równoległe zmiany przekazane do Wydawca i te pobierane do subskrybenta.Jest to użyteczne w środowiskach dużej o wysokiej przepustowości.Parametry agenta można określić w profilach agenta i w wierszu polecenia.Aby uzyskać więcej informacji, zobacz:

  • Należy rozważyć zwiększenie wartości - makegenerationinterval parametru, zwłaszcza jeśli synchronizacja wymaga więcej przekazywania od subskrybentów niż pliki do pobrania dla subskrybentów.

  • Podczas synchronizowania wierszy danych z dużą ilość danych, takich jak wiersze, kolumny LOB synchronizacja w sieci Web można wymagają dodatkowej pamięci alokacji i przeciążać wydajności.Ten problem występuje, gdy Agent scalić generuje wiadomości XML, który zawiera zbyt wiele wierszy danych z dużą ilością danych.Agent scalić zużywa dużo zasobów podczas synchronizacja w sieci Web, należy zmniejszyć liczbę wierszy, wysyłane w pojedynczej wiadomości w jednym z następujących sposobów:

    • Użyć profilu agenta powolnego łącza dla agenta scalania.Aby uzyskać więcej informacji, zobacz Profile Agent replikacji.

    • Zmniejsz - downloadgenerationsperbatch i - uploadgenerationsperbatch parametry dla agenta scalić wartości 10 lub mniej.Wartość domyślna tych parametrów jest 50.

Uwagi dotyczące migawki

  • Tworzenie kolumna ROWGUIDCOL w dużych tabelach przed do generowania migawka początkowa.

    replikacja scalania wymaga, że kolumna ROWGUIDCOL w każdej tabela opublikowane.Jeśli kolumna ROWGUIDCOL nie istnieje w tabela, zanim utworzy agenta migawki migawka początkowa plików agent, należy najpierw dodać i wypełnić kolumnę ROWGUIDCOL.Uzyskanie korzyści wydajność podczas generowania migawek podczas replikacja scalająca, należy utworzyć kolumna ROWGUIDCOL w każdej tabela przed opublikowaniem.kolumna może mieć dowolną nazwę (rowguid jest używana przez agenta migawki domyślnie), ale musi mieć typ właściwości następujących danych:

    • Typ danych UNIQUEIDENTIFIER.

    • Domyślnie NEWSEQUENTIALID() lub NEWID().NEWSEQUENTIALID() jest zalecana, ponieważ zapewnia zwiększoną wydajność podczas dokonywania i śledzenia zmian.

    • Właściwość ROWGUIDCOL zestaw.

    • Indeks unikatowy kolumna.

  • Wstępnie wygenerować migawek i/lub subskrybentów pozwalają żądanie migawka wytwarzania i stosowania pierwszego czas ich synchronizowania.

    Służy do tworzenia migawek publikacji, które filtry sparametryzowana jedną lub obie te opcje.Jeśli nie określisz jedną z tych opcji, subskrypcje są inicjowane przy użyciu serii wybierz i instrukcji INSERT, zamiast bcp narzędzie; Ten proces jest znacznie mniejsza.Aby uzyskać więcej informacji, zobacz Migawki publikacji korespondencji seryjnej z filtrami sparametryzowana.

Konserwacja i monitorowanie zagadnienia

  • Czasami Reindeksacja tabele systemowe replikacja scalająca.

    Jako część obsługi replikacja scalająca zaglądać do wzrostu tabele systemowe związanych z replikacja scalająca: MSmerge_contents, MSmerge_genhistory, i MSmerge_tombstone, MSmerge_current_partition_mappings, i MSmerge_past_partition_mappings.Reindeksacja okresowo tych tabel.Aby uzyskać więcej informacji, zobacz Reorganizowanie i odbudowa indeksów.

  • Wydajność synchronizacji monitor za pomocą Historii synchronizacji karcie Monitor replikacji.

    Dla replikacji replikacja scalająca Monitor Wyświetla szczegółowych statystyk w Historii synchronizacji kartę dla każdego artykuł przetwarzane podczas synchronizacji, włączając czas spędzony w każdej z faz przetwarzania (przekazywanie zmiany, pobieranie i tak dalej).Ułatwia identyfikowanie określonych tabel, które są przyczyną wolne downs i jest najlepszym miejscem Rozwiązywanie problemów z wydajnością z subskrypcjami korespondencji seryjnej.Aby uzyskać więcej informacji dotyczących przeglądania szczegółowych statystyk, zobacz Jak Wyświetlanie informacji i wykonywać zadania dotyczące czynników związanych z subskrypcji (Monitor replikacji).

Zobacz także

Koncepcje