Support
Orange Support > 문의하기
Q & A
Re: Session 과 Open Cursors 와의 관계는???
Date2003.04.10 /
Hit : 13643
Session 과 Open Cursors 와의 관계는???
먼저, 오렌지를 애용해 주셔서 감사드립니다. 하나의 세션은 여러개의 커서를 열 수 있습니다. 하나의 세션이 열 수 있는 최대 갯수의 커서는 init.ora 의 OPEN_CURSORS 에 의해 제한됩니다. 일반적인 프로그램에서는 기껏해야 수십개 정도인 것이 보통이지만, 말씀하신 1,000개 정도되는 경우는, PL/SQL을 많이 사용하는 경우(예를 들면 ERP 시스템)에 보실 수 있습니다. OCI 레벨에서는 SQL을 실행시키고 나서 Statement를 닫으면 커서가 닫힙니다. 하지만, PRO*C 같은 Tool 에서는 상황이 달라집니다. PRO*C 는 커서 캐시를 사용하는데, 커서 캐시는 SQL 이 종료되더라도 커서를 닫지 않고 계속 열어둘 수 있는 방법을 제공합니다. 커서를 여는 작업이 상당한 Cost가 소요되기 때문에 닫지 않고 놔두어서 다음에 동일한 SQL이 재사용될 때 비용을 줄이자는 목적입니다. 커서를 여는 비용이라 함은, SQL의 파싱과, Network Roundtrip 이 대부분이 될 것입니다. 이와 관련되는 PRO*C Parameter는 HOLD_CURSOR, RELEASE_CURSOR 입니다.(PRO*C 매뉴얼을 참조하십시요) 오라클의 Catalog 에 들어있는 대부분의 수치는 누적값입니다. Delta 는 계산시에 현재의 값에서 바로 이전의 값을 뺀 값을 사용하는 방법입니다. 즉, 누적값이 아닌, 증분(수학에서 Delta라고 표현하지요.)만을 사용하는 것입니다. 예를 들어서, Physical I/O, Logical IO를 들면, 값이 # Physical I/O Logical I/O _ ------------ ----------- 1 1,000 1,000,000 2 1,001 1,001,00 3 1,002 1,002,000 4 2,000 1,004,000 와 같이 변했다고 가정하면, 누적값을 사용하는 경우의 블럭 히트율은 # 히트율(%) - -------- 1 99.9 2 99.9 3 99.9 4 99.8 입니다. #4 에서 Physical I/O 가 I/O의 전부임에도 불구하고 이를 반영해 주지 못합니다. Delta를 사용하면, # Physical I/O Logical I/O 히트율(%) --- ------------ ----------- -------- 2-1 1 1,000 99.8 3-2 1 1,000 99.8 4-3 1998 2,000 0.1 마지막 4-3 에서 Physical I/O가 거의 전부였던 것을 확실하게 보여줍니다. Delta를 사용하는 것이 실제의 상황을 더 잘 반영해 줍니다. 좋은 하루 되십시요.
---------- Original Message ----------
이름 : 박동판 제목 : Session 과 Open Cursors 와의 관계는??? 오렌지를 사용하면서 궁금한점이 있습니다. Session Monitor tool 을 이용시 특정 session을 클릭하면 그 해당 session 의 sql 문을 보여주고 option 을 이용해 opened cursors Current수까지 확인가능한데요. 이단계에서 세부적인 cursor 내용을 보는과정에서 의문점을 이야기하고자 합니다. 더블클릭으로 session inforamation 으로 들어가면 커서들의 카테고리 선택에서 Last Cursor / All Opened Cursors 를 확인할수 있는데요. Session 과 Cursor 의 수 관계에 대해서 좀 설명해주실수 없을까요? 어떤것은 한세션에 cursor 가 하나~, 20~30여개도 있고,어떤것은 1000여개....? appl.단의 p/g 과의 관계성도 있겠지만 메카니즘을 좀더 확실히 이해코자 여쭈오니 답변좀 부탁합니다. 추가 질문하나>> 델타모드라는것이 있는데 이것은 무엇인지요? --- 지난해 마포에서 오렌지 최초 발표회부터 2.2 버젼까지 나름대로 잘 활용하고 있습니다.. 오렌지의 성장에 박수를 보냅니다...
먼저, 오렌지를 애용해 주셔서 감사드립니다. 하나의 세션은 여러개의 커서를 열 수 있습니다. 하나의 세션이 열 수 있는 최대 갯수의 커서는 init.ora 의 OPEN_CURSORS 에 의해 제한됩니다. 일반적인 프로그램에서는 기껏해야 수십개 정도인 것이 보통이지만, 말씀하신 1,000개 정도되는 경우는, PL/SQL을 많이 사용하는 경우(예를 들면 ERP 시스템)에 보실 수 있습니다. OCI 레벨에서는 SQL을 실행시키고 나서 Statement를 닫으면 커서가 닫힙니다. 하지만, PRO*C 같은 Tool 에서는 상황이 달라집니다. PRO*C 는 커서 캐시를 사용하는데, 커서 캐시는 SQL 이 종료되더라도 커서를 닫지 않고 계속 열어둘 수 있는 방법을 제공합니다. 커서를 여는 작업이 상당한 Cost가 소요되기 때문에 닫지 않고 놔두어서 다음에 동일한 SQL이 재사용될 때 비용을 줄이자는 목적입니다. 커서를 여는 비용이라 함은, SQL의 파싱과, Network Roundtrip 이 대부분이 될 것입니다. 이와 관련되는 PRO*C Parameter는 HOLD_CURSOR, RELEASE_CURSOR 입니다.(PRO*C 매뉴얼을 참조하십시요) 오라클의 Catalog 에 들어있는 대부분의 수치는 누적값입니다. Delta 는 계산시에 현재의 값에서 바로 이전의 값을 뺀 값을 사용하는 방법입니다. 즉, 누적값이 아닌, 증분(수학에서 Delta라고 표현하지요.)만을 사용하는 것입니다. 예를 들어서, Physical I/O, Logical IO를 들면, 값이 # Physical I/O Logical I/O _ ------------ ----------- 1 1,000 1,000,000 2 1,001 1,001,00 3 1,002 1,002,000 4 2,000 1,004,000 와 같이 변했다고 가정하면, 누적값을 사용하는 경우의 블럭 히트율은 # 히트율(%) - -------- 1 99.9 2 99.9 3 99.9 4 99.8 입니다. #4 에서 Physical I/O 가 I/O의 전부임에도 불구하고 이를 반영해 주지 못합니다. Delta를 사용하면, # Physical I/O Logical I/O 히트율(%) --- ------------ ----------- -------- 2-1 1 1,000 99.8 3-2 1 1,000 99.8 4-3 1998 2,000 0.1 마지막 4-3 에서 Physical I/O가 거의 전부였던 것을 확실하게 보여줍니다. Delta를 사용하는 것이 실제의 상황을 더 잘 반영해 줍니다. 좋은 하루 되십시요.
---------- Original Message ----------
이름 : 박동판 제목 : Session 과 Open Cursors 와의 관계는??? 오렌지를 사용하면서 궁금한점이 있습니다. Session Monitor tool 을 이용시 특정 session을 클릭하면 그 해당 session 의 sql 문을 보여주고 option 을 이용해 opened cursors Current수까지 확인가능한데요. 이단계에서 세부적인 cursor 내용을 보는과정에서 의문점을 이야기하고자 합니다. 더블클릭으로 session inforamation 으로 들어가면 커서들의 카테고리 선택에서 Last Cursor / All Opened Cursors 를 확인할수 있는데요. Session 과 Cursor 의 수 관계에 대해서 좀 설명해주실수 없을까요? 어떤것은 한세션에 cursor 가 하나~, 20~30여개도 있고,어떤것은 1000여개....? appl.단의 p/g 과의 관계성도 있겠지만 메카니즘을 좀더 확실히 이해코자 여쭈오니 답변좀 부탁합니다. 추가 질문하나>> 델타모드라는것이 있는데 이것은 무엇인지요? --- 지난해 마포에서 오렌지 최초 발표회부터 2.2 버젼까지 나름대로 잘 활용하고 있습니다.. 오렌지의 성장에 박수를 보냅니다...
Session 과 Open Cursors 와의 관계는???
박동판
2003.04.10
Re: Session 과 Open Cursors 와의 관계는???
오렌지팀
2003.04.10