CONTEXT SIZE & CURSORS

   1.
Context size
관련한 error message

     
.ora-1046 :can’t acquire space to extend context area.

     
.ora-1050 :can’t acquire space to open context area.

     
.ora-1051 :maximum context area extents exceeded.

 

   2.
Context size
무엇인가?

      (1)
Cursor
initial size이다 . , Cursor
allocate
되는 user memory이다.

      (2) 이는 init.ora CONTEXT_SIZE 의해 결정된다.

      (3)
Cursor
할당되는 additional space
CONTEXT_INCR
의하며 50 extents 갖는다.

      (4)
Recommended context size increment
4096 bytes(4K)이다.

      (5)
SQL statement
수행
시마다 cursor open 되며, 같은 cursor reuse 되도록 design 되어 SQL*PLUS session 2-3
이상 open 되어지지
않는다.

          그러나 SQL*FORMS 여러 다른 task 수행하므로
많은 cursor open한다.  (100 or more)

     
(6)Cursor
hold 하는 item

         *
the SQL statement

         *
the parsed SQL statement

         *
one row of the result

 

   3.
ORA-1051
무엇이
문제인가?

      (1)
cursor
size 줄인다.

      (2)
CONTEXT_SIZE, CONTEXT_INCR
늘린다.

 

   4.  OPEN_CURSORS 수를
줄이는 전략

      (1)
Commit
자주한다.

      (2)
Synonym
이나 view 사용하지 않음으로써 implicit cursor 수를 줄인다.

      (3) SQL*FORMS
에서 select 문대신 #COPY
바꿔 사용한다.

      (4) SQL*FORMS
에서 large forms 여러 개의
작은 forms
나눈다.

      (5) ASAP,
EXEC  SQL CLOSE C1;
수행한다.

      (6) HOLD_CURSOR=NO  & RELEASE_CURSOR=YES 사용한다.

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다