2013-11-25 2 views
0

나는 많은 테이블이있는 데이터베이스 (오라클)를 가지고 있습니다 : 예를 들어 CLIENT, PRODUCTS, OPERATIONS 등. 나는 'MA'라는 구를 쓰고 힌트를 줄 수있는 searcher를 구현하고자합니다.많은 테이블에서 데이터베이스 검색

MA RIA 클라이언트

MA STERMIND 제품

RE MA PPING 동작

등 ...

어떻게 구현하나요? 그렇게하기위한 접근 방법은 무엇입니까? 다른 테이블을 만들어야 모든 이름 (클라이언트 이름, 제품 이름, 작업 이름 ...)이 생성됩니까? 또는 여러 가지 조건을 사용하여 모든 테이블을 검색하면됩니까? 이 작업을 효율적으로 수행하는 방법은 무엇입니까?

많은 사람들이 내 질문을 중복으로 표시 했으므로 다음과 같이 설명하고 싶습니다. 한 번 사용하고 싶은 솔루션을 찾고 있지 않습니다. 한 가지 생산 환경을 구현해야합니다. 많은 사람들이 그런 정보를 검색 할 것입니다. 위. dba_tables, dba_tab_columns 뷰에서 동적 SQL을 만들 수 있지만 효율적인 방법을 준비하고 싶습니다. WHERE 절에서 LIKE를 사용하면 인덱스가 사용되지 않으므로 전체 테이블 스캔을 수행합니다. 많은 사용자와 큰 테이블에서 시스템에서 작동하지 않습니다. 내가 키워드 열에 도메인 색인을 가진 키워드로 표를 만들고 좋아하는 대신에 CONTAINS를 사용하는 것을 고려해 볼 수는 있지만, 다른 생각이있을 수도 있습니다. 어쩌면 다른 데이터베이스 엔진이 나를 도울 수있는 기능을 가지고 있을까요?

답변

0

UNION 및 VIEW에 대한 내용을 읽으십시오. 어느 것을 사용해야하는지는 데이터베이스의 크기와 쿼리의 복잡성에 달려 있습니다.

+0

내가 고려해야를 확인하시기 바랍니다 뷰 + 노동 조합
또는 새 테이블을 사용할 수 있습니까? LIKE b-tree 인덱스는 작동하지 않습니다. – user3032111

관련 문제