프로그램 글로벌 영역(Program
Global Area)/사용자 글로벌 영역(User Global
Area)
PGA는 한 프로세스 혹은 스레드의 개별적인 메모리 공간으로 다른 프로세스 혹은 스레드는 접근 하지
못합니다. UGA는 사용자 세션과 관련된 메모리 공간 입니다.
이 공간은 MTS혹은 전용서버모드로 동작하느냐에 따라
SGA혹은 PGA에 존재 합니다.
PGA는 일반적인 C 런타임 함수인
malloc()를 통해서 할당되고 런타임 동안 증가.감소 합니다. PGA는 오라클의 SGA내에서만 존재하고 항상 각 프로세스 혹은
스레드에 의해서 지역적으로 할당 됩니다.
UGA는 사용자 세션의 상태를 나타내기에 사용자 세션은 항상
UGA에 접근 할 수 있어야 합니다. UGA의 위치는 오라클이 사용자 연결을 허용하는
방법에 달려 있습니다. 만약 MTS로 구성시 UGA는 누구나 접근 가능한 SGA안에 있어야 하며 전용 서버로
구성 되었다면 사용자 세션 상태에 대한 보편적인 접근에 대한 요구사항이 없어지므로 UGA는
실제 PGA와 유사하게 됩니다. 결국 UGA는 PGA에 포함되는 것입니다.그러므로 전용 서버 모드에서는 시스템 통계 정보를 보면
PGA에서 UGA의 내용을 볼 수 있습니다.
프로세스들이 공유하여 사용하는
SGA와는 달리 PGA는 개별 프로세스들이 독립적으로 사용하는 비공유 메모리 영역으로
스택과 세션 정보를 저장합니다. PGA는 각 개별 세션에 대한 바인드 변수 정보, Sort Aream 커서등의 작업을 처리 할 때 서버 프로세스를 돕습니다.
바인드 처리가 된 SQL문은 다시 파싱하지 않고 각 개별 세션에 저장된 실제 값을 바인드
변수에 대체하여 처리합니다.
사용자의 PGA/UGA의 크기에 가장 큰 영향을 미치는 것은
init.ora 파일의 세션 수준의 변수들(SORT_AREA_SIZE,
SORT_AREA_RETAIN_SIZE) 입니다. 이들 변수들은 데이터를 디스크에
기록하기 전에 정렬을 위해 사용하는 공간의 양과 그리고 정렬이 수행된 이후에 얼마나 많은 양의 메모리 세그먼트가 유지될 것인가를 관리
합니다. SORT_AREA_SIZE는 일반적으로
PGA외부에 할당 되고 SORT_AREA_RETAIN_SIZE는 UGA 내부에 있게 됩니다. 사용자는
V$(동적 성능 테이블)에 질의하여 PGA,
UGA의 메모리 상태를 알 수 있습니다.
[오프라인 개강예정강좌, 오프라인교육장에 오시면 보다 자세히 배울 수 있습니다.]
오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[11/25]Spring3.X, MyBatis, Hibernate실무과정
[12/02]안드로이드개발자과정
[12/02]iPhone 하이브리드 앱 개발 실무과정
[12/09][기업100%환급]Spring Framework,MyBatis,Hibernate실무프로젝트과정
[12/16][기업100%환급]PL/SQL,ORACLE HINT,TUNING
[12/23][기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
[01/06][기업100%환급]SQL기초에서 Schema Object까지
[평일야간]
[11/28]Spring3.X, MyBatis, Hibernate실무과정
[11/29]자바초보에서안드로이드까지
[12/02]JAVA&WEB프레임워자실무과정
[12/03]웹퍼블리싱 마스터
[12/03]iPhone하이브리드앱개발실무과정
[12/04]SQL초보에서실전전문가까지
[12/09]C#,ASP.NET마스터
[주말]
[11/30]SQL초보에서전문가까지
[11/30]C#,ASP.NET마스터
[12/07]Spring3.X,MyBatis,Hibernate실무과정
[12/14]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
[12/14]자바초보에서안드로이드까지
[12/14]웹퍼블리싱 마스터
댓글 없음:
댓글 쓰기