shared pool에 대해 여쭤보고 싶습니다.. 0 1 718

by 땅떨이 Oracle Shared pool Parsing [2018.04.01 01:50:37]


현재 하드파싱과 소프트파싱이 진행될 때 오라클 SGA안의 Shared pool에서

어떤 방식으로 작동하는지에 대해 알아보고 있습니다.

 

궁금한 점은 하드파싱시 Library cache lock/pin 모드에 대해서 조금 헷갈리는게 있어 질문드립니다.

하드파싱시 부모LCO를 생성하기 전 Library cache lock를 Exclusive모드로 획득 후에 부모LCO생성

다시 자식LCO를 생성할 때 Library Cache Lock를 Null모드 Library Cache Pin을 Exclusive모드로 획득후에

실행계획을 생성합니다

그 다음 실행계획이 세워지면 실제 실행전엔 Library cache lock는 Null모드로 유지하고 Pin 은 Shared모드로 

획득한 다음 실행한다고 알고 있습니다.

 

여기서 궁금한 점이 어떤 글에서는 SQL 커서에 대해서는 실행전 Library cache lock과 pin을 shared모드로 획득한다고 합니다.

제가 조사한 바로는 lock를 null모드로 유지하게 되면 DDL이나 LCO의 정의가 변경된다면 자동으로 무효화하기

위함이라고 알고있는데 SQL커서에 대해서 모드를 shared로 획득한다는건 어떤말인가요??

 

 

그리고 또한가지로는 Lock과 pin을 사용하기전 핸들과 LCO는 lock과 pin이 어떤모드로 대기하는지 궁금합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입