Udostępnij za pośrednictwem


Filtrowanie opublikowane dane

Filtrowanie tabela artykuły umożliwia utworzenie partycji danych, które mają być opublikowane.Za pomocą filtrowania publikowanych danych, można wykonywać następujące czynności:

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

  • Zmniejszenie ilości miejsca wymaganego przez subskrybent.

  • Dostosować publikacje i aplikacji, w zależności od poszczególnych subskrybent.

  • Należy unikać lub zmniejszyć konflikty subskrybentów są aktualizowania danych, ponieważ partycje danych mogą być wysyłane do subskrybentów różnych (nie dwa subskrybentów będzie się aktualizacji takich samych wartościach danych).

  • Należy unikać transmitowania dane poufne.Filtry wierszy i kolumn, filtrów można używać do ograniczania przez subskrybent dostępu do danych.replikacja łączenia istnieją zagadnienia dotyczące zabezpieczeń, jeżeli korzystasz z parametrami filtr, który zawiera HOST_NAME().Aby uzyskać więcej informacji zobacz sekcję "Filtrowania z HOST_NAME()" w Sparametryzowana filtry wierszy.

Replikacja oferuje cztery typy filtrów:

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

    Wiersz statycznych filtrów można wybrać podzbiór wierszy, które zostaną opublikowane.Wszystkich subskrybentów na publikacja w filtrowanym otrzymują ten sam podzbiór wierszy, które mają być filtrowane tabela.Aby uzyskać więcej informacji zobacz sekcję "Statyczne filtry wiersz" w tym temacie.

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

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

  • Filtry wierszy, które są dostępne tylko w przypadku parametrów replikacja łączenia.

    Za pomocą filtrów parametrami wiersza, można wybrać podzbiór wierszy, które zostaną opublikowane.W przeciwieństwie do statycznych filtrów wysyłać te same podzbiór wierszy, do wszystkich subskrybent filtry parametrami wiersza, użyj wartości danych dostarczanych przez subskrybent, aby wysłać subskrybent inny podzbiór wierszy.Aby uzyskać więcej informacji zobacz Sparametryzowana filtry wierszy.

  • łączyć filtrów, które są dostępne tylko w przypadku scalania replikacja.

    Za pomocą filtrów łączyć, można rozszerzyć filtr wiersza z jednej tabela opublikowanych na inny.Aby uzyskać więcej informacji zobacz łączyć Filtry.

Statyczne filtry wierszy

Na poniższej ilustracji przedstawiono opublikowanych tabela, która jest filtrowana, tak aby tylko te wiersze, 2, 3 i 6 znajdują się w publikacja.

Row filtering

statyczny filtr wierszy używa klauzula WHERE, aby wybrać odpowiednie dane, które zostaną opublikowane, określ ostatnia część klauzula WHERE.Należy wziąć pod uwagę Tabela produktu (AdventureWorks) w przykładowej bazie danych firmy Adventure Works, który zawiera kolumna ProductLine.Aby opublikować tylko wiersze z danymi o produktach dotyczące rowerów górskich, określanie ProductLine = 'M'.

Filtr wiersza statycznych powoduje pojedynczy zestaw danych dla każdej publikacja.W poprzednim przykładzie wszystkich subskrybentów uzyskiwał tylko wiersze z danymi o produktach dotyczące rowerów górskich.Jeśli masz inny subskrybent, który wymaga tylko wiersze z danymi o produktach dotyczące rowerów drogi:

  • migawka lub replikacja transakcyjnej, można utworzyć inną publikacja i uwzględnić tabela w obu publikacjach (w klauzula filtru artykuł w tej publikacja, określanie ProductLine = 'R').

    Uwaga

    Filtry wierszy w publikacjach transakcyjnych można dodać znaczne obciążenie, ponieważ klauzula filtru artykuł jest wyznaczana dla każdego wiersza dziennika, napisane dla opublikowanych tabela, aby określić, czy mają być replikowane w wierszu.Filtry wierszy w publikacjach transakcyjnych należy unikać, jeśli każdy węzeł replikacja może obsługiwać ładowania danych i ogólny zestaw danych jest odpowiednio małe.

  • Przy replikacja łączenia za pomocą filtrów parametrami wiersza, a nie tworzenie wiele publikacji przy użyciu wiersza statycznych filtrów.Aby uzyskać więcej informacji zobacz Sparametryzowana filtry wierszy.

