DBMS_OUTPUT.PUT_LINE 에 대해... 0 1 2,510

by 김홍관 [2006.11.23 09:16:12]


pl/sql에서 set serveroutput on size 20000 으로 출력해 보려고 합니다.

 

맨 처음 pl/sql에서 set serveroutput on size 20000  을 한번 실행하면 각 프로시져 실행시마다 메모리를 reset 하고 실행이 되는지...  아니면 각 프로시져 실행시 마다 reset 되지 않고 메모리에 쌓이게 되는지요?

 

그리고 클라이언트에서 프로시져를 호출하여 실행할 경우 프로시져 소스 안에 DBMS_OUTPUT.PUT_LINE 로 출력하는 부분이 실제로 메모리에 쌓이게 되는지요?

 

실제로 쌓이게 된다면 언젠가는 메모리 버퍼가 부족하여 에러를 내는 경우도 발생할수 있을것 같은데요?

 

고수님들의 도움을 기다립니다.

by ocp한달 [2006.11.24 00:00:00]
SGA와 관련된 사항입니다.
SGA(System Global Area)는 오라클 시스템에서 사용하는 메모리 영역입니다. 이 크기는 사용자가 직접 지정해 줄 수 있습니다.
SGA는 여러부분으로 나뉘어있는데, 이중 sql, pl/sql이 저장되는 영역이 바로 shared pool의 library cache입니다.실행되었던 구문을 이곳에 저장해놓고 동일한 쿼리가 호출될 때 재사용하는 것이죠. 쿼리를 다시 파싱하는 과정을 생략할 수 있어 성능향상에 도움을 줍니다. 쿼리를 저장하는 방식은 LRU 알고리즘을 사용하는데 자주사용하는 쿼리는 놔두고, 오랫동안 사용하지 않은 쿼리는 삭제됩니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입