Optimieren von parametrisierten Zeilenfiltern

Gilt für:SQL Server

In diesem Thema wird beschrieben, wie Parametrisierte Zeilenfilter in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL optimiert werden.

In diesem Thema

Vorbereitungen

Empfehlungen

  • Wenn Sie parametrisierte Filter verwenden, können Sie festlegen, wie die Filter durch die Mergereplikation verarbeitet werden, indem Sie bei der Erstellung der Veröffentlichung entweder die Option use partition groups oder die Option keep partition changes wählen. Diese Optionen verbessern bei Veröffentlichungen mit gefilterten Artikeln die Synchronisierungsleistung, da in der Veröffentlichungsdatenbank zusätzliche Metadaten gespeichert werden. Sie können steuern, wie die Daten auf die einzelnen Abonnenten aufgeteilt werden, indem Sie bei der Erstellung eines Artikels partition options festlegen. Weitere Informationen zu diesen Anforderungen finden Sie unter Parameterized Row Filters.

    Bei SQL Server CompactSQL Server Compact-Abonnenten muss keep_partition_changes auf "true" festgelegt werden, um sicherzustellen, dass Löschdaten ordnungsgemäß verteilt werden. Wenn die Einstellung auf "false" festgelegt ist, erhält der Abonnent möglicherweise mehr Zeilen als erwartet.

Verwendung von SQL Server Management Studio

Folgende Einstellungen können zur Optimierung von parametrisierten Zeilenfiltern verwendet werden:

Partition Options
Legen Sie diese Option auf der Seite "Eigenschaften" des Dialogfelds "Artikeleigenschaften – <Artikel> " oder im Dialogfeld "Filter hinzufügen" fest. Beide Dialogfelder sind im Assistenten für neue Publikation und im Dialogfeld "Publikationseigenschaften - <Publikation> " verfügbar. Im Dialogfeld "Artikeleigenschaften <– Artikel> " können Sie zusätzliche Werte für diese Option angeben, die im Dialogfeld "Filter hinzufügen" nicht verfügbar sind.

Partitionen im Voraus berechnen
Diese Option ist standardmäßig auf Wahr festgelegt, wenn die Artikel in Ihrer Veröffentlichung einem Satz von Anforderungen entsprechen. Weitere Informationen zu diesen Anforderungen finden Sie unter Optimieren der Leistung parametrisierter Filter mithilfe vorausberechneter Partitionen. Ändern Sie diese Option auf der Seite "Abonnementoptionen " des Dialogfelds "Publikationseigenschaften - <Publikation> ".

Synchronisierung optimieren
Diese Option sollte nur auf Wahr festgelegt werden, wenn Partitionen im Voraus berechnen auf Falschfestgelegt ist. Legen Sie diese Option auf der Seite "Abonnementoptionen " des Dialogfelds "Publikationseigenschaften - <Publikation> " fest.

Weitere Informationen zur Verwendung des Assistenten für neue Publikation und zum Zugreifen auf das Dialogfeld "Publikationseigenschaften – <Publikation>" finden Sie unter "Publikations- und Ansichts- und Publikationseigenschaften ändern".

So legen Sie Partitionsoptionen im Dialogfeld Filter hinzufügen bzw. Filter bearbeiten fest

  1. Klicken Sie auf der Seite 'Tabellenzeilen filtern' des Assistenten 'Neue Publikation' oder der Seite 'Filterzeilen ' der Publikationseigenschaften ' <Publikation> ' auf ' Hinzufügen', und klicken Sie dann auf ' Filter hinzufügen'.

  2. Erstellen Sie einen parametrisierten Filter. Weitere Informationen finden Sie unter Definieren und Ändern eines parametrisierten Zeilenfilters für einen Mergeartikel.

  3. Wählen Sie die Option aus, mit der angegeben wird, wie Daten für mehrere Abonnenten freigegeben werden:

    • Eine Zeile aus dieser Tabelle wird an mehrere Abonnements gesendet

    • Eine Zeile aus dieser Tabelle wird nur an ein Abonnement gesendet

    Wenn Sie Eine Zeile aus dieser Tabelle wird nur an ein Abonnement gesendetauswählen, kann die Mergereplikation die Leistung optimieren, da weniger Metadaten gespeichert und verarbeitet werden. Sie müssen jedoch sicherstellen, dass die Daten so partitioniert werden, dass eine Zeile nicht für mehrere Abonnenten repliziert werden kann. Weitere Informationen finden Sie im Abschnitt zum Festlegen von Partitionsoptionen unter Parameterized Row Filters.

  4. Klickan Sie auf OK.

  5. Wenn Sie sich im Dialogfeld "Publikationseigenschaften <- Publikation>" befinden, klicken Sie auf "OK", um das Dialogfeld zu speichern und zu schließen.

