MSSQL_REPL027183MSSQL_REPL027183

Dettagli messaggioMessage Details

Nome prodottoProduct Name SQL ServerSQL Server
ID eventoEvent ID 2718327183
Origine eventoEvent Source MSSQLSERVERMSSQLSERVER
ComponenteComponent Motore di database di SQL ServerSQL Server Database Engine
Nome simbolicoSymbolic Name
Testo del messaggioMessage Text Impossibile enumerare le modifiche negli articoli con filtri di riga con parametri.The merge process failed to enumerate changes in articles with parameterized row filters. Se il problema persiste, aumentare il timeout per le query per questo processo, ridurre il periodo di memorizzazione per la pubblicazione e migliorare gli indici delle tabelle pubblicate.If this failure continues, increase the query timeout for this process, reduce the retention period for the publication, and improve indexes on published tables.

SpiegazioneExplanation

Questo errore viene generato se si verifica un timeout dell'agente di merge durante l'elaborazione delle modifiche in una pubblicazione filtrata.This error is raised if a Merge Agent timeout occurs while processing changes in a filtered publication. Il timeout potrebbe essere provocato da uno dei problemi seguenti:The timeout might be caused by one of the following issues:

  • Mancato uso dell'ottimizzazione delle partizioni pre-calcolate.Not using the precomputed partitions optimization.

  • Frammentazione dell'indice nelle colonne utilizzate per il filtraggio.Index fragmentation on columns used for filtering.

  • Tabelle di metadati di tipo merge di grandi dimensioni, come MSmerge_tombstone, MSmerge_contentse MSmerge_genhistory.Large merge metadata tables, such as MSmerge_tombstone, MSmerge_contents, and MSmerge_genhistory.

  • Tabelle filtrate non unite in join in una chiave univoca e filtri join che coinvolgono un gran numero di tabelle.Filtered tables that are not joined on a unique key and join filters that involve a large number of tables.

Azione dell'utenteUser Action

Per risolvere il problema:To resolve the issue:

  • Aumentare il valore del parametro -QueryTimeOut per l'agente di merge, in modo da continuare l'elaborazione mentre si risolve il problema sottostante che causa l'errore.Increase the value of the -QueryTimeOut parameter for the Merge Agent to allow processing to continue while you address the underlying issues causing the error. I parametri degli agenti possono essere specificati nei profili agente e dalla riga di comando.Agent parameters can be specified in agent profiles and on the command line. Per altre informazioni, vedere:For more information, see:

  • Se possibile, utilizzare l'ottimizzazione delle partizioni pre-calcolate.Use the precomputed partitions optimization if possible. Questa ottimizzazione viene utilizzata per impostazione predefinita se vengono soddisfatti alcuni requisiti di pubblicazione.This optimization is used by default if a number of publication requirements are met. Per altre informazioni su questi requisiti, vedere Ottimizzare le prestazioni dei filtri con parametri con le partizioni pre-calcolate.For more information about these requirements, see Optimize Parameterized Filter Performance with Precomputed Partitions. Se la pubblicazione non soddisfa questi requisiti, è necessario prendere in considerazione l'eventualità di riprogettare la pubblicazione.If the publication does not meet these requirements, consider redesigning the publication.

  • Specificare la minima impostazione possibile per il periodo di memorizzazione della pubblicazione, poiché la replica non è in grado di eliminare i metadati dei database di pubblicazione e sottoscrizione prima della scadenza del periodo di memorizzazione.Specify the lowest setting possible for the publication retention period, because replication cannot clean up metadata in the publication and subscription databases until the retention period is reached. Per altre informazioni, vedere Subscription Expiration and Deactivation.For more information, see Subscription Expiration and Deactivation.

  • Come parte della manutenzione per la replica di tipo merge, controllare occasionalmente l'aumento delle dimensioni delle tabelle di sistema associate alla replica di tipo merge: MSmerge_contents, MSmerge_genhistorye MSmerge_tombstone, MSmerge_current_partition_mappingse MSmerge_past_partition_mappings.As part of maintenance for merge replication, occasionally check the growth of the system tables associated with merge replication: MSmerge_contents, MSmerge_genhistory, and MSmerge_tombstone, MSmerge_current_partition_mappings, and MSmerge_past_partition_mappings. Reindicizzare periodicamente queste tabelle.Periodically re-index these tables. Per altre informazioni, vedere Riorganizzare e ricompilare gli indici.For more information, see Reorganize and Rebuild Indexes.

  • Verificare che le colonne utilizzate per il filtraggio siano indicizzate correttamente e, se necessario, ricompilare tali indici.Ensure that columns used for filtering are properly indexed and rebuild such indexes if necessary. Per altre informazioni, vedere Riorganizzare e ricompilare gli indici.For more information, see Reorganize and Rebuild Indexes.

  • Impostare la proprietà join_unique_key per i filtri di join basati su colonne univoche.Set the join_unique_key property for join filters that are based on unique columns. Per altre informazioni, vedere Join Filters.For more information, see Join Filters.

  • Limitare il numero massimo di tabelle nella gerarchia dei filtri di join.Limit the number of tables in the join filter hierarchy. Se si generano filtri di join di cinque o più tabelle, considerare altre soluzioni: non filtrare tabelle piccole, non soggette a modifica o tabelle che fungono principalmente da tabelle di ricerca.If you are generating join filters of five or more tables, consider other solutions: do not filter tables that are small, not subject to change, or are primarily lookup tables. Utilizzare i filtri di join solo tra tabelle che devono essere partizionate tra diverse sottoscrizioni.Use join filters only between tables that must be partitioned among subscriptions.

  • Apportare un numero minore di modifiche sulle tabelle filtrate tra le sincronizzazioni, oppure eseguire l'agente di merge con maggiore frequenza.Make a smaller number of changes on filtered tables between synchronizations, or run the Merge Agent more frequently. Per ulteriori informazioni sull'impostazione delle pianificazioni della sincronizzazione, vedere Specify Synchronization Schedules.For more information about setting synchronization schedules, see Specify Synchronization Schedules.

Vedere ancheSee Also

Guida di riferimento a errori ed eventi (replica)Errors and Events Reference (Replication)