Optimiser les filtres de lignes paramétrables

S’applique à :SQL Server

Cette rubrique explique comment optimiser les filtres de lignes paramétrables dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL.

Dans cette rubrique

Avant de commencer

Recommandations

  • 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. 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. 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. Pour plus d'informations sur ces conditions requises, consultez Parameterized Row Filters.

    Avec les abonnés SQL Server CompactSQL Server Compact, keep_partition_changes devez avoir la valeur true pour vous assurer que les suppressions sont correctement propagées. Lorsque la valeur est false, l'abonné peut avoir plus de lignes que prévu.

Utilisation de SQL Server Management Studio

Les paramètres suivants permettent d'optimiser les filtres de lignes paramétrés :

Partition Options
Définissez cette option sur la page Propriétés de la boîte de dialogue Propriétés de l’article - <Boîte de dialogue Article> ou dans la boîte de dialogue Ajouter un filtre. Les deux boîtes de dialogue sont disponibles dans l’Assistant Nouvelle publication et dans la boîte de dialogue Propriétés de publication - <Publication> . La boîte de dialogue Propriétés de l’article - <Article> vous permet de spécifier des valeurs supplémentaires pour cette option qui ne sont pas disponibles dans la boîte de dialogue Ajouter un filtre .

Précalculer les partitions
Par défaut, cette option est définie à True si les articles de votre publication satisfont à un ensemble de conditions. Pour plus d’informations sur ces exigences, consultez Optimiser les performances des filtres paramétrés avec des partitions précalculées. Modifiez cette option dans la page Options d’abonnement de la boîte de dialogue Propriétés de publication - <Publication> .

Optimiser la synchronisation
Cette option ne doit être définie à True que si Précalculer les partitions est défini à False. Définissez cette option dans la page Options d’abonnement de la boîte de dialogue Propriétés de publication - <Publication>.

Pour plus d’informations sur l’utilisation de l’Assistant Nouvelle publication et l’accès à la boîte de dialogue Propriétés de publication - <Publication>, consultez Créer une publication et afficher et modifier les propriétés de publication.

Pour définir les options de la partition dans la boîte de dialogue Ajouter un filtre ou Modifier le filtre

  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.

  2. Créer un filtre paramétré. Pour plus d'informations, voir Définir et modifier un filtre de lignes paramétrable pour un article de fusion.

  3. Sélectionnez l'option qui correspond aux données qui seront partagées entre des Abonnés :

    • Une ligne de cette table ira à plusieurs abonnements

    • Filtre paramétré créant des partitions qui ne se chevauchent pas, avec un seul abonnement par partition

    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. 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é. Pour plus d'informations, consultez la section « Définition de « partition options » » dans la rubrique Parameterized Row Filters.

  4. Cliquez sur OK.

  5. Si vous êtes dans la boîte de dialogue Propriétés de publication - <Publication> , cliquez sur OK pour enregistrer et fermer la boîte de dialogue.

Pour définir les options de partition dans la boîte de dialogue Propriétés de l’article - <Boîte de dialogue Article>

  1. Dans la page Articles de l’Assistant Nouvelle publication ou de la boîte de dialogue Propriétés de publication - <Publication>, sélectionnez un tableau, puis cliquez sur Propriétés de l’article.

  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.

  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 les options de partition :

    • Chevauchement

    • Chevauchement ; refus des modifications de données hors partition

    • Non-chevauchement ; abonnement unique

    • Non-chevauchement ; partage entre les abonnements

    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 Parameterized Row Filters.

  4. Cliquez sur OK.

  5. Si vous êtes dans la boîte de dialogue Propriétés de publication - <Publication> , cliquez sur OK pour enregistrer et fermer la boîte de dialogue.

Pour définir Précalculer les partitions

  1. Dans la page Options d’abonnement de la boîte de dialogue Propriétés de publication - <Publication> , sélectionnez une valeur pour l’option Partitions de précompute. Cette propriété est en lecture seule si :

    • La publication ne satisfait pas aux conditions requises pour les partitions précalculées.

    • Aucun instantané n'a encore été généré pour la publication. Dans ce cas, l'option affiche la valeur Définir automatiquement lorsqu'un instantané est créé.

  2. Cliquez sur OK.

Pour définir Optimiser la synchronisation

  1. Dans la page Options d’abonnement de la boîte de dialogue Propriétés de publication - <Publication> , sélectionnez la valeur de True l’option Optimiser la synchronisation .

  2. Cliquez sur OK.

Utilisation de Transact-SQL

Pour connaître la définition des options de filtrage @keep_partition_changes et @use_partition_groups, consultez sp_addmergepublication.

Pour spécifier des optimisations du filtre de fusion au moment de la création d'une publication

  1. Dans la base de données de publication sur le serveur de publication, exécutez sp_addmergepublication. Spécifiez @publication et affectez la valeur true à l’un des paramètres suivants :

  2. Ajoutez un travail d'instantané pour la publication. Pour plus d’informations, consultez Créer une 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 :

    • @publication : nom de la publication de l’étape 1.

    • @article : nom de l’article.

    • @source_object : objet de base de données qui est publié.

    • @subset_filterclause : clause de filtre paramétrable facultative utilisée pour filtrer horizontalement l’article.

    • @partition_options : options de partition pour l’article filtré.

  4. Répétez l'étape 3 pour chaque article de la 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. Pour plus d'informations, voir Définir et modifier un filtre de jointure entre des articles de fusion.

Pour afficher et modifier les comportements de filtre de fusion d'une publication existante

  1. (Facultatif) Dans la base de données de publication sur le serveur de publication, exécutez sp_helpmergepublication, en spécifiant @publication. Notez la valeur de keep_partition_changes et use_partition_groups dans le jeu de résultats.

  2. (Facultatif) Dans la base de données de publication sur le serveur de publication, exécutez sp_changemergepublication. Spécifiez la valeur use_partition_groups pour @property et true ou false pour @value.

  3. (Facultatif) Dans la base de données de publication sur le serveur de publication, exécutez sp_changemergepublication. Spécifiez la valeur keep_partition_changes pour @property et true ou false pour @value.

    Remarque

    Quand vous activez keep_partition_changes, vous devez d’abord désactiver use_partition_groups et spécifier la valeur 1 pour @force_reinit_subscription.

  4. (Facultatif) Dans la base de données de publication sur le serveur de publication, exécutez sp_changemergearticle. Spécifiez la valeur partition_options pour @property et la valeur appropriée pour @value. Pour connaître la définition de ces options de filtrage, consultez sp_addmergearticle .

  5. (Facultatif) Lancez l'Agent d'instantané afin de régénérer l'instantané si nécessaire. Pour plus d’informations sur les modifications qui requièrent un nouvel instantané, consultez Modifier les propriétés des publications et des articles.

Voir aussi

Générer automatiquement un ensemble de filtres de jointure entre des articles de fusion (SQL Server Management Studio)
Définir et modifier un filtre de lignes paramétrable pour un article de fusion
Filtres de lignes paramétrés