Optimiser les filtres de lignes paramétrablesOptimize Parameterized Row Filters

Cette rubrique s’applique à : OuiSQL Serveraucunbase de données SQL AzureaucunAzure SQL Data Warehouse aucun Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse Cette rubrique explique comment optimiser les filtres de lignes paramétrables dans SQL Server 2017SQL Server 2017 à l’aide de SQL Server Management StudioSQL Server Management Studio ou de Transact-SQLTransact-SQL. This topic describes how to optimize parameterized row filters in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Dans cette rubriqueIn This Topic

Avant de commencerBefore You Begin

RecommandationsRecommendations

  • Lorsque vous utilisez des filtres paramétrables, vous pouvez contrôler le traitement de ces filtres par la réplication de fusion en spécifiant l'option use partition groups ou l'option keep partition changes au moment de la création d'une publication.When you use parameterized filters, you can control how the filters are processed by merge replication by specifying either the use partition groups option or the keep partition changes option when you create a publication. Ces options améliorent les performances de la synchronisation des publications avec articles filtrés en stockant des métadonnées supplémentaires dans la base de données de publication.These options improve the synchronization performance for publications with filtered articles by storing additional metadata in the publication database. Vous pouvez contrôler le partage des données entre les Abonnés en définissant partition options au moment de la création d'un article.You can control how the data is shared among Subscribers by setting partition options when you create an article. Pour plus d'informations sur ces conditions requises, consultez Parameterized Row Filters.For more information about these requirements, see Parameterized Row Filters.

    Avec les abonnés SQL Server Compact de SQL Server CompactSQL Server Compact, keep_partition_changes doit avoir la valeur true afin que les suppressions soient correctement propagées.With SQL Server CompactSQL Server CompactSQL Server Compact subscribers, keep_partition_changes must be set to true to ensure that deletes are correctly propagated. Lorsque la valeur est false, l'abonné peut avoir plus de lignes que prévu.When set to false, the subscriber might have more rows than expected.

Utilisation de SQL Server Management StudioUsing SQL Server Management Studio

Les paramètres suivants permettent d'optimiser les filtres de lignes paramétrés :The following settings can be used to optimize parameterized row filters:

Partition OptionsPartition Options
Définissez cette option dans la page Propriétés de la boîte de dialogue Propriétés de l’article - <Article>, ou dans la boîte de dialogue Ajouter un filtre.Set this option on the Properties page of the Article Properties - <Article> dialog box, or in the Add Filter dialog box. Ces deux boîtes de dialogue sont disponibles dans l’Assistant Nouvelle publication et dans la boîte de dialogue Propriétés de la publication - <Publication>.Both dialog boxes are available in the New Publication Wizard and the Publication Properties - <Publication> dialog box. La boîte de dialogue Propriétés de l’article - <Article> permet de spécifier pour cette option des valeurs supplémentaires qui ne sont pas disponibles dans la boîte de dialogue Ajouter un filtre.The Article Properties - <Article> dialog box allows you to specify additional values for this option that are not available in the Add Filter dialog box.

Précalculer les partitionsPrecompute Partitions
Par défaut, cette option est définie à True si les articles de votre publication satisfont à un ensemble de conditions.This option is set to True by default if the articles in your publication adhere to a set of requirements. Pour plus d’informations sur ces exigences, consultez Optimiser les performances des filtres paramétrables avec des partitions précalculées.For more information about these requirements, see Optimize Parameterized Filter Performance with Precomputed Partitions. Modifiez cette option dans la page Options d’abonnement de la boîte de dialogue Propriétés de la publication - <Publication>.Modify this option on the Subscription Options page of the Publication Properties - <Publication> dialog box.

Optimiser la synchronisationOptimize Synchronization
Cette option ne doit être définie à True que si Précalculer les partitions est défini à False.This option should be set to True only if Precompute Partitions is set to False. Définissez cette option dans la page Options d’abonnement de la boîte de dialogue Propriétés de la publication - <Publication>.Set this option on the Subscription Options page of the Publication Properties - <Publication> dialog box.

Pour plus d’informations sur l’utilisation de l’Assistant Nouvelle publication et sur l’accès à la boîte de dialogue Propriétés de la publication- <Publication>, consultez Créer une publication et Afficher et modifier les propriétés d’une publication.For more information about using the New Publication Wizard and accessing the Publication Properties - <Publication> dialog box, see Create a Publication and View and Modify Publication Properties.

