다양한 서버 데이터베이스의 테이블 조인
서로 다른 서버에 있는 서로 다른 데이터베이스의 여러 테이블에서 데이터를 검색할 때 이러한 테이블을 효율적으로 조인하는 방법에는 여러 가지가 있습니다.
1. 서버링크 이용하기
sp_addlinkedserver
명령을 통해 서버 링크를 생성하여 데이터베이스 간의 연결을 설정합니다. 예제와 같이 연결된 서버 이름 앞에 데이터베이스 이름을 붙여 평소와 같이 쿼리를 통해 액세스합니다.
<code class="language-sql">-- 来自 DB1 SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1 INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2 ON tab1.ID = tab2.ID</code>
2. OPENQUERY를 사용하세요
또는 OPENQUERY
을 사용하여 원격 SQL 문을 실행하고 다른 서버에서 데이터를 검색하는 것도 고려해 보세요. 이 방법은 대역폭을 최적화하고 원격 서버의 쿼리를 최적화합니다. 다음 예와 같이 나중에 연결하기 위해 데이터를 임시 또는 메모리 내 테이블에 캐시할 수 있습니다.
<code class="language-sql">-- 从其他数据库服务器获取数据 SELECT * INTO #myTempTable FROM OPENQUERY([DB2], 'SELECT * FROM [MyDatabaseOnDB2].[dbo].[MyOtherTable]') -- 现在我可以连接我的临时表以查看数据 SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1 INNER JOIN #myTempTable tab2 ON tab1.ID = tab2.ID</code>
메모
Server Link와 OPENQUERY
사이의 선택은 특정 사용 사례와 성능 요구 사항에 따라 다릅니다. 서버 링크는 영구적인 연결을 제공하는 반면 OPENQUERY
은 임시 데이터 검색을 허용합니다. 필터링이 필요한 시나리오의 경우 OPENQUERY
가 더 효율적일 수 있습니다. 더 많은 예제와 시나리오는 설명서를 참조하세요.
위 내용은 서로 다른 데이터베이스 서버에서 테이블을 효율적으로 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!