DB Link후 쿼리문입니다.
-- 1) 임시테이블 #Temp 의 자료을 테이블에 입력합니다. --> 실행 OK
Query.Close;
Query.Sql.Clear;
Query.Sql.Add('INSERT INTO Parts_List select barcodeKey from #Temp');
Query.Execsql;
바로 다음에 아래 문장이 실행됩니다.
아래 문장을 실행하면 open 후에 아무런 반응이 없습니다. 에러가 나는건 아닙니다. 무한정 대기 상태로 나옵니다
아래문장을 쿼리 분석기에서 하면 0.2초 내에 쿼리결과값이 나옵니다.
--위 1) 번문장을 실행하지 않고 아래문장을 실행하면 쿼리가 정상적으로 작동합니다.
--쿼리
with Query,Query.Sql do begin
Close;Clear;
Add(' Select distinct L.Scancode, L.barcodeKey, L.ComcodeKey'
+' from 서버.db.dbo.Parts_Master P '
+' Join 서버.db.dbo.Parts_List L '
+' On P.barcodeKey = L.barcodeKey where L.ComcodeKey = ''1'' and P.barcodeKey = L.barcodeKey '
+'');
open;
end;
.Parts_Master 의 데이타건수는 : 4000건
.Parts_List 의 데이타건수는 :100000건
링크된서버에 문제가 있는건 아닙니다. 쿼리분석기로 어떤 쿼리를 날려도 결과값이 잘 돌아옵니다.
뭐때문인지 도저히 알수가 없어서 질문드립니다.
감사합니다.
Comment 3
-
처리짱
2016.06.01 20:09
-
희망나라
2016.06.01 20:38
네. #Temp 에는 이미 등록된 자료가 있습니다.
1번문장만 실행하면 정상적으로 작동합니다.
혹시나 1번문장에 문제가 있나 싶어
while Query.eof do--insert
end;
이렇게 바꾸어도 아래문장으로 넘어가면 먹통이 되어버립니다.
-
minsouk
2016.06.01 23:25
오래 걸릴때 (반응이 없을때)두 서버에서 sp_lock2 를 실행하고 결과를 text 로 저장해 올려주세요 google 에서 sp_lock2 site:sqlsql.tistory.com 으로 검색하면 sp_lock2 스크립트는 찾을수 있습니다 화이팅!!!
1번이 잘못된거 아닌가요...
#TEMP에 자료를 입력하는 부분과 INSERT INTO Parts_List select barcodeKey from #Temp 이게 동시에 실행이 되어야 하지 싶은데요.