Pour définir les options de la partition dans la boîte de dialogue Ajouter un filtre ou Modifier le filtreTo set Partition options in the Add Filter or Edit Filter dialog box

  1. Dans la page Filtrer les lignes de la table de l’Assistant Nouvelle publication, ou la page Filtrer les lignes de la boîte de dialogue Propriétés de la Publication - <Publication>, cliquez sur Ajouter, puis sur Ajouter un filtre.On the Filter Table Rows page of the New Publication Wizard or the Filter Rows page of the Publication Properties - <Publication> dialog box, click Add, and then click Add Filter.

  2. Créer un filtre paramétrable.Create a parameterized filter. Pour plus d'informations, consultez Définir et modifier un filtre de lignes paramétrable pour un article de fusion.For more information, see Define and Modify a Parameterized Row Filter for a Merge Article.

  3. Sélectionnez l'option qui correspond aux données qui seront partagées entre des Abonnés :Select the option that matches how data will be shared among Subscribers:

    • Une ligne de cette table ira à plusieurs abonnementsA row from this table will go to multiple subscriptions

    • Filtre paramétré créant des partitions qui ne se chevauchent pas, avec un seul abonnement par partitionA row from this table will go to only one subscription

      Si vous sélectionnez Filtre paramétré créant des partitions qui ne se chevauchent pas, avec un seul abonnement par partition, la réplication de fusion peut optimiser les performances en stockant et en traitant moins de métadonnées.If you select A row from this table will go to only one subscription, merge replication can optimize performance by storing and processing less metadata. Cependant, vous devez vérifier que les données sont partitionnées de telle façon qu'une ligne ne peut pas être répliquée sur plus d'un Abonné.However, you must ensure that the data is partitioned in such a way that a row cannot be replicated to more than one Subscriber. Pour plus d'informations, consultez la section « Définition de « partition options » » dans la rubrique Parameterized Row Filters.For more information, see the section "Setting 'partition options'" in the topic Parameterized Row Filters.

  4. Cliquez sur OK.Click OK.

  5. Si vous êtes dans la boîte de dialogue Propriétés de la publication - <Publication>, cliquez sur OK pour enregistrer et fermer la boîte de dialogue.If you are in the Publication Properties - <Publication> dialog box, click OK to save and close the dialog box.

Pour définir Options de la partition dans la boîte de dialogue Propriétés de l’article - <Article>To set Partition Options in the Article Properties - <Article> dialog box

  1. Dans la page Articles de l’Assistant Nouvelle publication ou la boîte de dialogue Propriétés de la publication - <Publication>, sélectionnez une table et cliquez sur Propriétés de l’article.On the Articles page of the New Publication Wizard or the Publication Properties - <Publication> dialog box, select a table, and then click Article Properties.

  2. Cliquez sur Définir les propriétés de l'article de la table en surbrillance ou Définir les propriétés de tous les articles de la table.Click Set Properties of Highlighted Table Article or Set Properties of All Table Articles.

  3. Dans la section Objet de destination de l’onglet Propriétés de la boîte de dialogue Propriétés de l’article - <Article>, spécifiez l’une des valeurs suivantes pour Options de la partition :In the Destination Object section of the Properties tab of the Article Properties - <Article> dialog box, specify one of the following values for Partition Options:

    • ChevauchementOverlapping

    • Chevauchement ; refus des modifications de données hors partitionOverlapping, disallow out-of-partition data changes

    • Non-chevauchement ; abonnement uniqueNonoverlapping, single subscription

    • Non-chevauchement ; partage entre les abonnementsNonoverlapping, shared between subscriptions

      Pour plus d'informations sur ces options et sur leurs liens avec les options disponibles dans les boîtes de dialogue Ajouter un filtre et Modifier le filtre , consultez la section relative à la définition de la propriété « partition options » dans la rubrique Filtres de lignes paramétrables.For more information about these options and how they relate to the options available in the Add Filter and Edit Filter dialog boxes, see the "Setting 'partition options'" section of Parameterized Row Filters.

  4. Cliquez sur OK.Click OK.

  5. Si vous êtes dans la boîte de dialogue Propriétés de la publication - <Publication>, cliquez sur OK pour enregistrer et fermer la boîte de dialogue.If you are in the Publication Properties - <Publication> dialog box, click OK to save and close the dialog box.

Pour définir Précalculer les partitionsTo set Precompute Partitions

  1. Dans la page Options d’abonnement de la boîte de dialogue Propriétés de la publication - <Publication>, sélectionnez une valeur pour l’option Précalculer les partitions.On the Subscription Options page of the Publication Properties - <Publication> dialog box, select a value for the Precompute Partitions option. Cette propriété est en lecture seule si :The property is read-only if:

    • La publication ne satisfait pas aux conditions requises pour les partitions précalculées.The publication does not meet the requirements for precomputed partitions.

    • Aucun instantané n'a encore été généré pour la publication.A snapshot has not yet been generated for the publication. Dans ce cas, l'option affiche la valeur Définir automatiquement lorsqu'un instantané est créé.In this case, the option displays a value of Set automatically when a snapshot is created.

  2. Cliquez sur OK.Click OK.

Pour définir Optimiser la synchronisationTo set Optimize Synchronization

  1. Dans la page Options d’abonnement de la boîte de dialogue Propriétés de la publication - <Publication, sélectionnez la valeur True pour l’option Optimiser la synchronisation.On the Subscription Options page of the Publication Properties - <Publication> dialog box, select a value of True for the Optimize Synchronization option.

  2. Cliquez sur OK.Click OK.

