2017-12-17 4 views
0

여러 응용 프로그램이있는 경우 각각 직접 JDBC 호출을 통해 자체 데이터베이스에 액세스하거나 최대 절전 모드를 통해 응용 프로그램의 요청을 읽는 다른 계층의 개체가 있으면 결과를 반환합니다 이 계층에서 발견되지 않으면 데이터베이스로 가서 캐시처럼 작동합니까? 이 새로운 계층은 응용 프로그램에서 쓰기 요청을 받아서 그에 따라 DB를 업데이트 한 다음 자체 캐시를 업데이트합니다. 감사합니다데이터베이스에 액세스 할 독립형 레이어가 있어야합니다.

+0

StackOverflow는 토론 사이트가 아닙니다. [도움말]을 방문하여 [질문]을 읽고 주제가 무엇인지 알아보십시오. –

답변

0

이론적으로 Oracle 데이터베이스는 데이터베이스 링크를 통해 서로 통신합니다. 새 데이터베이스 (또는 기존 응용 프로그램 중 하나에 스키마를 만든 다음 모든 응용 프로그램에서 사용하는 스키마)를 만든다고 가정 해보십시오.

모두에서 데이터를 수집하려면 앞서 언급 한 데이터베이스 링크를 만들고 다른 출처의 데이터를 선택하는보기를 만듭니다. 이러한 뷰는 UNION (ALL) 집합 연산자를 사용합니다. 대용량 데이터 세트에 액세스하는 경우 데이터베이스 링크를 통한 뷰는 느리게 작동합니다.

또는, 필요에 따라 구체화 된보기를 작성하고 새로 고칠 수도 있습니다.

장단점 :보기를 사용하는 경우 트리거 대신 (느리게?) 읽고 데이터를 쓸 수 있습니다. MV (Materialized View)를 사용하는 경우 MV를 인덱싱 할 수 있으므로 빨리 읽을 수 있지만 다음 새로 고침으로 인해 변경 사항이 사라지기 때문에 작성할 수 없습니다.

반면에 새로운 "레이어"(호출 할 때)가 다른 데이터베이스의 데이터를 병합하지는 않지만 하나의 기존 데이터베이스 = 1 새 레이어라는 방식으로 사용되는 경우, 그렇게 할 때 어떤 유익도 얻지 못한다. 이 경우 기존 데이터베이스의 성능 튜닝 (인덱싱 된 테이블, 정기적으로 수집되는 통계 등)에주의를 기울여야합니다.

+0

감사. 추천하는 책이나 문서는 무엇입니까? – mli668

+0

오라클 설명서 (OTN에서 찾을 수 있습니다). 이전 메시지에서 확인한 키워드를 검색하십시오. – Littlefoot