각기 다른 서버에 있는 DB를 linked server로 연결하여
data를 가져오려합니다.
쿼리시에 조건에 문자열로 할때와 변수로 처리할 때의 속도가 확연히
차이가 나네요
해결할 방법좀 알려주세요...
예를 들어
(1)
select *
into test_in
from testserver.testdb.dbo.test_out
where a = '1111'
(2) declare @testVar varchar(4)
set @testVar = '1111'
select *
into test_in
from testserver.testdb.dbo.test_out
where a = @testVar
현재 둘다 실행은 되나 처리속도가 확연히 차이가 있습니다.
(1) 번의 경우 10초 정도, (2)번의 경우 6~8분 정도
sp내에서 이렇게 data를 가져오는 것들이 4개정도되는데 몇시간이
지나도록 처리가 되지 않고 있더군요.
그래서 확인해보니 각각을 따로 수행시에는 처리가되는데
조건에 변수로 넣을 때와 문자열을 넣을 때의 속도가 많은 차이가
있더군요.
test_out은 마스터성 테이블이라 데이타량이 많고 조건을 걸어
가져오는 데이타도 많은 편입니다.
sp내에서 위의 (2)번의 구문으로 data를 일괄 import후에 그 데이타로
또다른 처리를 하려고 합니다.
어떻게 하면 (1)번과 같은 속도로 처리가 될 수 있을까요??
|