MSSQL_REPL027183
Dettagli messaggio
Nome prodotto |
SQL Server |
Versione prodotto |
9.0 |
Numero di build del prodotto |
9.00.1399.60 |
ID evento |
27183 |
Origine evento |
MSSQLSERVER |
Componente |
Motore di database di SQL Server |
Nome simbolico |
|
Testo del messaggio |
Impossibile enumerare le modifiche negli articoli con filtri di riga con parametri. 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. |
Spiegazione
Questo errore viene generato se si verifica un timeout dell'agente di merge durante l'elaborazione delle modifiche in una pubblicazione filtrata. Il timeout potrebbe essere provocato da uno dei problemi seguenti:
- Mancato uso dell'ottimizzazione delle partizioni pre-calcolate.
- Frammentazione dell'indice nelle colonne utilizzate per il filtraggio.
- Tabelle di metadati di tipo merge di grandi dimensioni, come MSmerge_tombstone, MSmerge_contents e MSmerge_genhistory.
- Tabelle filtrate non unite in join in una chiave univoca e filtri join che coinvolgono un gran numero di tabelle.
Azione utente
Per risolvere il problema:
- Aumentare il valore del parametro -QueryTimeOut per l'agente di merge, in modo da consentire la prosecuzione dell'elaborazione mentre si risolve il problema sottostante che provoca l'errore. I parametri dell'agente possono essere specificati nei profili agente e dalla riga di comando. Per ulteriori informazioni, vedere:
- Procedura: Utilizzo dei profili agenti di replica (SQL Server Management Studio)
- Procedura: Visualizzazione e modifica dei parametri del prompt dei comandi dell'agente di replica (SQL Server Management Studio)
- How to: Work with Replication Agent Profiles (Replication Transact-SQL Programming)
- Programming Replication Agent Executables.
- Se possibile, utilizzare l'ottimizzazione delle partizioni pre-calcolate. Questa ottimizzazione viene utilizzata per impostazione predefinita se vengono soddisfatti alcuni requisiti di pubblicazione. Per ulteriori informazioni sui tali requisiti, vedere Ottimizzazione delle prestazioni dei filtri con parametri con le partizioni pre-calcolate. Se la pubblicazione non soddisfa questi requisiti, è necessario prendere in considerazione l'eventualità di riprogettare la pubblicazione.
- 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. Per ulteriori informazioni, vedere Scadenza e disattivazione delle sottoscrizioni.
- Nell'ambito delle operazioni di manutenzione ai fini della replica di tipo merge, è necessario verificare occasionalmente l'aumento delle tabelle di sistema associate a questo tipo di replica: MSmerge_contents, MSmerge_genhistory e MSmerge_tombstone, MSmerge_current_partition_mappings e MSmerge_past_partition_mappings. Eseguire periodicamente la reindicizzazione di queste tabelle. Per ulteriori informazioni, vedere Riorganizzazione e ricostruzione degli indici.
- Verificare che le colonne utilizzate per il filtraggio siano indicizzate correttamente e, se necessario, ricostruire tali indici. Per ulteriori informazioni, vedere Riorganizzazione e ricostruzione degli indici.
- Impostare la proprietà join_unique_key per i filtri di join basati su colonne univoche. Per ulteriori informazioni, vedere Filtri join.
- Limitare il numero massimo di tabelle nella gerarchia dei filtri di join. 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. Utilizzare i filtri di join solo tra tabelle che devono essere partizionate tra diverse sottoscrizioni.
- Apportare un numero minore di modifiche sulle tabelle filtrate tra le sincronizzazioni, oppure eseguire l'agente di merge con maggiore frequenza. Per ulteriori informazioni sull'impostazione della pianificazione della sincronizzazione, vedere Procedura: Impostazione di pianificazioni della sincronizzazione (SQL Server Management Studio) e How to: Specify Synchronization Schedules (Replication Transact-SQL Programming).
Vedere anche
Concetti
Causa e risoluzione degli errori di replica