전체 텍스트 인덱스는 SQL Server 30 분 동안 채우기 중지

증상

Microsoft SQL Server 2012, 2014, 2016 이나 2017 서버에 설치 되어 있다고 가정 합니다. 다음 시나리오를 고려 하십시오.

  • 시나리오 1:
    더 이상 데이터베이스에 여러 개의 전체 텍스트 인덱스가 있는 고 이러한 전체 텍스트 인덱스 채우기를 동시 가까이 됩니다.

  • 시나리오 2:
    여러 전체 텍스트 인덱스를 포함 하는 전체 텍스트 카탈로그를 만들고 같은 때 이러한 전체 텍스트 인덱스 채우기를 완료 합니다.

  • 시나리오 3:
    여러 인덱스 채우기를 마치도록에 또는 한 번에 하나 이상의 전체 텍스트 카탈로그를 다시 작성 합니다.

  • 시나리오 4:
    수동으로 여러 전체 텍스트 인덱스를 포함 하는 카탈로그에 대해 전체 텍스트 카탈로그 다시 구성 변경 실행 있습니다.

이러한 상황 중 하나에서 설정 하면 추적 플래그를 SQL Server 오류 로그에 있는 전체 텍스트 채우기에 대 한 자세한 정보 표시 로그 출력 (TF) 7603 다음과 유사한 메시지가 표시 됩니다.

날짜/시간 SPID IFTS: CFTWICrawl::Close, 전체 크롤링 끝났으므로 CrawlType에 대 한 마스터 병합 일정: 1, DBid 7 catid tid 13847411 5
날짜/시간 SPID DBid 7, 5, tblid 13847411 카탈로그에 대 한 대기 중인 m M 항목을 CFTMasterMergeListManager::QueueMasterMerge
날짜/시간 SPID IFTS: CFTWIAutoCrawlFullPass::ExecUnit::DoUnitWork: 리턴 없이 전체 autocrawl 전달 DBid 7 Catid 5 Objid 13847411 기존 크롤링 발견


또한 마스터 병합 하는 30 분 정도 나타나고 중단에 따라 마스터 병합을 로그에 보고 합니다.

날짜/시간 SPID IFTS: 30 분 m_DBid m_objid 13847411 7 이상에서 preinit 기다린 때문에 마스터 병합 작업 항목이 중단 되었습니다.
날짜/시간 SPID DBid 7, objid, 13847411에 대 한 인덱스 쿼리 느리게 수 있습니다 경고 마스터 병합 작업 수행 되지 않았습니다. 하십시오 실행 전체 텍스트 카탈로그 다시 구성 변경.
날짜/시간 SPID CFTMasterMergeListManager::RemoveMasterMerge MM 항목 DBid 7, 5, tblid 13847411 카탈로그 출시
날짜/시간 SPID 마스터 병합 테이블의 전체 크롤링이 끝날 때 시작 또는 인덱싱된 뷰 ' [DB1]. [dbo]입니다. [표 1]'을 검사 하지 못했습니다. '0x80000049' =. 데이터베이스 ID '7'은, 테이블 id가 13847411, 카탈로그 ID: 5.

원인

마스터 병합 인덱스 당 전체 또는 증분 채우기의 끝에 자동으로 실행 됩니다. 마스터 병합 프로세스에서 쿼리가 전체 텍스트 인덱스의 전체 텍스트 인덱스 성능 되는 부정적인 영향을 활용 하 여 유지 하기 위해 전체 텍스트 인덱스 조각의 수를 줄일 수 있습니다.

마스터 병합 프로세스에서 각 전체 텍스트 인덱스 조각화를 줄이기 위해 여러 스레드를 사용 합니다. SQL Server 동시에 실행 하는 마스터 병합을 동시 수 있습니다. 임계값에 도달 하는 즉시 마스터 병합을 실행 하려고 하는 모든 전체 텍스트 인덱스는 30 분 정도 지연이 발생 합니다. 이 대기 기간 동안 전체 텍스트 인덱스를 업데이트 하는 시작 되지 않습니다. 마스터 병합 다음 두 가지 중 하나가 발생 하는 경우 다시 시작 됩니다.

  • 다음 성공적인 증분 채우기를 완료 하 고 성공적으로 마스터 병합을 시작 합니다.

  • 다음 명령을 실행 하 여 마스터 병합을 수동으로 실행 합니다.

    ALTER FULLTEXT CATALOG catalog_name REORGANIZE

    Note 위의 두 가지 옵션을 실행 하는 마스터 병합 횟수에 따라 마스터 병합 제한에 도달 계속 수 있습니다.

해결 방법

이 해결 하려면 다음 방법을 시도해 보십시오.

  • 방법 1 (권장) : 동일한 카탈로그에 전체 텍스트 인덱스 수를 제한 합니다. 7 개 권장 합니다. 대형 테이블 자신의 전체 텍스트 카탈로그에 있어야 합니다. 이것이 성능에 대 한 가장 좋은 방법은 인덱스를 다시 구성 하거나 다시 작성 합니다. 이 이렇게 Change_tracking 자동으로하는 경우에 도움이 됩니다.  

  • 방법 2: 수동으로Change_Tracking 설정 , 다음 명령을 사용 하 여:

    ALTER FULLTEXT INDEX ON table_name set Change_tracking = Manual

    그런 다음 SQL Server 작업의 증분 채우기가 시작 되 면 분산을 만듭니다. 따라서 덜 중복 인덱스 채우기 수행 하는 마스터 병합을 실행 하면 됩니다.

상태

Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.

추가 도움이 필요하신가요?

기술 향상
교육 살펴보기
새로운 기능 우선 가져오기
Microsoft Insider 참가

이 정보가 유용한가요?

소중한 의견에 감사드립니다.

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×