.NET Web アプリケーションを Azure に移行する可能性を検討しています。Web サーバーの側面を処理するためのマルチロール設定は、十分に機能しているようです。
Azure データベースのパフォーマンスと、ニーズに合った適切なスケールアウト戦略の採用に関して、私は留保しています。120 個のテーブルで構成される単一のデータベースを使用し、トランザクションの 80% は 10 個のテーブルで実行されます。残りは、さまざまなアカウント レベルの設定とグローバル参照に使用されます。最大のテーブルは 500 万行で構成され、残りの 9 つの大きなテーブルで一連のトリガーを使用して操作されます。各テーブルは、50 万行から 25 万行の間で保持されます。
私の当初の考えは次のとおりでした。
最大のテーブルを独自のデータベース インスタンスに移動し、SYNONYM を使用して参照します。Azure DB がデータベース インスタンス間で SYNONYMS をサポートしていないように見えることに気付きました。
フェデレーションを使用して、ワークロードをより多くの Azure DB インスタンスに分散させます。私たちの DB は 5GB しかないので、これは時期尚早のオプションでしょうか?
データベースにサービスを提供するには、SQL を備えたより高いスペックの仮想マシンを使用します。
ここには多くの不明な点があることを認識しており、決定的な答えは期待していません。Stackoverflow コミュニティがどのような体験を提供できるかを知りたいだけです。
追加情報
- 現在のセットアップ: 12 GB の RAM を備えたまともな仕様のマルチコア サーバー上で実行されている、120 個のテーブルからなる単一のデータベースを備えた単一の SQL Server 2008 R2 インスタンス。
- 現在のパフォーマンスは非常に優れており、スケーラビリティと交換できる程度です。
- データベースは毎月 10% ずつ増加しており、リレーショナル データ、トリガー、複雑なストアド プロシージャに大きく依存しているため、代替として Azure テーブルを使用することは困難です。