Freigeben über


Optimieren von parametrisierten Zeilenfiltern

In diesem Thema wird beschrieben, wie Parametrisierte Zeilenfilter in SQL Server 2014 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.

    Mit SQL Server CompactSQL 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 im Dialogfeld Filter hinzufügen fest. Beide Dialogfelder sind im Assistenten für neue Veröffentlichung und im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> 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 Veröffentlichungseigenschaften – <Veröffentlichung> .

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 Veröffentlichungseigenschaften – <Veröffentlichung> fest.

Weitere Informationen zum Verwenden des Assistenten für neue Veröffentlichungen und zum Zugreifen auf das Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> finden Sie unter Erstellen einer Veröffentlichung 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 des Assistenten für neue Veröffentlichung oder auf der Seite Zeilen filtern des Dialogfelds Veröffentlichungseigenschaften – <Veröffentlichung> 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. Klicken Sie auf OK.

  5. Wenn Sie sich im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> 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 für neue Veröffentlichung oder im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> 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 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. Klicken Sie auf OK.

  5. Wenn Sie sich im Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> 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 Veröffentlichungseigenschaften – <Veröffentlichung> einen Wert für die Option Partitionen vorkompilieren 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. Klicken Sie auf OK.

So legen Sie einen Wert für Synchronisierung optimieren fest

  1. Wählen Sie auf der Seite Abonnementoptionen des Dialogfelds Veröffentlichungseigenschaften – <Veröffentlichung> den Wert True für die Option Synchronisierung optimieren aus.

  2. Klicken Sie auf OK.

Verwenden von Transact-SQL

Informationen zur Definition der Filteroptionen für @keep_partition_changes und @use_partition_groupsfinden 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 für einen der true 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_helpmergepublicationunter Angabe von @publicationaus. Achten Sie auf 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_changesaktivieren, müssen Sie zuerst use_partition_groups deaktivieren und den Wert 1 für @force_reinit_subscriptionangeben.

  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 @valuean. 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
Parametrisierte Zeilenfilter