전체 텍스트 검색 관리
전체 텍스트 관리는 다음 4가지 기본 작업으로 구분될 수 있습니다.
- 전체 텍스트 인덱스 및 전체 텍스트 카탈로그 만들기
- 기존의 전체 텍스트 인덱스 및 카탈로그 변경
- 기존의 전체 텍스트 인덱스 및 카탈로그 삭제
- 인덱스 채우기 일정 및 유지 관리
전체 텍스트 관리는 서버, 데이터베이스, 테이블 및 열 수준에서 수행됩니다. 서버 수준에서는 resource_usage와 같은 서버 차원의 특정 속성을 설정하여 전체 텍스트 서비스에 사용되는 시스템 리소스의 양을 늘리거나 줄일 수 있습니다. 데이터베이스 수준에서는 데이터베이스에서 SQL Server용 Microsoft 전체 텍스트 검색 엔진(MSFTESQL) 서비스를 설정하거나 해제할 수 있습니다. 전체 텍스트를 사용할 수 있는 데이터베이스에 하나 이상의 전체 텍스트 카탈로그에 대한 메타데이터를 만들고 삭제할 수 있습니다.
[!참고] Microsoft SQL Server 2005에서는 모든 데이터베이스가 기본적으로 전체 텍스트 사용을 지원합니다.
테이블 수준에서는 테이블의 전체 텍스트 지원을 설정하거나 해제할 수 있습니다. 전체 텍스트 검색에 대해 인덱싱될 새 열을 포함하여 테이블의 전체 텍스트 정의가 변경되면 관련된 전체 텍스트 카탈로그를 다시 채워 전체 텍스트 인덱스와 새로운 전체 텍스트 정의를 동기화해야 합니다. 열 수준에서는 전체 텍스트 쿼리를 지원하는 열을 추가하거나 삭제할 수 있습니다.
전체 텍스트 인덱스와 전체 텍스트 카탈로그 생성 시 고려 사항
전체 텍스트 인덱스를 만드는 방법을 알아보기 전에 전체 텍스트 인덱스와 일반 SQL Server 인덱스의 차이점을 아는 것이 중요합니다. 다음 표에서는 이러한 차이점을 보여 줍니다.
전체 텍스트 인덱스 | 일반 SQL Server 인덱스 |
---|---|
파일 시스템에 저장되지만 데이터베이스를 통해 관리합니다. |
인덱스가 정의된 데이터베이스의 제어 하에 저장됩니다. |
테이블당 한 개의 전체 텍스트 인덱스만 허용합니다. |
테이블당 여러 개의 일반 인덱스를 허용합니다. |
채우기라고 하는 전체 텍스트 인덱스로의 데이터 추가는 일정 또는 특정 요청을 통해 수행되거나, 새 데이터를 추가하여 자동으로 수행됩니다. |
인덱스의 기초가 되는 데이터가 삽입, 업데이트 또는 삭제되면 인덱스도 자동으로 업데이트됩니다. |
같은 데이터베이스 내에서 하나 이상의 전체 텍스트 카탈로그로 그룹화됩니다. |
그룹화되지 않습니다. |
모든 수준에서 메타데이터 및 상태 정보를 검색할 수 있는 기능이 제공됩니다.
일반 SQL Server 인덱스처럼 전체 텍스트 인덱스는 연결된 테이블의 데이터가 수정될 때 자동으로 업데이트할 수 있습니다. 또는 적절한 간격으로 전체 텍스트 인덱스를 수동으로 다시 채울 수 있지만 이 작업은 많은 시간과 리소스가 필요할 수 있습니다. 따라서 인덱스 업데이트는 일반적으로 데이터베이스 작업량이 적은 기간에 백그라운드에서 실행되는 비동기적 프로세스로 수행됩니다.
같은 업데이트 특징을 가진 테이블을 함께 그룹화하여 같은 전체 텍스트 카탈로그에 할당해야 합니다. 예를 들어 변경이 적은 테이블과 변경이 많은 테이블 또는 하루 중 특정 시간에 자주 변경되는 테이블 등으로 그룹화할 수 있습니다. 이런 방법으로 전체 텍스트 카탈로그 채우기 작업을 설정하면 전체 텍스트 인덱스가 데이터베이스 작업이 많을 때 데이터베이스 서버의 리소스 사용에 역효과를 미치지 않고 테이블과 동기화됩니다.
테이블에 대한 전체 텍스트 인덱스를 전체 텍스트 카탈로그에 배치하는 계획이 중요합니다. 전체 텍스트 카탈로그에 테이블을 할당할 때는 다음 지침을 고려하십시오.
항상 전체 텍스트 고유 키에 사용 가능한 가장 작은 고유 인덱스를 선택하십시오. 4바이트의 정수 기반 인덱스가 적합합니다. 이렇게 하면 파일 시스템에서 Microsoft Search 서비스에 필요한 리소스가 상당히 줄어듭니다. 기본 키가 100바이트 이상이면 테이블에서 다른 고유 인덱스를 선택하거나 다른 고유 인덱스를 만들어 전체 텍스트 고유 키로 사용하십시오. 반대로 전체 텍스트 고유 키의 크기가 허용되는 최대 크기인 900바이트를 초과하면 전체 텍스트 채우기를 계속할 수 없습니다.
수백 만 개의 행을 가진 테이블의 인덱스를 만들 때는 테이블을 자신의 전체 텍스트 카탈로그에 할당하십시오.
테이블 행 수 뿐만 아니라 전체 텍스트 인덱스화되는 테이블에서 변경되는 양도 고려해야 합니다. 변경되는 행 수와 마지막 전체 텍스트 채우기에서 나타난 테이블 행 수가 수백 만 개이면 테이블을 자신의 전체 텍스트 카탈로그에 할당하십시오.
참고 항목
개념
전체 텍스트 인덱스
전체 텍스트 검색 소개
전체 텍스트 검색 아키텍처
전체 텍스트 검색을 사용하여 SQL Server 쿼리