Optymalizacja sparametryzowana wydajności filtr partycji Precomputed
Precomputed partycji jest optymalizację wydajności, która może być używana z filtrowanym publikacjach.Precomputed partycji jest również wymóg przy użyciu rekordów logicznych na filtrowanej publikacji.Aby uzyskać więcej informacji o rekordach logiczne Zobacz Zmiany do wierszy powiązanych z rekordami logiczne grupowanie.
Podczas synchronizacji z programem Wydawca subskrybenta wydawcy musi ocenić abonenta filtrów, aby określić, które wiersze należą do partycji dla subskrybentów lub zestaw danych.Ten proces określania członkostwa zmiany w partycji Wydawca dla każdego subskrybenta otrzymywania filtrowanych zestawów danych jest określany jako oceny partycji.Bez precomputed partycji partycji oceny należy wykonać dla każdej zmiany wprowadzone od czasu ostatniego filtrowaną kolumna przez wydawcę czas uruchomiono agenta scalania dla specyficznego subskrybenta i proces ten musi być powtarzana dla każdego abonenta, która synchronizuje z wydawcą.
However, if the Publisher and Subscriber are running on Microsoft SQL Server 2005 or a later version and you use precomputed partitions, partition membership for all changes at the Publisher is precomputed and persisted at the time that the changes are made.W wyniku podczas synchronizacji z programem Wydawca subskrybenta go niezwłocznie rozpocznie pobieranie zmian odnoszących się do jego partycji bez konieczności przechodzenia przez proces oceny partycji.Może to prowadzić do znaczący wzrost wydajności publikacja ma dużą liczbę zmian, subskrybentów lub artykułów w publikacja.
Oprócz precomputed partycje 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.
Aby używać partycji precomputed
Precomputed partycje są włączane domyślnie we wszystkich nowych i istniejących publikacji, zgodnymi z wytycznymi opisane powyżej.Ustawienia można zmieniać za pomocą SQL Server Management Studio lub programowo.Aby uzyskać więcej informacji, zobacz następujące tematy:
SQL Server Management Studio: Jak Optymalizacja sparametryzowana filtry wiersza (SQL Server Management Studio)
Programowanie języka Transact-SQL replikacji: Jak Optymalizacja sparametryzowana filtry wiersza (Programowanie replikacji Transact-SQL)
Wymagania dotyczące używania partycji Precomputed
Jeśli są spełnione następujące wymagania, domyślnie utworzony z partycjami precomputed włączone, nowych publikacji korespondencji seryjnej są i istniejące publikacje są uaktualniane automatycznie za pomocą funkcji.Jeśli publikacja nie spełnia wymagań, mogą być zmieniane i następnie precomputed partycje mogą być włączone.Jeśli niektóre artykuły spełniają te wymagania, a niektóre nie, należy rozważyć utworzenie dwoma publikacjami z jednym włączone dla partycji precomputed.
Wymagania dotyczące klauzul filtru
Wszelkie funkcje używane w filtrach parametrami wiersza, takich jak HOST_NAME() i SUSER_SNAME(), powinien pojawić się bezpośrednio w klauzula sparametryzowana filtru i nie można zagnieżdżać wewnątrz z widoku lub funkcja dynamicznych.Aby uzyskać więcej informacji dotyczących tych funkcji, zobacz HOST_NAME (Transact-SQL), SUSER_SNAME (Transact-SQL), i Filtry parametrami wiersza.
Po utworzeniu partycji, nie należy zmieniać wartości zwracane dla każdego subskrybenta.Na przykład użyć w filtrze HOST_NAME() (i nie zastępują wartości HOST_NAME()) nie należy zmieniać nazwy komputera przez subskrybenta.
Dołącz filtry nie powinna zawierać funkcje dynamiczne (funkcje takie jak HOST_NAME() i SUSER_SNAME() określających różne wartości w zależności od abonenta, która synchronizuje).Tylko filtry sparametryzowana wiersz powinien zawierać dynamiczne funkcje.
Nie można używać funkcji rodzaju w klauzula filtru.Aby uzyskać więcej informacji na temat rodzaju funkcji, zobacz Przewidywalne i rodzaju funkcje.
Widoki w filtr łączyć klauzul lub klauzul sparametryzowana filtru nie powinna zawierać dynamiczne funkcje.
Cykliczne nie powinien być filtr łączyć relacje w publikacja.
Sortowania bazy danych
W przypadku partycji precomputed sortowania bazy danych jest zawsze używany podczas dokonywania porównań zamiast sortowanie tabela lub kolumna.Rozważmy następujący scenariusz:
Baza danych o przypadek-wielkość liter sortowanie zawiera tabela z przypadek-niewrażliwe sortowanie.
Tabela zawiera kolumna nazwa_komputera, który jest porównywany nazwy hosta abonenta w filtrze sparametryzowanej.
Tabela zawiera jeden wiersz z wartością "Mój komputer" i jeden wiersz z wartością "Mój komputer" w tym kolumna.
Jeśli subskrybenta synchronizuje z nazwy hosta "MójKomputer", abonent otrzymuje tylko jeden wiersz, ponieważ porównanie jest przypadek-wrażliwe (sortowanie bazy danych).Jeśli wstępnie obliczone partycje nie są używane, abonent otrzymuje obu wierszy, ponieważ tabela ma przypadek-niewrażliwe sortowanie.
Wydajność Precomputed partycji
Istnieje koszt mała wydajność precomputed partycji, gdy zmiany są przekazywane od subskrybenta do Wydawca, ale luzem czas przetwarzania korespondencji seryjnej jest poświęcony oceny partycje i pobrać zmiany z Wydawca do subskrybenta tak zysk netto mogą nadal być znaczne.Poprawiać wydajność będzie się różnić w zależności od liczby abonentów synchronizowanie jednocześnie i liczba aktualizacji na synchronizacji, które przenieść wiersze z jednej partycji.