전체 텍스트 : 여러 전체 텍스트 인덱스가 생성 된 후 서버가 정지 된 후 많은 FT_MASTER_MERGE가 SUSPENDED 상태로 대기


9

우리는 10 개의 데이터베이스, 각 데이터베이스에 100 개의 서로 다른 스키마, 각 스키마에 10 개의 작은 (~ 50 행) 테이블 중 10 개 (총 10K 테이블)가있을 때 SQL Server 2014에서 테스트를 수행했으며이 모든 데이터베이스에 대해 전체 텍스트 인덱스를 만들었습니다. 이 모든 데이터베이스의 테이블을 동시에.

몇 분 동안 우리는 SQL Server가 모든 연결 ( ADMIN:.연결 제외 ) 을 수락하지 않는 것을 발견했습니다 . 서버를 다시 시작하면 연결할 수 있지만 언젠가 다시 중단됩니다. 일부 조사 후 우리는이 모든 작업 스레드 소비에 의해 발생되는 것을 발견하고, dm_os_tasks그리고 dm_os_waiting_tasks많이 있다는 것을 우리에게 보여 FT_MASTER_MERGE에서 대기 SUSPENDED상태입니다. "전체 텍스트가 마스터 병합 작업을 기다리고 있습니다"라고 Google에서 검색했지만 실제 정보가 더 이상 없습니다.

DB 당 하나의 카탈로그, 스키 마당 하나의 카탈로그, 인덱스 당 하나의 카탈로그 등 다른 전체 텍스트 카탈로그 구성을 시도했습니다. 어쨌든 서버는 이러한 모든 일시 중단 된 작업으로 중단됩니다.

대기의 근본 원인은 무엇이며 어떻게 해결 / 완화 할 수 있습니까?

그리고 그러한 대량의 테이블에서 전체 텍스트를 사용하도록 권장하는 방법은 무엇입니까?

답변:


3

한 번에 모든 작업을 수행하는 대신 작업을 처리해야합니다. 연결 항목은 새 연결 수락에 대해 이야기하지 않습니다. 그러나이 대기로 인해 스레드가 릴리스되지 않고 (귀하의 경우) 새 코네 틴이 불가능합니다.

참조 :

이것은 SQL Server의 알려진 문제입니다. 연결 항목에서 :

이는 현재 작업 스케줄러가 설정되어 여러 마스터 병합 작업이 대기열에 있지만 신호를 보내지 않기 때문에 발생합니다. 분명히하기 위해 여러 개의 인덱싱 / 재구성 작업이 동시에 호출되는 경우에만 발생합니다. 인덱싱 작업이 정상적으로 완료되고 결과를 쿼리 할 수 ​​있습니다. 시간이 초과되어 나중에 다시 예약되는 것은 마스터 병합뿐입니다.

수정의 복잡성으로 인해 다음 주요 릴리스까지 심사하기 전에 기다렸습니다. 현재 시간 초과 문제가 발생하지 않도록 인덱스 인구비틀 거리는 것이 좋습니다 . 더 궁금한 점이 있으면 알려주세요.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.