Aby zdefiniować lub zmodyfikować statyczny filtr wierszy

Filtry kolumna

Na poniższej ilustracji przedstawiono publikacji, w której odfiltrowuje kolumna C.

Column filtering

Można też użyć wiersza i kolumna ze sobą, jak zostało to przedstawione w tym polu filtrowania.

Row and column filtering

Po utworzeniu publikacja można użyć filtrowania kolumna aby usunąć kolumna z istniejącej publikacja, ale zachować kolumna w tabela u Wydawca i dołączyć istniejącą kolumna w publikacja.W przypadku innych zmian, takich jak dodanie nowej kolumna do tabela, a następnie dodanie go do opublikowanego artykuł za pomocą replikacja zmian schematu.Więcej informacji na ten temat można znaleźć w sekcjach "Upuszczanie kolumny" i "Dodawanie kolumny" w temacie Wprowadzanie zmian schematu na bazy danych w publikacja.

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

Typ kolumna

Typ publikacja i opcje

Kolumna klucz podstawowy

Kolumny klucz podstawowy są wymagane dla wszystkich tabel w publikacjach transakcyjnych.Klucze podstawowe nie są wymagane w przypadku tabel w publikacji korespondencji seryjnej, ale jeśli istnieje kolumna klucz podstawowy nie może być filtrowane.

kolumna klucz obcy

Wszystkie publikacje utworzone za pomocą Kreatora nowy plik publikacja.Można filtrować kolumny klucz obcy przy użyciu procedury przechowywanej języka Transact-SQL.Aby uzyskać więcej informacji, Jak Definiowanie i modyfikowanie filtr kolumn (Programowanie replikacja języka Transact-SQL).

The rowguid kolumna

Scalanie publikacji1

The msrepl_tran_version kolumna

migawka lub transakcyjnych publikacji, które umożliwiają subskrypcji mogą być aktualizowane

Kolumny nie zezwalaj na wartości NULL i nie mają wartości domyślne lub ustawić właściwość IDENTITY.

migawka lub transakcyjnych publikacji, które umożliwiają subskrypcji mogą być aktualizowane

Kolumny z unikatowego ograniczenia lub indeksy

migawka lub transakcyjnych publikacji, które umożliwiają subskrypcji mogą być aktualizowane

Wszystkie kolumny w programie SQL Server 7.0 Scalanie publikacja

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

Sygnatura czasowa

migawka programu SQL Server 7.0 lub transakcyjnych publikacji, które umożliwiają subskrypcji mogą być aktualizowane

1 Jeśli w publikacja seryjnej jest publikowana w tabela tej tabela zawiera już kolumna danych wpisać uniqueidentifier z ROWGUIDCOL zestaw właściwość replikacja można użyć w tej kolumnie zamiast tworzenia dodatkowej kolumna o nazwie ROWGUID.W takim przypadek należy opublikować istniejącej kolumna.

Aby zdefiniować lub zmodyfikować filtr kolumn

Uwagi dotyczące filtrowania

Podczas filtrowania danych, należy pamiętać o następujących zagadnień:

  • Wszystkie kolumny, do którego odwołuje się wiersz filtry muszą być uwzględnione w publikacja.Innymi słowy nie można używać filtr kolumn, aby wykluczyć kolumna, który jest używany w filtrze wiersza.

  • Jeśli filtr jest dodany lub zmieniony po subskrypcji zostały zainicjowane, musi być ustawienie ponownie inicjowane subskrypcji.

  • Maksymalną liczbę bajtów dozwoloną kolumna używane w filtrze jest 1024 artykuł w publikacja seryjnej i 8000 artykuł w publikacja transakcyjnych.

  • Kolumny zawierające następujące typy danych nie może odwoływać się w wierszu filtrów lub Dołącz filtry:

    • varchar(max) and nvarchar(max)

    • varbinary(max)

    • text and ntext

    • image

    • XML

    • UDT

  • replikacja transakcyjnej pozwala replikować widok indeksowany jako widok lub jako tabela.Jeśli replikujesz widoku w postaci tabela, można filtrować kolumny z tabela.