ホームページ >データベース >mysql チュートリアル >別々のデータベースのデータを効率的に結合するにはどうすればよいですか?

別々のデータベースのデータを効率的に結合するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-13 09:50:43560ブラウズ

How Can I Efficiently Join Data from Separate Databases?

別々のデータベース システムからのデータの結合

複数の独立したデータベースにまたがるデータを扱う場合、多くの場合、完全なデータ分析のためにテーブルを結合する必要があります。 ここでは 2 つの効果的な方法を紹介します:

1.データベースリンクの確立:

適切なストアド プロシージャ (SQL Server の sp_addlinkedserver など) を使用してデータベース リンクを作成し、ローカル データベースをリモート データベースに接続します。これにより、リモート テーブルがローカルであるかのように扱われ、クエリ構文が簡素化されます。

<code class="language-sql">-- Querying data from DB1
SELECT *
FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2
ON tab1.ID = tab2.ID</code>

2.リモートクエリ実行の使用:

OPENQUERY 関数を使用すると、リモート サーバー上で SQL ステートメントを直接実行し、結果をローカル データベースに返すことができます。 リモート サーバーがクエリの最適化を処理するため、データベース リンクよりもパフォーマンスが向上する可能性があります:

<code class="language-sql">-- Retrieve data from the second database server
SELECT *
INTO #myTempTable
FROM OPENQUERY([DB2], 'SELECT * FROM [MyDatabaseOnDB2].[dbo].[MyOtherTable]')

-- Join the temporary table with local data
SELECT * 
FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN #myTempTable tab2 
ON tab1.ID = tab2.ID</code>

データベース リンクと OPENQUERY は両方とも、別々のデータベース間でデータを結合するための効率的なソリューションを提供し、より堅牢で有益なクエリを可能にします。

以上が別々のデータベースのデータを効率的に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。