現在、150G を超える単一のデータベースを持つことはできません。
唯一の方法は、データを複数のデータベースに分割するか、1 つのアカウントに最大 149 のユーザー データベースとマスター DB を含めるか、SQL Azure フェデレーションを使用することです。現在、私が間違っていなければ、サポートされている連邦の総数は ですInt16.MaxValue - 1
。各フェデレーションは、実際には個別のデータベースであり、開発者には透過的であり、最大 150 GB まで可能です。
ただし、SQL Azure フェデレーションには独自の長所と短所があり、データ アクセス レイヤーのリファクタリングもあります。興味がある場合は、SQL Azure フェデレーションに関するクールなビデオをご覧ください。
アップデート
@ryancrawcour に完全には同意しません。彼が説明しているのは、水の下にある氷山の頂点にすぎません。必要なリファクタリングの量は、アプリケーションからデータがどのように消費されるかによって異なります。考慮事項としていくつかの要因について言及します (完全な画像ではありません)。次のいずれかを検討してください。
- すべてのフェデレーションに共通のデータ (このデータを取得する方法)
- データを後処理するストアド プロシージャ - フェデレーション メンバーごとに反復し、そのストアド プロシージャを実行する必要があります。ストアド プロシージャを 1 回実行して、すべてのフェデレーションでデータを処理する方法はありません。
- 複数のフェデレーション メンバーに分散している集計データ
- 複数のフェデレーション メンバーからのデータを一覧表示します。
これらは、検討する必要がある操作のほんの一部であり、各クエリの前に「接続文字列を変更して、フェデレーションを 1 回実行するだけ」である必要はありません。実際に SQL Azure フェデレーションを使用すると、接続文字列をまったく変更する必要はありません。すべて同じ SQL Azure 接続文字列です。「USE FEDERATION ...」ステートメントは、各クエリの前に実行するものです。しかし、それだけではありません。また、EntityFramework を使用している場合 (モデルが最初かコードが最初かなど) はどうでしょうか。事態はさらに複雑になり、SQL Azure フェデレーションを十分に理解する必要があります。
SQL Azure フェデレーションは、データ、モデリング、および正規化について異なる考え方をしていると言えます。
更新 2 - Microsoft が発表した新しいデータベース サイズ
2014 年 4 月 3 日の時点で、単一データベースの最大サイズが 500GB に引き上げられました。現在入手可能な情報はここだけです。管理ポータルにはまだこのオプションが表示されないことに注意してください (今日現在: 2014 年 4 月 4 日 15:00 GMT+0:00)。