안녕하세요. 두 DB간에 쿼리 작업에 대해 전문가의 의견을
구합니다.
지금 한서버에 디비가 두개가 있구요. 두개를 조인해서 값을
뽑아오는 구문입니다. 완전 일반적인 거죠.
쿼리 분석기에서 sa계정으로 로긴한뒤
select 카드번호, 주민번호 from aaaa.dbo.T회원
where 주민번호 in (select ssn from bbbb.dbo.member
where no_card is null)
이렇게 실행을 시키면 쿼리 시간은 1초가 걸립니다.
그러나 이것을 커서를 만들어서 돌리면 작업이 종료하지 않고 계속
작업 중으로 뜨다가 결국에 타임아웃에 걸려 끊어지고 맙니다.
혹시 제가 무엇인가 잘못처리를 하고 있는 것인지 아니면 DB가
잘못된건지 의견 부탁드립니다.
커서의 스크립트는 밑에 있습니다.
DECLARE @P_NO_CARD VARCHAR(5)
DECLARE @P_USERID VARCHAR(20)
DECLARE @P_SSN VARCHAR(20)
DECLARE T_CURSOR CURSOR FOR
select 카드번호, 주민번호 from aaaa.dbo.T회원
where 주민번호 in (select ssn from bbbb.dbo.member
where no_card is null)
OPEN T_CURSOR
FETCH NEXT FROM T_CURSOR INTO @P_USERID, @P_SSN
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @P_NO_CARD+@P_USERID
FETCH NEXT FROM T_CURSOR INTO @P_USERID, @P_SSN
END
CLOSE T_CURSOR
DEALLOCATE T_CURSOR
|