이것은 linked server 수행을 별도 프로세스로 띄우는 방식으로 OOP(Out-of-process)라고도 합니다.

이것은 다음 경우에 도움이 될 수 있을것 같습니다.
1. x86의 경우 프로세스당 메모리를 2GB까지밖에 사용할 수 없는데 linked server에서 많은 메모리가 필요할 때
2. Linked server가 문제를 발생시키는데 Inprocess라 SQL Service까지 영향을 받을 경우 linked server process만 죽일 수 있습니다.

하지만 별도 프로세스를 사용할 경우 MySQL과 연결할때는 text 컬럼에 대해 insert, delete, update시 문제가 발생할 수 있고,
oracle과 사용할 경우 oracle provider를 실행하기 위한 권한 설정이 추가로 필요할 수 있다고 합니다.
때문에 사용하기 전에 테스트 환경에서 문제가 없는지 확인이 필요해 보입니다.

@설정 방법
아래와 같이 SSMS에서 "서버 개체 – 연결된 서버 – 공급자 – MSDASQL"의 속성에서 "Inprocess 허용"을 체크 해제 합니다.



설정 후 연결된 서버가 사용될 때 마다 아래와 같이 "dllhost.exe" 프로세스가 별도로 수행되는것을 확인할 수 있습니다.
물론 연속적으로 연결된 서버를 사용하는 쿼리가 수행되면 하나의 프로세스를 사용하게 됩니다. (여러개 프로세스가 뜨지 않습니다! ^^; )

 

하만철 / Ha Man-cheol

AND