質問: 私は、紺碧のデータベースを持つ晴れたアプリを雲の上に持っています。私はBCPまたはSSISを直接使用することができないように、ファイルの解析+処理(最大3000万行まで)を行う必要がある作業者の役割を持っています。 私は現在SqlBulkCopyを使用していますが、これは400k行に対して最大4〜5分の読み込み時間を見ているので、これは遅すぎます。 バルクインサートを並行して実行したい。ただし、SqlBulkCopyでは、テーブルにクラスタ化インデックスがなく、テーブルロック(BUロック)を指定する必要があると言われています。しかし、紺碧のテーブルにはクラスタ化されたインデックスが必要です... SQL Azureの同じテーブルでSqlBulkCopyを並行して使用することも可能ですか?そうでない場合は、これを行うために別のAPI(コードで使用できます)がありますか?
回答: SqlBulkCopyを使用するよりも速く実行できる方法はわかりません。私たちのプロジェクトでは、約3分で250Kの行をインポートできます。 たとえそれが技術的に可能だったとしても、それを並行して行うことは助けになるとは思わない。一度に1つのインポートのみを実行します。それ以外の場合、SQL Azureはリクエストのタイムアウトを開始します。 実際には、インポートと同時に大きなグループ・バイ・クエリを実行することは不可能です。 SQL Azureは、サービスの品質を保証するために多くの作業を行います。これには、時間のかかる要求のタイムアウト、リソースの過剰取得などが含まれます。 したがって、同時に複数の大きなバルクインサートを実行すると、タイムアウトが発生する*可能*性があります。