ホームページ >データベース >mysql チュートリアル >別々のデータベースのデータを効率的に結合するにはどうすればよいですか?
別々のデータベース システムからのデータの結合
複数の独立したデータベースにまたがるデータを扱う場合、多くの場合、完全なデータ分析のためにテーブルを結合する必要があります。 ここでは 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 サイトの他の関連記事を参照してください。