동일한 인라인 뷰를 사용하여 3 개의 개별 sqls를 실행하는 자바 프로그램이 있습니다 - sqls가 실행될 때 인라인 뷰를 빌드 할 때마다 약 20 분이 소요됩니다 - 캐시하거나 재사용 할 수있는 방법이 있습니까? - 임시 테이블 솔루션을 피하려고합니다. 왜냐하면 자바 프로그램은 스키마 객체를 생성 할 수있는 권한을 가지고 있지 않기 때문에 plsql에 위임되어야하기 때문입니다. ps : oracle 10g오라클 인라인 뷰는 임시 테이블을 만드는 대신 java 문에서 사용할 수 있습니다
0
A
답변
0
오라클은 결과를 캐시하면 최선을 다할 것입니다. 그러나 당신이 정말로 원하면 임시 테이블을 가질 수 있으며, 그것은 상당히 작습니다. 패키지를 사용하는 경우 처음으로 호출 할 때 임시 테이블을 만들고 다른 두 번 캐시 된 데이터를 사용할 수 있습니다. 패키지 변수를 시험해보고 원하는대로 수행하는지 확인하십시오.
0
은 인라인 뷰로 전환하기 전에 비행 임시 테이블을 만들고 삭제하는 절차를 사용하고있었습니다. 전환은 주로 팀 개발 환경에서 하나의 DB를 공유하는 문제로 인한 것입니다! 이것은 프로그램이 다른 데이터 범위에 대해 10 개의 병렬 스레드로 실행된다는 것입니다. 이제는 개발이 완료되면 임시 테이블로 다시 전환 할 계획이며 현재는 성능이 11g이 될 수 있습니다. RESULT_CACHE 힌트가 대답입니까? – prabhackar
oracle에서 글로벌 임시 테이블을 생성 및 삭제하면 문제가 발생할 수 있습니다. 당신이 그들을 사용하는 경우 데이터베이스에서 그들을 남겨주세요. 이렇게하면 객체를 생성해야하는 문제가 발생하지 않습니다. 그리고 그 안에있는 모든 데이터는 세션에 따라 다르며 트랜잭션이나 세션이 끝날 때 잘립니다. 그래서 그들을 버릴 필요가 없습니다. –