Freigeben über


Optimieren von parametrisierten Zeilenfiltern

Gilt für: SQL Server

In diesem Thema wird beschrieben, wie Sie mit SQL Server Management Studio oder Transact-SQL parametrisierte Zeilenfilter in SQL Server optimieren.

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 Compact-Abonnenten muss keep_partition_changes auf „true“ festgelegt werden, um sicherzustellen, dass Löschvorgänge ordnungsgemäß weitergegeben 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 über das Dialogfeld Filter hinzufügen fest. Beide Dialogfelder stehen im Assistenten für neue Veröffentlichung sowie über das Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> zur Verfügung. Im Dialogfeld Artikeleigenschaften -.<Artikel> können Sie weitere 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. Diese Option können Sie auf der Seite Abonnementoptionen des Dialogfelds Veröffentlichungseigenschaften - <Veröffentlichung> ändern.

Synchronisierung optimieren
Diese Option sollte nur auf Wahr festgelegt werden, wenn Partitionen im Voraus berechnen auf Falschfestgelegt ist. Diese Option können Sie auf der Seite Abonnementoptionen des Dialogfelds Veröffentlichungseigenschaften - <Veröffentlichung> festlegen.

Weitere Informationen zum Assistenten für neue Veröffentlichung sowie zum Zugriff auf das Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> finden Sie unter Eine Veröffentlichung erstellen und Anzeigen und Ändern von Veröffentlichungseigenschaften.

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

  1. Klicken Sie auf der Seite Tabellenzeilen filtern im Assistenten für neue Veröffentlichung bzw. auf der Seite Zeilen filtern im Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> zunächst auf Hinzufügen und anschließend 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. Wählen Sie OK aus.

  5. Wenn Sie sich im Dialogfeld Veröffentlichungseigenschaften.-.<Veröffentlichung> befinden, klicken Sie auf OK, um zu speichern und das Dialogfeld zu schließen.

Festlegen der Partitionsoptionen im Dialogfeld Artikeleigenschaften - <Artikel>

  1. Wählen Sie im Assistenten für neue Veröffentlichung auf der Seite Artikel bzw. im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> eine Tabelle aus, und klicken anschließend auf Artikeleigenschaften.

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

  3. Geben Sie im Abschnitt Zielobjekt der Registerkarte Eigenschaften des Dialogfensters 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. Wählen Sie OK aus.

  5. Wenn Sie sich im Dialogfeld Veröffentlichungseigenschaften.-.<Veröffentlichung> befinden, klicken Sie auf OK, um zu speichern und das Dialogfeld zu schließen.

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

  1. Wählen Sie auf der Seite Abonnementoptionen im Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> einen Wert für die Option Partitionen im Voraus berechnen 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. Wählen Sie OK aus.

So legen Sie einen Wert für Synchronisierung optimieren fest

  1. Wählen Sie auf der Seite Abonnementoptionen im Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> einen Wert von True für die Option Synchronisierung optimieren aus.

  2. Wählen Sie OK aus.

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