데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
1. 커서를 쓰고 싶지 않지만..
꼭 써야 할 때에 cursor 쓰는 것이 나을까요? while로 커서처럼 쓰는 것이 나을까요? 갑자기 궁금해져서 올립니다...
과연 똑같을까? 하는 생각때매..
2.
select
from (select
from (select
from )
join
(select
from ) )
이런 형식으로 쓰는게 나을까요?
그냥 맘 편하게 테이블변수 쓰는 것이 나을까요?
그냥 한번 될것같아서 위에처럼 해봣는데.. 보기가 좀 불편해서...
읽어주셔서 감사합니다.
Comment 3
-
건우아빠
2012.12.18 15:30
-
키라
2012.12.18 15:35
답변 감사합니다..
좀더 공부해야 겠네요 ㅋㅋ
-
blahblah
2012.12.20 19:37
커서를 써야만 하는 경우가 가끔씩 있긴 합니다.
예를 들어서 테이블 각 행의 데이터에 대해 어떠한 작업을 돌려야 한다거나.. (관리작업에 이런게 가끔 있죠)
그리고 인라인 쿼리에서 집계를 했다거나 추려낸 데이터를 여러번 사용할때는 중간에 임시테이블이나 테이블 변수로 빼내고 그걸로 그 아래서 작업하면 더 빠르게 결과가 나오는 경우가 있습니다. (아무래도 실체화된 테이블이다보니)
1. 커서를 쓰는게 나쁘지는 않습니다. 나쁜걸 데이타베이스에서 만들었을리는 없죠. 용도에 맞게 쓰시면 될듯 합니다.
커서를 사용하는 범위가 상당히 넓구요. 커서를 안써도 되는걸 커서를 이용하실 필요는 없구요.
2. 인라인뷰로 하시던 테이블 변수로 하시던 ,CTE로 하시던 취향일듯..
전 테이블변수, CTE를 주로 이용 나중에 수정 하기가 편해서요....
복작한 쿼리는 인라뷰가 중첩으로 몇단계 가는 경우는 짜고 나서 수정이 힘들어서요..
디비 버젼이 어떻게 되시는지요 .
2005부터는 CROSS(OUTER) APPLY
2008부터는 MERGE 기능이 있어 커서의 일부 기능을 대체해서 가능 합니다.
커서는 이런 복합적이 처리를 같이 해야 할때는 어쩔수 없이 쓰는게 편하죠...