본문 바로가기
DB 관련/DB 개념정리

POOL + Cursor

by 알 수 없는 사용자 2022. 7. 30.

참조 :

https://wintness.tistory.com/93

 

[펌] Cursor 란??

 CURSOR 란?  오라클에서 CURSOR란 시스템 글로벌 영역의 공유 풀 내에 저장공간을 사용하여 사용자가 SQL 문을 실행시키면 결과값을 저장공간에 가지고 있다가 원하는 시기에 순차적으로 fetch해 처

wintness.tistory.com

 


DB POOL 이란

HTTP 요청 == DB접속 try 하는거

DB connection을 하고 정보를 가져오고 connection을 닫는 다면, 효율이 좋지 않다.

따라서 Connection Pool 이라는 컨테이너를 구동시키고 connection 이라는 객체를 생성해두고, Client가 DBMS 작업(읽고 쓰고)를 할 때 connection 이라는 객체를 할당시켜주고 쓰게 하는 방식이다.

이런식으로 하면 DB와 connection 하고 close계속해서 해주지 않아도 된다.

 

 


CURSOR  이란

설명_1

 select문을 통해 결과값들이 나올 때 이 결과들은 메모리 공간에 저장하게 되는데 이때, 이 메모리 공간을 "CURSOR"라고 한다.      

설명_2

오라클에서 CURSOR란 시스템 글로벌 영역의 공유 풀 내에 저장공간을 사용하여, 사용자가 SQL 문을 실행(SELECT같은)시키면 결과값을 저장공간 저장해 두었다가 원하는 시기에 순차적으로 fetch해 처리하여 해당 결과 셋을 프로그래밍적으로 접근할수 있게 도와주는 기능

     
- 커서란? : 쿼리문에 의해서 반환되는 결과값들을 저장하는 메모리 공간이다.      
- Fetch란 : 커서에서 원하는 결과값을 추출하는 것.

 

CURSOR  종류

1. 묵시적 커서 ( Implicit Cursor )

  - DBMS에서 자동으로 선언해주는 SQL 커서 ( 확인 불가능 )

 

2. 명시적 커서 ( Explicit Cursor )

  - 사용자가 선언해서 생성한 후에 사용하는 SQL 커서, 주로 여러개의 행을 처리할 때 씀

ex)

개념

DECLARE CURSOR  : 커서 선언 ( 여기 조건에 부합하는 data들을 cursor_name 이라는 곳에 저장 ) 

OPEN                         : 커서 열기 ( 커서 열기 ->  Connect Pool 에 접근 해서 Cursor메모리공간(cursor_name) connect )

FETCH                       : FETCH ~ INTO , 커서가 가리키는 곳(cursor_name )의 결과 값을 꺼내옴 ( )

CLOSE                       : 커서 닫기 ( )

 

댓글