반응형
Oracle에서 캐시된 모든 항목을 지우는 방법
Oracle 데이터베이스에서 SQL 쿼리를 튜닝하고 있습니다.잘못된 성능 결과를 방지하기 위해 각 쿼리를 실행하기 전에 캐시된 모든 항목을 지우고 싶습니다.다음 명령을 실행하여 공유 풀(캐시된 SQL/설명 계획 제거)과 버퍼 캐시(캐시된 데이터 제거)를 지웁니다.
alter system flush buffer_cache;
alter system flush shared_pool;
제가 해야 할 일이 더 있나요, 아니면 이 정도면 충분한가요?
감사합니다!
공유 풀을 플러시하면 충분하지만 Tom Kyte는 다음과 같은 몇 가지 이유를 제시합니다.
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:6349391411093
운영 체제와 하드웨어도 캐싱을 수행하므로 결과가 왜곡될 수 있습니다.
스키마 또는 전체 데이터베이스에 대한 통계도 수집해야 합니다.
begin
dbms_stats.gather_schema_stats('schema_name');
end;
또는
begin
dbms_stats.gather_database_stats;
end;
그런 다음 공유 풀을 지웁니다.
캐시를 모두 클리어했기 때문에 잘못된 결과를 나타내고 있다고 생각합니다.현실 세계의 데이터베이스는 일생에 단 한 번 그런 상태가 됩니다.실제로 성능 테스트에서는 일반적으로 캐싱(및 기타 최적화)의 이점을 확인할 수 있도록 쿼리를 여러 번 실행하는 것이 일반적입니다.
언급URL : https://stackoverflow.com/questions/2147456/how-to-clear-all-cached-items-in-oracle
반응형
'programing' 카테고리의 다른 글
TypeScript 함수 오버로드 (0) | 2023.03.04 |
---|---|
MongoDB 오픈소스 vs MongoDB Enterprise (0) | 2023.03.04 |
대규모 데이터 세트(angular.js)에 비해 ngRepeat의 성능을 향상시키는 방법 (0) | 2023.02.27 |
MongoDB에서 특정 필드 값을 가진 문서가 포함되지 않은 배열 문서를 찾습니다. (0) | 2023.02.27 |
워드프레스 분류법 제목 출력 (0) | 2023.02.27 |