반응형

현재 진행중인 프로젝에서 MSSQL Server 2008을 사용하고 있다.

그외의 mysql, oracle 등등 외부 서버가 기세등등 대기 하고 있지만 웬지 친근감이 들지 않는다ㅋㅋ

가끔 오로코로 보고 싶은 녀석들이 있을때 외친다. Hey~~ come on!!  또 헛소리를 ㅜㅜ

SQL Server에서는 Linked Servers 방식을 이용해서 Oracle에 접근하여 데이터를 가져오도록 설정이 되어있다.

지금까지 그냥 아무생각 없이 OPENQUERY() 를 사용하여 쑥쑥 가져왔다. 음.. 음.. 음..

과연 performance는 어땠을까.??  So Bad!!!!!!!

자 그럼 어떤 점이 문제가 있었는지 간단한 예제를 통해서 알아보자.


예) Insert OPENQUERY (TEST, 'select * from test_query')
     value ('first_name', 'last_name', 'address1', 'address2')

결과는 자~~~알 된다. ㅡㅡa

그런데 한가지 문제가 있다!! 바로 Oracle의 test_query 테이블 전체를 쭉 긁어 버린다. 허허

난 단지 데이터를 Insert를 할려고 하는데 전체 Select라.. 이건 불필요한거다.

자자 이래서 이런 것들은

예) Insert OPENQUERY (TEST, 'select * from test_query where 1=0')
     value ('first_name', 'last_name', 'address1', 'address2')

으로 where 1=0 절을 사용함으로써 Oracle에서 실제 Select가 일어나지 않게 하는 것이다.

그리고 Delete나, Update같은 경우 OPENQUERY()문 안에 조건 밑 기능을 추가하여야 한다.

왜?? 그렇게 해야 좋으니깐..ㅋㅋ

에헴.. 더 자세한 내용들은 다음 시간에 생각나면 올리도록 할께요.~~
반응형

+ Recent posts