Udostępnij za pośrednictwem


Filtrowanie opublikowane dane

Filtrowanie artykułów tabela umożliwia tworzenie partycji danych, które zostaną opublikowane.Filtrowanie publikowane dane, można:

  • Zminimalizować ilość danych przesyłanych za pośrednictwem sieci.

  • Zmniejszyć ilość miejsca wymaganego przez subskrybenta.

  • Dostosować publikacje i aplikacje oparte na indywidualnych wymagań subskrybenta.

  • Uniknięcia lub zmniejszenia konflikty subskrybentów aktualizowania danych, ponieważ partycje danych mogą być wysyłane do innych subskrybentów (dwa subskrybentów będzie aktualizować te same wartości danych).

  • Aby uniknąć przekazywania dane poufne.Wiersz filtry i kolumna filtrów można ograniczyć subskrybenta dostęp do danych.Dla replikacja scalająca są zagadnienia zabezpieczeń dotyczące używania sparametryzowanych filtr, który zawiera HOST_NAME().Aby uzyskać więcej informacji zobacz sekcję "Filtrowanie z HOST_NAME()" in Filtry parametrami wiersza.

Replikacja oferuje cztery typy filtrów:

  • Wiersz statycznych filtrów, które są dostępne wszystkie typy replikacja.

    Wiersz statycznego filtry można wybrać podzbiór wierszy, które zostaną opublikowane.Wszystkich subskrybentów publikacja filtrowane otrzymują te same podzbiór wierszy, które mają być filtrowane tabela.Aby uzyskać więcej informacji zobacz sekcję "Statycznych filtrów wiersza" w tym temacie.

  • Kolumna filtrów, które są dostępne wszystkie typy replikacja.

    Filtry kolumna można wybrać podzbiór kolumn, które mają zostać opublikowane.Aby uzyskać więcej informacji zobacz sekcję "Filtry kolumny" w tym temacie.

  • Sparametryzowana filtrów wierszy, które są dostępne tylko w przypadku replikacja scalająca.

    Filtry parametrami wiersza można wybrać podzbiór wierszy, które zostaną opublikowane.W przeciwieństwie do statycznych filtrów wysyłających samego podzbiór wierszy, aby każdy abonent filtry parametrami wiersza, należy użyć wartości danych dostarczonych przez subskrybenta wysłać subskrybentów inny podzbiór wierszy.Aby uzyskać więcej informacji, zobacz Filtry parametrami wiersza.

  • Dołącz filtry, które są dostępne tylko w przypadku replikacja scalająca.

    Używanie filtrów łączyć, można rozszerzyć filtr wiersza z jednej tabela opublikowane do innego.Aby uzyskać więcej informacji, zobacz Dołącz filtry.

Statyczne filtry wiersza

Na poniższej ilustracji przedstawiono opublikowanych tabela, która jest filtrowane, tak aby tylko te wiersze, 2, 3 i 6 są uwzględnione w publikacja.

Filtrowanie wierszy

statyczny filtr wierszy korzysta z klauzula WHERE, aby wybrać odpowiednie dane, które zostaną opublikowane Określ końcowa część klauzula WHERE.Należy rozważyć produktu tabela w AdventureWorks2008R2 Przykładowa baza danych, który zawiera kolumna ProductLine.Aby opublikować tylko wiersze z danych produktów związanych z górskich, określ ProductLine = 'M'.

statyczny filtr wierszy wyniki w jeden zestaw danych dla każdej publikacja.W poprzednim przykładzie wszystkim subskrybentom otrzymać tylko wiersze z danych produktów związanych z górskich.Jeśli masz inny subskrybenta, który wymaga tylko wiersze z danych produktów związanych z road bikes:

  • Na podstawie migawka lub replikacja transakcyjna, można utworzyć inną publikacja i uwzględnić tabela w obu publikacjach (w klauzula filtr artykuł w tej publikacja, należy określić ProductLine = 'R').

    Ostrzeżenie

    Filtry wierszy w publikacjach transakcyjne można dodać znaczne obciążenie, ponieważ klauzula artykuł filtr jest wyznaczana dla każdego wiersza dziennika, napisane dla opublikowanych tabela, aby ustalić, czy wiersz powinien być replikowany.Filtry wiersza w publikacjach transakcyjnych należy unikać, jeśli każdy węzeł replikacja może obsługiwać obciążenia pełnych danych i ogólny zestaw danych jest zbyt duża.

  • replikacja scalająca za pomocą filtrów parametrami wiersza, zamiast tworzenia wielu publikacji w wiersz statycznego filtry.Aby uzyskać więcej informacji, zobacz Filtry parametrami wiersza.

