오라클 데이터베이스를 연속적으로 ~ 100 건 이상 업데이트하는 특정 웹 애플리케이션이 있습니다. 이 작업은 3-5 분 정도 걸리므로 웹 페이지가 시간 초과 될 수 있습니다. 응용 프로그램을 다시 설계 할 예정이지만 누군가가 스키마를 메모리에로드하고 하드 드라이브 대신 트랜잭션을 실행하는 "로더 파일"을 구성하는 방법이 있다고 말하면서 여러 주문에 따라 속도를 향상시킬 수 있다고합니다 크기의. 이 "로더 파일"을 연구하려고 시도했지만 SQL * 대량 데이터 로더에 대한 정보 만 찾을 수 있습니다. 아무도 그가 무슨 말을하는지 알아? 이 작업이 실제로 가능하며 가능한 빠른 수정입니까? 아니면 응용 프로그램이 다시 디자인 될 때까지 기다려야합니까?어떻게 오라클 스키마를 하드 드라이브 대신 메모리에로드합니까?
1
A
답변
2
오라클은 이미 메모리에서 작동합니다. 디스크 입출력은 백그라운드에서 관리됩니다. 자주 액세스하는 데이터는 버퍼 캐시의 메모리에 남아 있습니다. 아마도 귀하의 정보 제공자는 메모리에 객체를 "고정"하는 것을 언급하고 있었지만 V8 이후의 오라클의 최신 릴리스, 특히 테이블 데이터에 대해서는 실제로 효과적이지 않습니다. 오라클이 그 일을 할 수있게하십시오. 사실 오라클이 실제로 능숙합니다 (아마 우리보다 낫습니다). Face it - 100K 업데이트가 오래 걸릴 것입니다.
+0
+1 ... "오라클이 그 일을하게하십시오" – dpbradley
'로더'가 잘못된 검색어라고 생각합니다. '메모리 캐시'또는 '지연된 쓰기'또는 일부 시도하십시오. – lexu
응용 프로그램이 시작될 때 테이블에 액세스하여 캐시 테이블에있는 사람들에 대해 들어 봤지만 느린 것을 확인하고 정확한 문제를 해결하기 위해 작업하는 것이 좋습니다. 오라클은 가장 최근에 자주 사용 된 데이터를 캐시하는 알고리즘에 많은 시간과 노력을 기울였습니다. 이러한 작업을 수행하기 위해 디스크로 이동 하시겠습니까? 웹 응용 프로그램과 데이터베이스 간의 각 왕복의 오버 헤드를 알고 있습니까? 업데이트가 어떤 방식 으로든 일괄 처리 될 수 있습니까? 최고 대기 이벤트에 대한 StatsPack 또는 AWR 보고서를 확인 했습니까? –
lexu : 검색 용어의 머리를 주셔서 감사합니다. 훨씬 도움이되었습니다. – Andrew