검색에 최적화된 테이블 작업하기

검색 최적화는 일반적으로 사용자에게 투명합니다. 쿼리는 동일하게 작동하는데, 일부 쿼리는 더 빠릅니다. 그러나 다른 테이블 작업이 검색 최적화 서비스에 미칠 수 있는 영향이나 그 반대의 영향을 인식하는 것이 중요합니다.

테이블 수정하기

열의 기본값이 변경되면 검색 액세스 경로가 무효화됩니다.

검색 액세스 경로가 무효화된 후 검색 최적화를 다시 사용하려면 SEARCH OPTIMIZATION 속성을 삭제 하고 SEARCH OPTIMIZATION 속성을 테이블에 다시 추가 해야 합니다.

열을 추가 또는 삭제하거나 이름을 변경하면 검색 액세스 경로가 계속 유효합니다.

  • 특정 열을 지정하지 않고 전체 테이블에 대해 검색 최적화를 활성화한 다음 테이블에 열을 추가하면 검색 액세스 경로에 새 열이 자동으로 추가됩니다. 하지만 열에 대한 검색 최적화를 활성화할 때 ON 절을 사용한 경우 새 열이 자동으로 추가되지 않습니다.

  • 테이블에서 열을 삭제하면 삭제된 열이 검색 액세스 경로에서 자동으로 제거됩니다.

  • 열 이름을 변경하는 경우에는 검색 액세스 경로를 변경할 필요가 없습니다.

테이블을 삭제하면 SEARCH OPTIMIZATION 속성 및 검색 액세스 경로도 함께 삭제됩니다. 참고:

  • 테이블 삭제를 즉시 취소하면 검색 최적화가 테이블의 속성으로 다시 설정됩니다.

  • 테이블을 삭제할 때 검색 액세스 경로의 데이터 보존 기간은 테이블과 동일합니다.

테이블에서 SEARCH OPTIMIZATION 속성을 삭제 하면 검색 액세스 경로가 제거됩니다. SEARCH OPTIMIZATION 속성을 테이블에 다시 추가 할 때 유지관리 서비스는 검색 액세스 경로를 다시 생성해야 합니다. (속성을 삭제할 수 있는 방법 없음)

테이블, 스키마 또는 데이터베이스 복제하기

테이블, 스키마 또는 데이터베이스를 복제하면 각 테이블의 SEARCH OPTIMIZATION 속성과 검색 액세스 경로도 함께 복제됩니다. (테이블, 스키마 또는 데이터베이스를 복제하면 각 테이블과 해당 검색 액세스 경로의 복사를 수행하지 않는 복제 가 생성됩니다.)

CREATE TABLE … LIKE를 사용하여 원래 테이블과 열이 동일한 비어 있는 새 테이블을 생성하면 SEARCH OPTIMIZATION 속성이 새 테이블에 복사되지 않습니다.

보조 데이터베이스(데이터베이스 복제 지원)에서 테이블 관련 작업하기

기본 데이터베이스의 테이블에 SEARCH OPTIMIZATION 속성이 활성화되어 있으면 해당 속성은 보조 데이터베이스의 해당 테이블에 복제됩니다.

보조 데이터베이스의 검색 액세스 경로는 복제되지 않으며 자동으로 다시 작성됩니다. 이 프로세스에서는 검색 최적화 비용 추정 및 관리 의 설명과 같은 종류의 비용이 발생한다는 점에 유의하십시오.

테이블 공유하기

데이터 공급자는 Secure Data Sharing 를 사용하여 검색 최적화가 활성화된 테이블을 공유할 수 있습니다.

공유 테이블을 쿼리할 때 데이터 컨슈머는 검색 최적화 서비스의 성능 향상을 통해 이점을 활용할 수 있습니다.

마스킹 정책 및 행 액세스 정책

검색 최적화 서비스는 마스킹 정책 및 행 액세스 정책을 사용하는 테이블과 완벽하게 호환됩니다.

하지만 검색 최적화가 활성화되면 마스킹 정책 또는 행 액세스 정책으로 인해 값을 볼 수 없는 사용자는 해당 값이 존재하는지 더 확실하게 추론할 수 있습니다. 검색 최적화의 사용 여부와는 무관하게, 쿼리 대기 시간의 차이를 통해 정책으로 제한되는 데이터의 존재 여부를 엿볼 수 있는데, 이는 데이터의 민감도에 따라 보안 문제가 될 수 있습니다. 결과를 반환하지 않는 쿼리를 훨씬 더 빠르게 만들 수 있으므로 검색 최적화를 통해 이 효과가 확대될 수 있습니다.

예를 들어, 행 액세스 정책에 따라 사용자가 country = 'US' 가 있는 행에는 액세스할 수 없지만 country = 'US' 이 있는 행이 데이터에 포함되어 있지 않다고 가정해 보십시오. 이제는 검색 최적화가 country 열에 대해 활성화되고 사용자가 WHERE country = 'US' 가 있는 쿼리를 실행한다고 가정해 보십시오. 이 쿼리는 예상대로 빈 결과를 반환하지만 검색 최적화를 사용할 때가 사용하지 않을 때보다 더 빠르게 실행될 수 있습니다. 이 경우 사용자는 쿼리를 실행하는 데 걸린 시간을 기준으로 country = 'US' 인 행이 데이터에 포함되어 있지 않다고 더 쉽게 추론할 수 있습니다.