11g 새로운 기능 - 쿼리 캐시!
1. 서버 측 결과 세트 캐시
1. 서버 쿼리 캐시 구성
sys@ORCL> show parameter result_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
result_cache_max_result integer 5
result_cache_max_size big integer 2624K
result_cache_mode string MANUAL
result_cache_remote_expiration integer 0
result_cache_max_result: 캐시에서 최대 메모리를 사용할 수 있는 결과 집합의 백분율입니다.기본값은 서버 결과 캐시 크기의 5%입니다.result_cache_max_size: 이 매개 변수는 서버 결과 캐시에 메모리 분배를 설정합니다.
result_cache_mode: 기본값은 MANUAL입니다. 적당한 조회 힌트나 테이블 주석을 사용할 때만 데이터베이스에서 조회 결과를 캐시할 수 있다는 뜻입니다.매개변수를 FORCE로 설정하면/*+NO_ 를 특별히 지정하지 않는 한RESULT_CACHE */프롬프트는 질의 결과를 캐시하지 않습니다.
result_cache_remote_expiration: 기본적으로 원격 대상을 포함하는 결과는 캐시되지 않습니다.따라서 기본값은 0입니다.매개변수에 대한 발생 값을 설정하고 원격 객체 결과 세트를 포함하는 캐시를 설정할 수 있습니다.
2. 서버 결과 캐시 관리
서버 결과 캐시에서 쿼리 캐시를 제거하려면:
sys@ORCL> exec dbms_result_cache.Flush();
PL/SQL 。
서버 결과 캐시 상태 확인:
sys@ORCL> select dbms_result_cache.Status() from dual;
DBMS_RESULT_CACHE.STATUS()
--------------------------------------------------------------------------------
ENABLED
oracle에서 결과 캐시에 메모리를 할당하는 방법을 보려면 다음과 같이 하십시오.
sys@ORCL> exec dbms_result_cache.Memory_Report();
R e s u l t C a c h e M e m o r y R e p o r t
[Parameters]
Block Size = 1K bytes
Maximum Cache Size = 2624K bytes (2624 blocks)
Maximum Result Size = 131K bytes (131 blocks)
[Memory]
Total Memory = 9440 bytes [0.003% of the Shared Pool]
... Fixed Memory = 9440 bytes [0.003% of the Shared Pool]
... Dynamic Memory = 0 bytes [0.000% of the Shared Pool]
PL/SQL 。
하면, 만약, 만약...target 매개 변수는 자동 메모리 관리를 사용합니다.oracle은memory_target의 0.25%를 서버 결과 캐시에 할당합니다.하면, 만약, 만약...target 매개 변수는 자동 메모리 관리를 사용합니다. 그러면 분배된 값은 sga_target 매개 변수의 0.5%입니다.shared_ 를 설정하면pool_size 값으로 수동 메모리 관리를 하면shared_pool_size 매개 변수 값의 1%입니다.
질의 결과를 캐시하려면 다음과 같이 하십시오.
u1@ORCL> select /*+ RESULT_CACHE */ * from emp;
----------------------------------------------------------
Plan hash value: 3956160932
-------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 3 | 18 | 3 (0)| 00:00:01 |
| 1 | RESULT CACHE | 6gmh2xmd86mbj974knznuvmy75 | | | | |
| 2 | TABLE ACCESS FULL| EMP | 3 | 18 | 3 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------------
Result Cache Information (identified by operation id):
------------------------------------------------------
1 - column-count=2; dependencies=(U1.EMP); name="select /*+ RESULT_CACHE */ * from emp"
----------------------------------------------------------
0 recursive calls
0 db block gets
0 consistent gets
0 physical reads
0 redo size
537 bytes sent via SQL*Net to client
416 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
3 rows processed
서버 결과 캐시 통계 모니터링:
u1@ORCL> select * from v$result_cache_statistics;
ID NAME VALUE
---------- ------------------------------ ----------
1 Block Size (Bytes) 1024
2 Block Count Maximum 2624
3 Block Count Current 32
4 Result Size Maximum (Blocks) 131
5 Create Count Success 1 -- 。
6 Create Count Failure 0
7 Find Count 0
8 Invalidation Count 0 -- 。
9 Delete Count Invalid 0
10 Delete Count Valid 0
11 Hash Chain Length 1
11 。
3. 캐시 SQL 질의 결과
result_cache_mode 매개 변수가 MANUAL로 설정되면 데이터베이스는 조회 알림이나 테이블 주석의 조회 결과만 캐시합니다.FORCE는 모든 SQL 질의 결과를 데이터베이스에 캐시하도록 하는 것입니다.
쿼리 캐시를 사용하려면 쿼리 프롬프트:/*+ RESULT_CACHE */또는 테이블 주석:
u1@ORCL> select table_name,result_cache from user_tables where table_name='EMP';
TABLE_NAME RESULT_
------------------------------ -------
EMP DEFAULT
u1@ORCL> alter table emp result_cache(mode force);
。
u1@ORCL> select table_name,result_cache from user_tables where table_name='EMP';
TABLE_NAME RESULT_
------------------------------ -------
EMP FORCE
2. 클라이언트 결과 집합 캐시
u1@ORCL> show parameter client_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
client_result_cache_lag big integer 3000
client_result_cache_size big integer 0
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.