Utilisation de Transact-SQLUsing Transact-SQL

Pour connaître la définition des options de filtrage @keep_partition_changes et @use_partition_groups, consultez sp_addmergepublication.For definitions of the filtering options for @keep_partition_changes and @use_partition_groups, see sp_addmergepublication.

Pour spécifier des optimisations du filtre de fusion au moment de la création d'une publicationTo specify merge filter optimizations when creating a new publication

  1. Dans la base de données de publication sur le serveur de publication, exécutez sp_addmergepublication.At the Publisher on the publication database, execute sp_addmergepublication. Spécifiez @publication et affectez la valeur true à l'un des paramètres suivants :Specify @publication and a value of true for one the following parameters:

  2. Ajoutez un travail d'instantané pour la publication.Add a snapshot job for the publication. Pour plus d’informations, consultez Créer une publication.For more information see Create a Publication.

  3. Dans la base de données de publication sur le serveur de publication, exécutez sp_addmergearticle en spécifiant les paramètres suivants :At the Publisher on the publication database, execute sp_addmergearticle, specifying the following parameters:

    • @publication - nom de la publication de l'étape 1@publication - the name of the publication from step 1.

    • @article - nom de l'article@article - a name for the article

    • @source_object - objet de base de données qui est publié@source_object - the database object being published.

    • @subset_filterclause - clause de filtre paramétrable facultative utilisée pour filtrer horizontalement l'article@subset_filterclause - the optional parameterized filter clause used to horizontally filter the article.

    • @partition_options - options de partition pour l'article filtré@partition_options - the partition options for the filtered article.

  4. Répétez l'étape 3 pour chaque article de la publication.Repeat step 3 for each article in the publication.

  5. (Facultatif) Dans la base de données de publication sur le serveur de publication, exécutez sp_addmergefilter pour définir un filtre de jointure entre deux articles.(Optional) At the Publisher on the publication database, execute sp_addmergefilter to define a join filter between two articles. Pour plus d'informations, voir Définir et modifier un filtre de jointure entre des articles de fusion.For more information, see Define and Modify a Join Filter Between Merge Articles.

Pour afficher et modifier les comportements de filtre de fusion d'une publication existanteTo view and modify merge filter behaviors for an existing publication

  1. (Facultatif) Dans la base de données de publication sur le serveur de publication, exécutez sp_helpmergepublication, en spécifiant @publication.(Optional) At the Publisher on the publication database, execute sp_helpmergepublication, specifying @publication. Notez la valeur de keep_partition_changes et use_partition_groups dans le jeu de résultats.Note the value of keep_partition_changes and use_partition_groups in the result set.

  2. (Facultatif) Dans la base de données de publication sur le serveur de publication, exécutez sp_changemergepublication.(Optional) At the Publisher on the publication database, execute sp_changemergepublication. Affectez la valeur use_partition_groups à @property et la valeur true ou de false à @value.Specify a value of use_partition_groups for @property and either true or false for @value.

  3. (Facultatif) Dans la base de données de publication sur le serveur de publication, exécutez sp_changemergepublication.(Optional) At the Publisher on the publication database, execute sp_changemergepublication. Affectez la valeur keep_partition_changes à @property et la valeur true ou de false à @value.Specify a value of keep_partition_changes for @property and either true or false for @value.

    Note

    Si vous activez keep_partition_changes, vous devez commencer par désactiver use_partition_groups et affecter la valeur 1 à @force_reinit_subscription.When enabling keep_partition_changes, you must first disable use_partition_groups and specify a value of 1 for @force_reinit_subscription.

  4. (Facultatif) Dans la base de données de publication sur le serveur de publication, exécutez sp_changemergearticle.(Optional) At the Publisher on the publication database, execute sp_changemergearticle. Affectez la valeur partition_options à @property et la valeur appropriée à @value.Specify a value of partition_options for @property and the appropriate value for @value. Pour connaître la définition de ces options de filtrage, consultez sp_addmergearticle .See sp_addmergearticle for definitions of these filtering options.

  5. (Facultatif) Lancez l'Agent d'instantané afin de régénérer l'instantané si nécessaire.(Optional) Start the Snapshot Agent to regenerate the snapshot if necessary. Pour plus d’informations sur les modifications qui requièrent un nouvel instantané, consultez Modifier les propriétés des publications et des articles.For information about which changes require a new snapshot to be generated, see Change Publication and Article Properties.

Voir aussiSee Also

Générer automatiquement un ensemble de filtres de jointure entre des articles de fusion (SQL Server Management Studio) Automatically Generate a Set of Join Filters Between Merge Articles (SQL Server Management Studio)
Define and Modify a Parameterized Row Filter for a Merge Article Define and Modify a Parameterized Row Filter for a Merge Article
Filtres de lignes paramétrablesParameterized Row Filters