Data Base/Linux

231212 Linux_ASMM, PGA, SGA, AMM

잇꼬 2023. 12. 12. 17:43
728x90
반응형
SMALL

■ ASMM(Automatic Shared Memory Management) (10g)

1. SGA_TARGET 값을 설정하면 SGA 영역을 자동 관리한다.

2. SGA_TARGET 값은 SGA_MAX_SIZE 값보다는 작거나 같게 설정하면 된다.

3. SGA_TARGET 값은 db 운영중에 조정을 할 수 있다.

4. MMANDL Memory Advisor 사용하여 작동한다

5. spfile을 사용 권한(alter system set) 단, sga_target size 가 설정되어 있을 때만 적용가능

SQL> show parameter sga_target

 

SQL> show parameter sga_max_size

 

# SQL

SELECT * FROM v$parameter WHERE name in ('sga_max_size', 'sga_target');

 # SQL

SELECT *
FROM v$sga_dynamic_components;

6. SGA_TARGET 설정되어 있더라도 수동으로 관리해야 하는 SGA 영역

        - DB_KEPP_CACHE_SIZE

        - DB_RECYCLE_CACHE_SIZE

        - DB_nk_CACHE_SIZE (n= 2,4,8,16,32)

        - LOG_BUFFER : 수동관리

7. SGA_TARGET 설정되어 있더라도 수동으로 동적 SGA PARAMETER 의 크기 조정 (=: shared pool 조정 가능.)

        - 새로운 값이 현재 크기보다 큰 경우 즉시 구성 요소 크기가 조정된다.

        - 새로운 값이 현재 크기보다 작은 경우 최소 크기가 변경된다.

[oracle@oracle ~]$ ps -ef | grep ora_mman

 

■ PGA(Program Global Area)

1. 서버프로세스 또는 백그라운드 프로세스의 데이터 및 제어 정보를 포함하는 메모리 영역이다.

2. PGA : 서버프로세스 또는 백그라운드 프로세스를 시작할 때 오라클 데이터 베이스에서 생성되는 비공유메모리

3. PAG 영역에 있는 SQL 작업영역 관리는 8i 수동관리

        1) sort_area_size : 정렬(orderby절)

        2) hash_area_size : hashgroup, hashjoin_(groupby 절)

        3) bitmap_merge_area_size : index 생성시 필요한 메모리

        4) create_bitmap_area_size : index 생성시 필요한 메모리

SQL> show parameter area

 

# SQL

SELECT *
FROM v$parameter
WHERE name in ('sort_area_size', 
		'hash_area_size', 
		'bitmap_merge_area_size', 
		'create_bitmap_area_size');

 

■ 자동 PGA 메모리관리(9i)

1. pga_aggregate_target 파라미터 기반으로 SQL 작업영역에 할당되는 PGA 메모리 양이 동적으로 조정된다.

   (아래와 같은 조건일 경우)

        1) sort_area_size : 정렬(orderby절)

        2) hash_area_size : hashgroup, hashjoin_(groupby 절)

        3) bitmap_merge_area_size : index 생성시 필요한 메모리

        4) create_bitmap_area_size : index 생성시 필요한 메모리

2. workarea_size_policy = AUTO 로 되어 있으면 자동 PGA 메모리관리

 

SQL> show parameter workarea_size_policy

SQL> show parameter pga_aggregate_target

 

3. PGA 수동관리 (8i 버전)

ALTER SYSTEM SET workarea_size_policy = MANUAL;

ALTER SYSTEM SET pga_aggregate_target = 0;

 

4. PGA 세션 레벨에서 수동관리 (문장 튜닝)

ALTER SESSION SET workarea_size_policy = MANUAL;

ALTER SESSION SET sort_area_size = 1M; --(sort 크기 조정)

 

 

■ AMM(Automatic Memory Managerment) (11g)

SQL> show parameter target

memory_target(AMM) 가 관리하는 pga_aggregate_target, sga_target

1. AMM 기능은 PGA 및 SGA 의 크키 조정을 작업로드에 따라 자동으로 수행한다.

2. AMM 기능을 사용하려면 MEMORY_TARGET 값을 설정해야 한다.

        - 설정되면 자동으로 pga_aggregate_target, sga_target 설정된다.

3. 오라클이 사용할 수 있는 최대 메모리 설정은 MEMORY_MAX_TARGET 값으로 설정하면 된다.

# SQL (자동관리)

SELECT *
FROM v$parameter
WHERE name in ('sort_area_size', -- pga
               'hash_area_size',
               'bitmap_merge_area_size',
               'create_bitmap_area_size',
               'workarea_size_policy',
               'pga_aggreage_target',
               'shared_pool_size',
               'db_cache_size', -- sga
               'large_pool_size',
               'java_pool_size',
               'streams_pool_size',
               'sga_max_size',
               'sga_targer',
               'memory_target', -- pga+sga 관리
               'memory_max_target'
               );

# SQL (수동관리)

SELECT *
FROM v$parameter
WHERE name IN ( 'db_keep_cache_size',
                'db_recycle_cache_size',
                'db_2k_cache_size',
                'db_4k_cache_size',
                'db_8k_cache_size',
                'db_16k_cache_size',
                'db_32k_cache_size',
                'log_buffer' );

SQL> show parameter memory

 

4. memory_target 값이 설정되어 있더라도 수동으로 sga_target, pga_aggregate_target 설정할 수 있다.

5. memory_target 값을 설정하면 기본적으로 SGA(60%), PGA(40%)

 

# SQL, 현재 메모리 구성 요소

SELECT * FROM v$memory_dynamic_components;

 

#SQL, 현재 메모리 크기 조정 작업 진행 상황

SELECT *
FROM v$memory_current_resize_ops;

메모리 크기 조정 작업을 하지 않음

 

# SQL, 현재까지 발생한 resize 작업에 대한 정보

SELECT *
FROM v$memory_resize_ops;

 

728x90
반응형
LIST