MSSQL Linked server(연결된 서버)

Linked Server는 SQL server에서 제공하는 기능 중 하나이며, Linked Server를 사용하면 SQL Server 인스턴스 외부의 DB 데이터 원본에 대해 명령을 실행할 수 있도록 연결된 서버를 구성할 수 있다.

즉, 이를 통해 SQL Server 외부에서 데이터를 액세스 할 수 있게 된다.

따라서 용도에 따라 DB서버가 분리되어 있을 때 데이터 조회 시에 각각의 Server에서 진행할 필요없이 Linked Server를 통해 한 번에 조회가 가능하다.

 

Linked Server의 데이터를 불러오는 가장 대표적이고 간단한 방법은 From절의 조회하고자 하는 테이블명 앞에 Linked Server 별칭을 붙여주는 것이다. 하지만 Linked Server를 위와 같은 방법으로 사용하면 성능 저하 이슈가 발생할 수 있고, 이를 해결기 위해서는 Openquery를 사용하면 된다.

 

테이블명 앞에 별칭을 붙여 사용하는 경우 성능 저하가 발생하는 이유는 해당 방법으로 조회를 하게되면 where절(조건)과 상관없이 Linked Server의 데이블에 있는 모든 데이터를 가져와서 그 후에 조건에 대한 필터링이 이루어지기 때문이다. 다시 말해, Full scan을 하기 때문에 쿼리비용이 많이 발생하여 성능 이슈가 생기는 것이다.

 

여기서 Openquery를 사용하면 Linked Server에서 데이터를 가져올 때 전체 데이터를 가져오는 것이 아니라, 조건에 맞는 데이터만 가져오기 때문에 위의 문제점을 해결할 수 있게 된다.

 

Openquery를 사용하는 방법은 다음과 같다.

 

SELECT *
FROM OPENQUERY( [linked server] , 'query' )

'컴퓨터 공부 > SQL' 카테고리의 다른 글

MSSQL 프로시저 캐시 / 버퍼 메모리  (0) 2023.08.18
SQL 와일드카드  (0) 2023.08.16
MySQL 사용자 권한 부여 명령어(GRANT)  (0) 2023.08.10
MSSQL 로그인 계정 및 사용자 계정  (0) 2023.08.09
MySQL vs MS SQL server  (0) 2023.08.08