So legen Sie Partitionsoptionen im Dialogfeld "Artikeleigenschaften - <Artikel> " fest

  1. Wählen Sie auf der Seite "Artikel" des Assistenten "Neue Publikation" oder im Dialogfeld "Publikationseigenschaften – <Publikation>" eine Tabelle aus, und klicken Sie dann auf "Artikeleigenschaften".

  2. Klicken Sie auf Eigenschaften des hervorgehobenen Tabelle-Artikels festlegen oder Eigenschaften aller Tabellenartikel festlegen.

  3. Geben Sie im Abschnitt "Zielobjekt" auf der Registerkarte "Eigenschaften" des Dialogfelds "Artikeleigenschaften - <Artikel>" einen der folgenden Werte für Partitionsoptionen an:

    • Überlappend

    • Überlappend, Datenänderungen außerhalb der Partition nicht zulassen

    • Nicht überlappend, ein Abonnement

    • Nicht überlappend, für mehrere Abonnements freigegeben

    Weitere Informationen zu diesen Optionen und dazu, in welcher Beziehung Sie zu den Optionen stehen, die im Dialogfeld Filter hinzufügen und Filter bearbeiten verfügbar sind, finden Sie im Abschnitt über das Festlegen von Partitionsoptionen unter Parameterized Row Filters.

  4. Klickan Sie auf OK.

  5. Wenn Sie sich im Dialogfeld "Publikationseigenschaften <- Publikation>" befinden, klicken Sie auf "OK", um das Dialogfeld zu speichern und zu schließen.

So legen Sie einen Wert für Partitionen im Voraus berechnen fest

  1. Wählen Sie auf der Seite "Abonnementoptionen " des Dialogfelds "Publikation - <Publikation> " einen Wert für die Option "Vorkompilierte Partitionen " aus. Die Eigenschaft ist in folgenden Fällen schreibgeschützt:

    • Die Veröffentlichung erfüllt die Anforderungen für im Voraus berechnete Partitionen nicht.

    • Es wurde noch keine Momentaufnahme für die Veröffentlichung generiert. In diesem Fall wird für die Option der Wert Wird automatisch beim Erstellen einer Momentaufnahme festgelegtangezeigt.

  2. Klickan Sie auf OK.

So legen Sie einen Wert für Synchronisierung optimieren fest

  1. Wählen Sie auf der Seite "Abonnementoptionen" des Dialogfelds "Publikation - <Publikation>" den Wert True für die Option "Synchronisierung optimieren" aus.

  2. Klickan Sie auf OK.

Verwenden von Transact-SQL

Informationen zur Definition der Filteroptionen für @keep_partition_changes und @use_partition_groups finden Sie unter sp_addmergepublication.

So geben Sie die Optimierungen für Mergefilter beim Erstellen einer neuen Veröffentlichung an

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergepublicationaus. Geben Sie @publication und den Wert true für einen der folgenden Parameter an:

    • @use_partition_groups: die höchste Leistungsoptimierung, vorausgesetzt, dass die Artikel den Anforderungen für vorausberechnete Partitionen entsprechen. Weitere Informationen finden Sie unter Optimieren Parametrisierter Filter-Leistung mit Vorausberechneten Partitionen .

    • @keep_partition_changes: verwenden Sie diese Optimierung, wenn vorausberechnete Partitionen nicht verwendet werden können.

  2. Fügen Sie einen Momentaufnahme-Auftrag für die Veröffentlichung hinzu. Weitere Informationen finden Sie unter Erstellen einer Veröffentlichung.

  3. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergearticleaus, und geben Sie die folgenden Parameter an:

    • @publication: der Name der Veröffentlichung aus Schritt 1

    • @article: ein Name für den Artikel

    • @source_object: das Datenbankobjekt, das veröffentlicht wird

    • @subset_filterclause: die optionale parametrisierte Filterklausel, die verwendet wird, um den Artikel horizontal zu filtern

    • @partition_options: die Partitionsoptionen für den gefilterten Artikel

  4. Wiederholen Sie Schritt 3 für jeden Artikel in der Veröffentlichung.

  5. (Optional) Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergefilter aus, um einen Joinfilter zwischen zwei Artikeln zu definieren. Weitere Informationen finden Sie unter Definieren und Ändern eines Verknüpfungsfilters zwischen Mergeartikeln.

So zeigen Sie das Verhalten von Mergefiltern für eine vorhandene Veröffentlichung an und ändern es

  1. (Optional) Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_helpmergepublication unter Angabe von @publication aus. Beachten Sie den Wert von keep_partition_changes und use_partition_groups im Resultset.

  2. (Optional) Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_changemergepublicationaus. Geben Sie den Wert use_partition_groups für @property und entweder true oder false für @value an.

  3. (Optional) Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_changemergepublicationaus. Geben Sie den Wert keep_partition_changes für @property und entweder true oder false für @value an.

    Hinweis

    Wenn Sie keep_partition_changes aktivieren, müssen Sie zuerst use_partition_groups deaktivieren und den Wert 1 für @force_reinit_subscription angeben.

  4. (Optional) Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_changemergearticleaus. Geben Sie den Wert partition_options für @property und den entsprechenden Wert für @value an. Informationen zur Definition dieser Filteroptionen finden Sie unter sp_addmergearticle .

  5. (Optional) Starten Sie den Momentaufnahme-Agent, um, wenn notwendig, die Momentaufnahme erneut zu generieren. Informationen dazu, welche Änderungen die Generierung einer neuen Momentaufnahme erforderlich machen, finden Sie unter Ändern von Veröffentlichungs- und Artikeleigenschaften.

Weitere Informationen

Automatisches Generieren einer Reihe von Joinfiltern zwischen Mergeartikeln (SQL Server Management Studio)
Definieren und Ändern eines parametrisierten Zeilenfilters für einen Mergeartikel
Parameterized Row Filters