캐싱이 사용으로 설정된 경우 각 질의를 평가하여 캐시 적중에 적격한지 여부를 결정합니다.
캐시 적중이란, Oracle Analytics Cloud가 캐시를 사용하여 질의에 응답할 수 있었고 데이터베이스로 전혀 이동하지 않았음을 의미합니다. Oracle Analytics Cloud는 질의 캐시를 사용하여 동일하거나 더 높은 집계 레벨에서 질의에 응답할 수 있습니다.
많은 요소가 캐시 적중 여부를 결정합니다. 아래 표는 해당 요소를 설명합니다.
| 요소 또는 규칙 | 설명 |
|---|---|
|
|
새 질의의 이 규칙은 캐시 적중의 최소 요구사항을 설명하지만 이 규칙을 충족해도 캐시 적중을 보장하지 않습니다. 이 테이블에 나열된 다른 규칙도 적용됩니다. |
|
|
Oracle Analytics Cloud는 캐시된 결과에 대한 표현식을 계산하여 새 질의에 응답할 수 있지만 모든 열이 캐시된 결과에 있어야 합니다. 예를 들어, 다음 질의의 경우: SELECT product, month, averageprice FROM sales WHERE year = 2000 다음 질의에 캐시 적중합니다. SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000
|
|
|
캐시 적중으로 적격한 질의의 경우 캐시된 질의의 논리적 부분 집합인
또한 SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')
REGION이 프로젝션 목록에 없기 때문에 이전 목록의 시드 질의에 대해 캐시 적중되지 않습니다. |
|
차원 전용 질의는 정확히 일치해야 합니다. |
차원 전용 질의의 경우(사실 값 또는 측정 단위가 질의에 포함되지 않음) 캐시된 질의의 프로젝션 열과 정확히 일치해야만 캐시 적중됩니다. 이 동작은 차원 테이블의 논리적 소스가 여러 개 있을 때 가양성을 방지합니다. |
|
특수 함수가 있는 질의는 정확히 일치해야 합니다. |
시계열 함수( |
|
논리적 테이블 집합이 일치해야 합니다. |
캐시 적중으로 적격하려면 모든 수신 질의에 캐시 항목과 동일한 논리적 테이블 집합이 있어야 합니다. 이 규칙은 잘못된 캐시 적중을 방지합니다. 예를 들어 |
|
보안 세션 변수를 포함한 세션 변수 값이 일치해야 합니다. |
논리적 SQL 또는 물리적 SQL 문이 세션 변수를 참조하는 경우 세션 변수 값이 일치해야 합니다. 그렇지 않으면 캐시 적중되지 않습니다. 또한 논리적 SQL 문 자체가 세션 변수를 참조하지 않더라도 보안에 민감한 세션 변수 값이 의미 모델에 정의된 보안 세션 변수 값과 일치해야 합니다. 행 레벨 데이터베이스 보안을 사용할 때 올바른 캐시 결과 보장을 참조하십시오. |
|
동등한 조인 조건 |
새 질의 요청에서 결과상 조인된 논리적 테이블이 캐시된 결과와 동일해야(또는 부분 집합이어야) 캐시 적중에 적격합니다. |
|
|
캐시된 질의가 |
|
질의에 호환되는 집계 레벨을 포함해야 합니다. |
집계된 레벨의 정보를 요청하는 질의는 더 낮은 집계 레벨에서 캐시된 결과를 사용할 수 있습니다. 예를 들어, 다음 질의는 supplier 및 region 및 city 레벨에서 판매 수량을 요청합니다. SELECT supplier, region, city, qtysold FROM suppliercity 다음 질의는 city 레벨에서 판매 수량을 요청합니다. SELECT city, qtysold FROM suppliercity 두번째 질의는 첫번째 질의에 대해 캐시 적중됩니다. |
|
제한된 추가 집계 |
예를 들어, |
|
|
선택 목록에 포함되지 않은 열로 정렬하는 질의는 캐시 실패합니다. |
|
캐시 적중 동작 진단 |
캐시 적중 동작을 잘 평가하려면 다음 예제와 같이 ENABLE_CACHE_DIAGNOSTICS 세션 변수를 4로 설정하십시오. ENABLE_CACHE_DIAGNOSTICS=4 |