Aby zdefiniować lub zmodyfikować statyczny filtr wierszy

Filtry kolumny

Na poniższej ilustracji przedstawiono publikacja, która filtruje się kolumna C.

Filtrowanie kolumn

Można również użyć wiersza i kolumna ze sobą, jak pokazano tutaj filtrowania.

Filtrowanie wierszy i kolumn

Po utworzeniu publikacja umożliwia filtrowanie kolumn usunąć kolumna z istniejącej publikacja, ale zachować kolumna w tabela na Wydawca, a także zostać uwzględnione w publikacja istniejącej kolumna.Inne zmiany, takie jak dodawanie nowej kolumna do tabela i dodanie go do opublikowanego artykuł można używać w replikacja zmian schematu.Aby uzyskać więcej informacji zobacz "Dodawanie kolumny" i "Upuszczanie kolumn" sekcje w temacie Wprowadzanie zmian schematu na publikację baz danych.

Typy kolumn wymienionych w poniższej tabela nie można filtrować z niektórych rodzajów publikacji.

Typ kolumny

Typ publikacja i opcje

Kolumna klucz podstawowego

Kolumny klucz podstawowego są wymagane dla wszystkich tabel w publikacjach transakcyjnych.klucz podstawowys nie są wymagane dla tabel w publikacji korespondencji seryjnej, ale jeśli klucz podstawowy kolumny, nie może być filtrowane.

kolumna klucz obcego

Wszystkie publikacje utworzone za pomocą Kreatora nowej publikacji.Można filtrować kolumny klucz obcy za pomocą procedury przechowywanej języka Transact-SQL.Aby uzyskać więcej informacji Jak Definiowanie i modyfikowanie filtru kolumny (Programowanie replikacji Transact-SQL).

Rowguid kolumna

Scalone publikacje1

Msrepl_tran_version kolumna

Migawki lub transakcyjnych publikacji, które umożliwiają subskrypcje aktualizowalna

Kolumny, które nie zezwalaj na wartości NULL, nie mają wartości domyślnych lub właściwość tożsamości zestaw.

Migawki lub transakcyjnych publikacji, które umożliwiają subskrypcje aktualizowalna

Kolumny z ograniczeń unique lub indeksy

Migawki lub transakcyjnych publikacji, które umożliwiają subskrypcje aktualizowalna

Wszystkie kolumny w programie SQL Server 7.0 scalania publikacja

Nie można filtrować kolumn w publikacjach programu SQL Server 7.0.

Sygnatura czasowa

migawka programu SQL Server 7.0 lub transakcyjnych publikacji, które umożliwiają subskrypcje aktualizowalna

1 Jeśli publikujesz tabela w publikacja seryjnej i tabela już zawiera kolumna typu danych uniqueidentifier z ROWGUIDCOL zestaw właściwość replikacja można użyć tej kolumna, zamiast tworzenia dodatkowej kolumna o nazwie rowguid.przypadek istniejącej kolumna muszą być publikowane.

Aby zdefiniować lub zmodyfikowaćfiltr kolumn

Uwagi dotyczące filtrowania

Podczas filtrowania danych, należy pamiętać o następujące kwestie:

  • Wszystkie kolumny w wierszu filtrów musi znajdować się w publikacja.Innymi słowy, nie można używać filtr kolumn Aby wykluczyć kolumna, która jest używana w filtr wiersza.

  • Jeśli filtr zostanie dodany lub zmieniony po subskrypcje został zainicjowany, należy ponownie zainicjować subskrypcji.

  • Maksymalna liczba bajtów dozwolona dla kolumna używane w filtrze jest 1024 artykuł w publikacja seryjnej i 8000 artykuł w publikacja transakcyjnych.

  • Kolumny z następujących typów danych nie można odwoływać się w wierszu filtrów lub łączyć filtrów:

    • varchar(max) and nvarchar(max)

    • varbinary(max)

    • text and ntext

    • image

    • XML

    • UDT

  • replikacja transakcyjnej pozwala replikować indeksowany widok jako widok lub tabela.Jeoli replikujesz widoku tabela nie można filtrować kolumny z tabela.