개요
질의문 수행 시 발생하는 ERR-11184 ( 70020) Insufficient free space in work area 에러의 발생 원인과 조치 방법에 관해 설명한다.
버전
Altibase 서버 6.3.1 이상
현상
질의문에 디스크 테이블이 사용되고 SORT 또는 HASH 연산 처리가 필요한 질의문을 수행할 때 발생할 수 있다.
원인
Work Area라는 메모리 공간이 부족하여 발생하는 에러이다.
Work Area는 디스크 테이블 데이터에 대해 SORT/HASH 연산 수행 시 보다 나은 성능을 위해 Altibase 서버 구동 시 OS로부터 예약해놓은 일정 크기의 메모리 공간을 의미한다.
질의문 수행 시 SORT 또는 HASH 연산이 필요할 경우 정해진 크기만큼 Work Area에서 할당받아 사용한다. SORT 연산이 필요한 경우 Work Area에서 SORT_AREA_SIZE 만큼 할당받아 사용하고 HASH 연산이 필요한 경우 Work Area에서 HASH_AREA_SIZE 만큼 할당받아 사용한다.
SORT/HASH 연산이 필요한 트랜잭션이 동시에 여러 개 수행될 수 있다. 이 때 SORT_AREA_SIZE 또는 HASH_AREA_SIZE를 Work Area로부터 할당받으려는데 Work Area에서 할당해 줄 여유 메모리가 없는 경우 이 에러가 발생한다.
조치
Work Area가 부족하여 발생한 것이므로 Work Area 크기를 현재값보다 크게 증가시켜야 한다.
Work Area는 Altibase 서버 프로퍼티 TOTAL_WA_SIZE 로 그 크기를 설정할 수 있다.
Work Area 설정값 확인 방법
아래 문장으로 현재 설정값을 확인한다.
Work Area 설정값 변경 방법
ALTER SYSTEM 구문으로 변경한다.
ALTER SYSTEM 으로 변경한 값이 Altibase 서버 재구동 후에도 반영되도록 Altibase 서버 설정 파일도 변경한다.
Work Area 설정값 변경 시 주의사항
- TOTAL_WA_SIZE를 현재 설정값보다 크게 변경하면 V$MEMSTAT의 크기가 증가하고 Altibase 서버 프로세스 메모리 사용량, VSZ도 증가한다.
Altibase 7 이상의 경우 V$MEMSTAT의 Temp_Memory 영역이 증가하고
Altibase 6.3.1, 6.5.1 의 경우 V$MEMSTAT의 Storage_Disk_Buffer 영역이 증가한다. - 디스크 SORT/HASH 연산이 필요한 질의문 수행 중(Work Area를 사용하는 트랜잭션 수행)에 ALTER SYSTEM SET TOTAL_WA_SIZE 문장을 수행할 경우 이 문장은 먼저 수행한 트랜잭션이 종료할 때까지 대기한다.
- ALTER SYSTEM SET TOTAL_WA_SIZE = ... 구문 수행 중에 디스크 SORT/HASH 연산이 필요한 질의문이 수행될 경우 해당 트랜잭션은 ALTER SYSTEM 문장이 끝날 때까지 대기한다.