728x90
반응형
사내 인프라 운영시, MSSQL 연결된 서버의 데이터를 연동하는 일이 많아서, 아래와 같이 데이터를 조회해오는 일이 많다.
SELECT [컬럼명] FROM [연결된 서버별칭].[데이터 베이스명].[데이터베이스 소유자명].[테이블명] WHERE [조건절]
하지만 위와 같이 사용하면, 해당 테이블을 FULL SCAN하게 된다.
속도 개선을 위해, 연결된 서버로 조건절을 전달하여 필요한 데이터만 가져올 수 있도록 OPENQUERY를 사용한다.
아래와 같이 OPENQUERY로 조회해오는 프로시저를 만들어서 사용하는 것이 편리하다.
CREATE PROCEDURE [dbo].[procLinkedServer]
(
@searchText VARCHAR(10)
)
AS
SET Nocount On;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
declare @Query varchar(1000)
set @Query = '
SELECT
*
FROM OPENQUERY([연결된 서버별칭],''
Select
[컬럼명]
From [데이터 베이스명].[데이터베이스 소유자명].[테이블명] WITH(NOLOCK)
Where [컬럼명] = ''''' + @searchText + '''''
''
) AD'
EXEC (@Query)
728x90
반응형
'MSSQL' 카테고리의 다른 글
DB 암호화/복호화 (0) | 2021.09.08 |
---|---|
MSSQL] xmlParseCharRef: invalid xmlChar value 26 오류해결 (1) | 2020.12.03 |
MSSQL] 구분자로 문자열 split하여 Table로 변환하기 (0) | 2020.10.15 |
MSSQL] 구버전 SSMS 에서 JSON 파싱 (0) | 2020.10.06 |
MSSQL] 프로시저, 뷰 문자열 검색 (0) | 2020.10.06 |
댓글