1 / 9

뇌를 자극하는 SQL Server 2005

뇌를 자극하는 SQL Server 2005. 12 장 . 커서. 커서의 개요. 개요 행의 집합을 다루는 데 제공해주는 편리한 기능 SQL Server 의 성능을 느리게 하는 요인이 될 수 있으므로 , 특별한 경우가 아니라면 되도록 사용하지 않을 것을 권장함 파일처리시의 파일 포인터와 비슷한 작동을 함. 커서의 처리 순서 (1). 커서의 선언 DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ] [ FORWARD_ONLY | SCROLL ]

ryu
Download Presentation

뇌를 자극하는 SQL Server 2005

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 뇌를 자극하는 SQL Server 2005 12장. 커서

  2. 커서의 개요 • 개요 • 행의 집합을 다루는 데 제공해주는 편리한 기능 • SQL Server의 성능을 느리게 하는 요인이 될 수 있으므로, 특별한 경우가 아니라면되도록 사용하지 않을 것을 권장함 • 파일처리시의 파일 포인터와 비슷한 작동을 함.

  3. 커서의 처리 순서 (1) • 커서의 선언 DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ] [ FORWARD_ONLY | SCROLL ] [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ] [ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ] [ TYPE_WARNING ] FOR select_statement [ FOR UPDATE [ OF column_name [ ,...n ] ] ]

  4. 커서의 처리 순서(2) • 커서 열기 OPEN { { [ GLOBAL ] cursor_name } | cursor_variable_name } • 데이터 가져오기 및 처리 FETCH [ [ NEXT | PRIOR | FIRST | LAST | ABSOLUTE { n | @nvar } | RELATIVE { n | @nvar } ] FROM ] { { [ GLOBAL ] cursor_name } | @cursor_variable_name } [ INTO @variable_name [ ,...n ] ] • 커서 닫기 CLOSE { { [ GLOBAL ] cursor_name } | cursor_variable_name } • 커서 할당 해제 DEALLOCATE { { [ GLOBAL ] cursor_name } | @cursor_variable_name }

  5. 실습 목표 • 커서를 선언하고 사용하는 기본적인 방법을 익힌다. • 사용된 SQL문 예 DECLARE userTbl_cursor CURSOR GLOBAL … OPEN userTbl_cursor; … FETCH NEXT FROM userTbl_cursor INTO @height WHILE @@FETCH_STATUS = 0 BEGIN … FETCH NEXT FROM userTbl_cursor INTO @height CLOSE userTbl_cursor; DEALLOCATE userTbl_cursor; <실습1> 커서의 기본 이용

  6. 커서와 일반적인 쿼리의 성능 비교 • 실습 목표 • 커서와 집합함수를 사용한 쿼리의 성능을 비교해서, 왜 커서가 성능이 좋지 않은지 확인해 본다. <실습2> 커서와 일반쿼리의 성능 비교

  7. 커서의 내부 동작방식 (1) • GLOBAL, LOCAL • 커서가 생존해 있는 범주를 결정해 줌 • LOCAL (지역 커서) • 커서가 살아있는 범위가 커서가 선언된 부분에 국한됨 • GLOBAL (전역 커서) • 모든 프로시저 등에서 커서의 이름을 참조할 수 있음 • 실습 목표 • GLOBAL 커서와 , LOCAL 커서의 디폴트 설정 방법 및 생존 영역을 확인해 본다. <실습3> GLOBAL, LOCAL 설정

  8. 커서의 내부 동작방식 (2) • STATIC / DYNAMIC / KEYSET • 커서의 선언시에 원본데이터를 TEMPDB로 가져오는 방식

  9. 실습 목표 • 앞 슬라이드의 그림과 같이 STATIC, DYNAMIC, KEYSET 에 따라서 커서가 작동하는 방식을 이해한다. • 실습 목표 • 커서의 선언시에 커서가 이동하는 방식을 학습한다. • 커서의 암시적 변환에 대해서 익힌다. • 커서의 암시적 변환시에 메시지가 나오도록 설정해 보자. <실습4> 커서의 형태(model) <실습5> 커서의 이동 및 암시적 커서 변환

More Related