Learning
토픽 178 / 201·SQL 및 데이터베이스 객체

커서 (Cursor)

커서 (Cursor)

SQL 질의 결과 집합(Result Set)의 행을 하나씩 순차적으로 접근하기 위한 데이터베이스 포인터 메커니즘으로, 집합 지향 SQL을 행 단위 절차적 처리로 변환

목적: 행 단위 처리, 복잡한 절차적 로직, 질의 결과 순차 탐색

커서 유형: 명시적 커서(프로그래머 선언), 묵시적 커서(SQL 자동 생성)

커서 생명주기: ① DECLARE(선언) → ② OPEN(열기/질의실행) → ③ FETCH(행 읽기) → ④ CLOSE(닫기) → ⑤ DEALLOCATE(해제)

커서 속성: %FOUND(행 존재), %NOTFOUND(행 미존재), %ROWCOUNT(처리 행 수), %ISOPEN(열림 여부)

장점: 행 단위 제어, 복잡한 로직 구현, 순차 처리

단점: 느린 성능(집합 연산 대비), 메모리 사용, 잠금 유지, 대안 가능(JOIN/서브쿼리)

대안: 집합 기반 SQL(JOIN/서브쿼리), 윈도우 함수(ROW_NUMBER/RANK), CTE(Common Table Expression)

비교: 커서(행단위/느림/절차적) vs 집합연산(집합단위/빠름/선언적)

연관: 저장 프로시저, SQL, 트랜잭션, 결과 집합