차례:
- Oracle 12c의 라이브러리 캐시
- Oracle 12c의 사전 캐시
- Oracle 12c의 서버 결과 캐시
- Oracle 12c의 예약 된 풀
- 오라클 12c에서 가장 최근에 사용 된 알고리즘
비디오: 완전한 중보 (하나님과 동행하기 4편) - 박성업 2024
Oracle 12c의 특정 오브젝트 및 디바이스는 자주 사용됩니다. 따라서 작업을 수행 할 때마다 준비를하는 것이 좋습니다. 또한 공유 풀의 데이터는 디스크에 기록되지 않습니다.
공유 풀 자체는 네 가지 주요 영역으로 구성됩니다.
-
라이브러리 캐시
-
사전 캐시
-
서버 결과 캐시
-
예약 풀
Oracle 12c의 라이브러리 캐시
라이브러리 캐시는 라이브러리와 같습니다. 라이브러리입니다. 보다 구체적으로, 이것은 즉시 사용할 수있는 SQL 문에 대한 라이브러리입니다.
SQL 문을 실행할 때마다 백그라운드에서 많은 일이 발생합니다. 이 백그라운드 작업은 구문 분석 이라고합니다. 구문 분석은 처리 능력면에서 상당히 비쌀 수 있습니다.
구문 분석 중에 다음과 같은 작업이 수행됩니다.
-
구문 구문을 검사하여 모든 내용을 올바르게 입력했는지 확인합니다.
-
참조하는 객체가 검사됩니다. 예를 들어, EMPLOYEE라는 테이블에 액세스하려는 경우 Oracle은 데이터베이스에 EMPLOYEE 테이블이 있는지 확인합니다.
-
오라클은 귀하가하려는 일을 할 권한이 있는지 확인합니다.
-
코드는 데이터베이스 준비 포맷으로 변환됩니다. 형식은 바이트 코드 또는 p 코드라고합니다.
-
오라클은 최적의 경로 또는 계획을 결정합니다. 이것은 가장 비싼 부분입니다.
명령문을 실행할 때마다 정보가 라이브러리 캐시에 저장됩니다. 그렇게하면 다음에 명령문을 실행할 때 권한 (예: 사용 권한 확인)이 많이 발생하지 않습니다.
Oracle 12c의 사전 캐시
사전 캐시는 SQL을 실행할 때 구문 분석에 자주 사용됩니다. 당신과 당신의 데이터베이스 객체에 관한 정보의 모음이라고 생각할 수 있습니다. 백그라운드 유형 정보를 확인할 수 있습니다.
사전 캐시는 최근 사용 된 (LRU) 알고리즘의 규칙에 의해 관리됩니다. 올바른 크기가 아닌 경우 정보가 제거 될 수 있습니다. 사전 캐시 공간이 충분하지 않으면 디스크 사용에 영향을 줄 수 있습니다.
객체 및 권한 기반 정보의 정의가 데이터베이스 파일에 저장되므로 오라클은 해당 정보를 사전 캐시로 다시로드하기 위해 디스크를 읽어야합니다. 메모리 캐시에서 가져 오는 것보다 시간이 오래 걸립니다.수천 명의 사용자가 SQL을 지속적으로 실행하는 시스템을 상상해보십시오. 부적절하게 크기가있는 사전 캐시는 실제로 성능을 저해 할 수 있습니다.
라이브러리 캐시와 마찬가지로 사전 캐시의 크기를 직접 제어 할 수 없습니다. 전체 공유 풀의 크기가 변경되면 사전 캐시도 변경됩니다.
Oracle 12c의 서버 결과 캐시
서버 결과 캐시에는 두 부분이 있습니다.
-
SQL 결과 캐시: 이 캐시를 통해 오라클은 최근에 실행 된 SQL 문에 의해 요청 된 요청 된 데이터가 기억에 저장 될 수있다. 이 상황은 오라클이 더 나은 용어가 부족한 경우 실행 실행 부분을 건너 뛰고 결과 집합이있는 경우 직접 실행할 수있게합니다.
SQL 결과 캐시는 전자 상거래 사이트의 항목 설명과 같이 상대적으로 정적 인 데이터에서 가장 잘 작동합니다.
결과 캐시가 잘못된 데이터를 반환하는 것에 대해 걱정해야합니까? 전혀. Oracle은 기본 구성 요소 중 하나라도 수정되면 결과 캐시에 저장된 데이터를 자동으로 무효화합니다.
-
PL / SQL 함수 결과 캐시: PL / SQL 함수 결과 캐시는 계산 결과를 저장합니다. 예를 들어 유로 환율에 따라 달러 가치를 계산하는 함수가 있다고 가정 해보십시오. 계속해서 변경되기 때문에 실제 값을 저장하지 않을 수도 있습니다.
대신에 달러 값을 결정하기 위해 일별 또는 시간별 요금을 부르는 함수가 있습니다. 금융 애플리케이션에서이 호출은 1 시간에 수천 회 발생할 수 있습니다. 따라서 함수를 실행하는 대신 PL / SQL 결과 캐시로 직접 이동하여 비율 업데이트간에 데이터를 가져옵니다. 비율이 변경되면 Oracle은 함수를 다시 실행하고 결과 캐시를 업데이트합니다.
Oracle 12c의 예약 된 풀
오라클은 공유 풀의 연속적인 메모리가 큰 청크 (5KB 이상)를 할당해야 할 때 예약 된 풀에 메모리를 할당합니다. 대용량 메모리 할당을 처리하도록 예약 된 풀을 전용하면 성능이 향상되고 메모리 조각이 줄어 듭니다.
오라클 12c에서 가장 최근에 사용 된 알고리즘
라이브러리 캐시의 공간이 부족하면 객체가 버려집니다. 가장 많이 사용되는 문은 라이브러리 캐시에 가장 오래 머무릅니다. 사용 빈도가 높을수록 라이브러리 캐시의 공간이 부족할 경우 퇴거 당할 확률이 줄어 듭니다.
라이브러리 캐시 축출 프로세스는 가장 최근에 사용 된 (LRU) 알고리즘을 기반으로합니다. 책상이 어지럽게 흩어지면 먼저 무엇을 버리시겠습니까? 최소한 사용하는 물건.
라이브러리 캐시의 크기는 직접 변경할 수 없습니다. 공유 풀의 전체 크기가이를 결정합니다. 너무 많은 문장이 축출되었다고 생각된다면, 직접 튜닝을한다면 전체 공유 풀 크기를 늘릴 수 있습니다. 오라클이 튜닝을 할 경우 다른 곳에서 사용 가능한 메모리를 확보합니다.