我正在研究将 .NET Web 应用程序迁移到 Azure 的可行性。处理 Web 服务器方面的多角色设置似乎功能强大。
我对 Azure 数据库性能和针对我们的需求采用正确的横向扩展策略持保留意见。我们使用由 120 个表组成的单个数据库,80% 的事务在 10 个表上运行。其余的用于各种帐户级别设置和全局参考。最大的表由 500 万行组成,并在其余 9 个大表上使用一组触发器进行操作,每个表又包含 500k 到 250k 行之间的任何位置。
我最初的想法如下:
将最大的表移动到它自己的数据库实例中并使用同义词引用它。我现在意识到 Azure DB 似乎不支持跨数据库实例的 SYNONYMS。
使用联合将工作负载分散到更多 Azure 数据库实例中。我们的数据库只有 5GB,所以也许这是一个不成熟的选择?
使用具有 SQL 的更高规格的虚拟机来为数据库提供服务。
我很感激这里有很多未知数,我不期待一个明确的答案,我只是想看看 Stackoverflow 社区可以提供什么体验。
附加信息
- 当前设置:具有 120 个表的单个数据库的单个 SQL Server 2008 R2 实例在具有 12 GB RAM 的体面规格多核服务器上运行。
- 当前的性能非常好,以至于我们可以用一些来换取可扩展性。
- 数据库以每月 10% 的速度增长,并且严重依赖关系数据、触发器和复杂的存储过程,因此很难使用 Azure 表作为替代方案。