2017-07-11 4 views
0

私はサーバーServer1.database.windows.netサーバーにAzure SQLデータベースdatabase1を持っています このデータベースからいくつかのレコードを取得し、別のAzureサーバー上の別のデータベースのテーブルにそれらを挿入する必要があります。 このシナリオでは、.Netを使用したり、Elasticクエリを使用する方がよいと思いますか? また、弾性クエリには何らかの制限がありますか?Azure SQLのエラスティッククエリーを使用するメリットは、.NETのクロスDBクエリーを処理することです。

+0

理論では(私はそれを使ったことはありません)、あなたの弾力的なクエリをストアドプロシージャとしてデータベースに保存することができます。だからあなたは別々のコードベースを持っていない。また、データは、リモートデータベースからローカルデータベースへの1回のトリップを行います。コンパイルされた.netコードを別のサーバーで実行した場合、データは2回のトリップになります。 –

答えて

0

私は、このデータベースから、いくつかのレコードを取得し、別のAzureサーバー上の別のデータベース内のテーブルにそれらを挿入する必要があるサーバーServer1.database.windows.netでAzureのSQLデータベースのデータベース1を持っています。このシナリオでは、.Netを使用したり、Elasticクエリを使用する方が良いと思いますか?

あなたの要件は、あるデータベースのクエリデータであり、私の意見では、これらの操作をプログラム内のコードを使用して別の(異なる)データベースに挿入することです。あなたのシナリオ通常、弾性クエリを使用する目的は、複数のデータベースが行を単一の全体的な結果に寄与するシナリオを容易に照会することです。弾性クエリ機能の詳細情報はthis articleにあります。

さらに、sp_execute_remoteは、リモートストアドプロシージャ呼び出しやリモート関数の実行に役立ちます。これはシナリオの別の方法です。

弾性クエリには何らかの制限がありますか? this articleで「プレビューの制限」セクションの下で

、あなたが見ることができます:

あなたの最初の弾性のクエリを実行している
  • は、標準的なパフォーマンスの階層に数分かかることがあります。この時間は、弾性クエリ機能をロードするために必要です。より高性能な層でロードのパフォーマンスが向上します。

  • SSMSまたはSSDTからの外部データソースまたは外部テーブルのスクリプティングは、まだサポートされていません。

  • SQLデータベースのインポート/エクスポートは、外部データソースと外部テーブルをまだサポートしていません。インポート/エクスポートを使用する必要がある場合は、エクスポートする前にこれらのオブジェクトを削除してから、インポート後に再作成してください。

  • 現在、弾性クエリは外部テーブルへの読み取り専用アクセスのみをサポートしています。ただし、外部テーブルが定義されているデータベースで完全なT-SQL機能を使用することはできます。これは、例えばSELECT INTOを使用して一時的な結果を持続させるため、または外部テーブルを参照する弾性クエリデータベース上のストアドプロシージャを定義するために有用であり得る。

  • nvarchar(max)を除いて、LOBタイプは外部テーブル定義ではサポートされていません。この問題を回避するには、LOBタイプをnvarchar(max)にキャストし、ベース・テーブルではなくビューに外部表を定義し、問合せで元のLOB型にキャストし直すビューをリモート・データベースに作成できます。

  • 外部表に対する列統計は、現在サポートされていません。テーブル統計はサポートされていますが、手動で作成する必要があります。

関連する問題