테이블을 고려 곳에서 하이픈 열 :오라클 - 절
ID COUNTRY_CODE
1 ab-cd-ef
2 gh-ef
3 cd-ab-pq-xy
는 그리고 특정 국가 코드를 포함하는 레코드를 선택하는 SQL 쿼리가 필요합니다. 물론 전통적인 LIKE
접근 작품은 :
select ID from TableName where COUNTRY_CODE like '%cd%';
여기서 문제는,이 쿼리 따라서 전체 작업의 비용을 증가, 기록의 수백만을 통해 실행됩니다. 비용 문제로 인해 중첩 테이블은 여기에 옵션이 없습니다.
참고 : 필요한 경우 Java를 사용하여 쿼리를 매개 변수화 할 수 있습니다.
검색 가능한 열을 처리하는 데 비용 효율적인 방법이 있습니까?
이 테이블을 많이 업데이트하지 않으면 하나 이상의 국가 코드가있는 COUNTRY_CODE에 대한 중복 레코드를 생성하는 Materialized View를 생성 할 수 있습니다. 이렇게하면 성능을 향상시키기 위해 like를 사용하지 않아도됩니다. – STaefi
@STaefi 테이블에 수백만 개의 레코드가 포함되어 있으며 테이블이 계속 커집니다. 중복은 실제로 여기 옵션이 아닙니다. – HitchHiker