WindowsAzureでSQLServerCompactを使用することは確かに可能です。ただし、次のことを自問する必要があります。
データベース内の何かを変更しますか?
これには、データの追加、更新、削除が含まれます。その場合は、 WindowsAzureでSQLServerCompactを使用しないでください。なぜなら、WindowsAzureでSQLServer Compactを使用してデータベース内の何かを変更すると、次の2つの問題が発生するからです。
- データは複製されません。
- データを失うリスクがあります。
データは複製されません
データベース内の何かを変更しても、変更はローカルのままです。つまり、Webアプリケーションを実行しているインスタンスが複数ある場合、各Webアプリケーションには独自のデータベースがあり、そのうちの1つで何かを変更しても、変更は他のインスタンスに複製されないため、予期しない動作が発生します。アプリケーションで。
データが失われる
リスク展開後にデータベース内の何かを変更すると、Windows Azureがインスタンスを別の仮想マシンまたは物理マシンに再展開することを決定する可能性があるため、データが失われるリスクがあります。これが発生すると、新しいインスタンスは、最初にWindows Azureにアップロードした展開パッケージでセットアップされます。このパッケージには、データベースに加えた変更は含まれていません。そして、この再配置は、いくつかの理由でいつでも発生する可能性があります。
結論
では、Azure上のSQL Compact?もちろん、データが読み取り専用であれば問題ありません。ただし、SQLAzureで得られるパフォーマンスは得られないことに注意してください。ただし、将来的にニーズが変化した場合は、いつでもアプリケーションをSQLServerCompactからSQLAzureに移行できます。
WindowsAzureでSQLServerCompactを使用する場合は、「ErikEJ」のブログで説明されているように、「プライベート展開」方式を使用できます。
編集: Microsoftは、Azureサブスクリプションごとに1つの無料の20 MBSQLAzureデータベースを提供することを発表しました。これは、サブスクリプションを作成し、無料のSQLAzureデータベースを使用して無料のWebサイトを作成できることを意味します。(20 MB未満である限り)同じSQLAzureデータベースに複数のWebサイトを無料で関連付けることもできます。したがって、データベースが非常に小さく、100 MBのデータベースにお金をかけたくないという理由で、WindowsAzureでSQLServer Compactを検討している場合は、このオプションを検討できます。ほとんどの場合、それはより良い解決策になります。Webサイトのパフォーマンスが向上し、データベースのパフォーマンスが向上し、データを変更して複製することができます。