Azure SQL Database と SQL Managed Instance の Import/Export サービスで、データベースのインポートまたはエクスポートに時間がかかる

適用対象:Azure SQL データベースAzure SQL Managed Instance

Import/Export サービスを利用するとき、処理に予想以上の時間がかかることがあります。 この記事では、この遅延の考えられる原因と代替解決手段ついて説明します。

Azure SQL Database Import/Export サービス

Azure SQL Database Import/Export サービスは、すべての Azure データセンターで実行される REST ベースの Web サービスです。 このサービスは、Azure portal でデータベースのインポートまたはエクスポート オプションを使ってデータベースを移動するときに呼び出されます。 このサービスでは、Azure SQL Database と Azure Blob ストレージの間でインポート/エクスポートを実行するための、要求を待ち行列に入れるサービスや計算処理のサービスが無料で提供されます。

インポート操作とエクスポート操作は従来の物理的なデータベース バックアップではなく、特別な BACPAC 形式を使用するデータベースの論理バックアップです。 BACPAC 形式を使用すると、Microsoft SQL Server、Azure SQL Database、および Azure SQL Managed Instance のバージョンごとに異なる可能性がある物理形式を使用する必要がなくなります。

処理の遅延を引き起こしている原因は何か。

Azure SQL Database Import/Export サービスでは、インポート操作とエクスポート操作を処理するために、リージョンごとに制限された数のコンピューティング仮想マシン (VM) が提供されます。 インポートまたはエクスポートにより複数リージョンにわたる帯域幅の遅延と課金が生じるのを回避するために、コンピューティング VM はリージョンごとにホストされています。 同じリージョンで同時に行われる要求が多すぎると、それらの操作の処理で大幅な遅延が発生することがあります。 要求を完了するために必要な時間は、数秒から長時間までさまざまです。

さらに、Import/Export サービスでデータベースの論理バックアップが実行されるため、完了までの時間は、従来の物理データベース バックアップよりもデータベース内のオブジェクトの数に依存します。

注意

リソースが割り当てられ、要求の処理が開始された後、サービスでは 2 日後にその要求を自動的に取り消します。

データベースのエクスポートが偶発的なデータ削除からの復旧のみに使用されている場合、Azure SQL Database のすべてのエディションには、システムによって生成されるバックアップからのセルフサービス復元機能が用意されています。 ただし、その他の理由でこれらのエクスポートが必要な場合や、一貫して高速または予測可能なインポートまたはエクスポートのパフォーマンスが必要な場合は、次のオプションを検討してください。

データベースをエクスポートまたはインポートするときの考慮事項

  • この記事で説明するすべての方法でデータベース トランザクション ユニット (DTU) クォータまたは CPU クォータが消費され、Azure SQL Database サービスによる調整が発生します。 Azure portal でデータベースの DTU 統計を表示できます。 データベースがそのリソース上限に達している場合は、サービス レベルをアップグレードしてさらにリソースを追加します。
  • 理想的には、お使いのデータベースと同じリージョンで VM からクライアント アプリケーション (sqlpackage ユーティリティやカスタム DAC アプリケーションなど) を実行する必要があります。 そうしないと、ネットワークの遅延に関連するパフォーマンスの問題が発生する可能性があります。
  • インデックスがクラスター化されていない大規模なテーブルの場合、エクスポートが非常に遅くなり、エクスポートに失敗することもあります。 テーブルを分割できず、並列でエクスポートできないことがこの動作の原因です。 そのため、1 つのトランザクションでエクスポートしなければならず、特にテーブルが大きい場合、パフォーマンスの低下やエクスポートの失敗を引き起こします。

データベースをエクスポートするときの考慮事項