MSSQL_REPL027183MSSQL_REPL027183

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

메시지 정보Message Details

제품 이름Product Name SQL ServerSQL Server
이벤트 IDEvent ID 2718327183
이벤트 원본Event Source MSSQLSERVERMSSQLSERVER
구성 요소Component SQL Server 데이터베이스 엔진SQL Server Database Engine
심볼 이름Symbolic Name
메시지 텍스트Message Text 병합 프로세스에서 매개 변수가 있는 행 필터를 사용하여 아티클의 변경 내용을 열거하지 못했습니다.The merge process failed to enumerate changes in articles with parameterized row filters. 이 오류가 계속되면 이 프로세스에 대한 쿼리 제한 시간을 늘리고 게시 보존 기간을 줄인 다음 게시된 테이블의 인덱스를 향상시키십시오.If this failure continues, increase the query timeout for this process, reduce the retention period for the publication, and improve indexes on published tables.

설명Explanation

이 오류는 필터링된 게시에서 변경 내용을 처리하는 동안 병합 에이전트 제한 시간에 도달한 경우 발생합니다.This error is raised if a Merge Agent timeout occurs while processing changes in a filtered publication. 다음 문제 중 하나로 인해 제한 시간에 도달했을 수 있습니다.The timeout might be caused by one of the following issues:

  • 사전 계산 파티션 최적화를 사용하지 않았습니다.Not using the precomputed partitions optimization.

  • 열의 인덱스 조각화가 필터링에 사용되었습니다.Index fragmentation on columns used for filtering.

  • MSmerge_tombstone, MSmerge_contents, MSmerge_genhistory와 같은 큰 병합 메타데이터 테이블이 있습니다.Large merge metadata tables, such as MSmerge_tombstone, MSmerge_contents, and MSmerge_genhistory.

  • 필터링된 테이블이 고유 키에 조인되어 있지 않고 많은 테이블이 조인 필터와 관련되어 있습니다.Filtered tables that are not joined on a unique key and join filters that involve a large number of tables.

사용자 동작User Action

이 문제를 해결하려면To resolve the issue:

  • 오류를 일으킨 기본 문제를 해결하는 동안 병합 에이전트에서 계속 처리 작업을 수행하려면 -QueryTimeOut 매개 변수의 값을 늘립니다.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. 에이전트 프로필 및 명령줄에서 에이전트 매개 변수를 지정할 수 있습니다.Agent parameters can be specified in agent profiles and on the command line. 참조 항목:For more information, see:

  • 사전 계산 파티션 최적화를 사용합니다(가능한 경우).Use the precomputed partitions optimization if possible. 많은 게시 요구 사항이 충족되면 이 최적화가 기본적으로 사용됩니다.This optimization is used by default if a number of publication requirements are met. 이러한 요구 사항에 대한 자세한 내용은 사전 계산 파티션으로 매개 변수가 있는 필터 성능 최적화를 참조하세요.For more information about these requirements, see Optimize Parameterized Filter Performance with Precomputed Partitions. 게시가 이러한 요구 사항을 충족하지 않는 경우 게시를 다시 디자인하십시오.If the publication does not meet these requirements, consider redesigning the publication.

  • 복제는 보존 기간에 도달할 때까지 게시 및 구독 데이터베이스의 메타데이터를 정리할 수 없으므로 게시 보존 기간에 대해 가능한 가장 낮은 설정을 지정합니다.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. 자세한 내용은 Subscription Expiration and Deactivation을(를) 참조하세요.For more information, see Subscription Expiration and Deactivation.

  • 병합 복제 유지 관리의 한 부분으로 병합 복제와 연결된 MSmerge_contents, MSmerge_genhistoryMSmerge_tombstone, MSmerge_current_partition_mappingsMSmerge_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. 이러한 테이블의 인덱스를 주기적으로 다시 만듭니다.Periodically re-index these tables. 자세한 내용은 인덱스 다시 구성 및 다시 작성을 참조하세요.For more information, see Reorganize and Rebuild Indexes.

  • 필터링에 사용된 열이 올바로 인덱싱되는지 확인하고 이러한 인덱스를 다시 작성합니다(필요한 경우).Ensure that columns used for filtering are properly indexed and rebuild such indexes if necessary. 자세한 내용은 인덱스 다시 구성 및 다시 작성을 참조하세요.For more information, see Reorganize and Rebuild Indexes.

  • 고유 열을 기반으로 하는 조인 필터에 대해 join_unique_key 속성을 설정합니다.Set the join_unique_key property for join filters that are based on unique columns. 자세한 내용은 Join Filters을(를) 참조하세요.For more information, see Join Filters.

  • 조인 필터 계층에서 테이블의 수를 제한합니다.Limit the number of tables in the join filter hierarchy. 5개 이상의 테이블을 가진 조인 필터를 생성하는 경우 다른 해결책을 고려하는 것이 좋습니다. 크기가 작거나, 변경될 가능성이 없거나, 기본적으로 조회 테이블에 해당하는 테이블은 필터링하지 마십시오.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. 구독 간에 분할해야 하는 테이블 사이에서만 조인 필터를 사용합니다.Use join filters only between tables that must be partitioned among subscriptions.

  • 동기화 사이에 있는 필터링된 테이블에 대한 변경 횟수를 줄이거나 병합 에이전트를 더 자주 실행합니다.Make a smaller number of changes on filtered tables between synchronizations, or run the Merge Agent more frequently. 동기화 일정 설정 방법은 Specify Synchronization Schedules을 참조하십시오.For more information about setting synchronization schedules, see Specify Synchronization Schedules.

참고 항목See Also

오류 및 이벤트 참조(복제)Errors and Events Reference (Replication)