Azure SQL 数据库弹性池和 Azure SQL 数据库托管实例有啥区别?
Posted
技术标签:
【中文标题】Azure SQL 数据库弹性池和 Azure SQL 数据库托管实例有啥区别?【英文标题】:What is the difference between Azure SQL Database Elastic Pools and Azure SQL Database Managed Instance?Azure SQL 数据库弹性池和 Azure SQL 数据库托管实例有什么区别? 【发布时间】:2019-05-15 23:04:21 【问题描述】:Azure SQL 数据库有两种类似的风格 - 托管实例和弹性池。这两种风格都允许放置共享相同资源的多个数据库,并且在这两种情况下都可以更改实例/池中整个数据库组的 cpu/存储。它们有什么区别?
【问题讨论】:
看来有人不喜欢自答:( 【参考方案1】:Azure SQL Database Elastic Pool是Single Azure SQL PaaS databases实现更高资源利用效率的共享资源模型,弹性池内的所有数据库共享同一个弹性池内的预定义资源。此产品的重点是为多租户 SaaS 应用程序提供简化的数据库范围编程模型,其中工作负载模式定义明确,并在为许多租户提供服务时提供高成本效益。
SQL Database Managed Instance 提供简化的实例范围编程模型,类似于本地 SQL Server 实例。托管实例中的数据库共享分配给托管实例的资源,托管实例也代表这些数据库的管理分组。此产品的重点是与本地 SQL Server 的编程模型的高度兼容性以及对大多数 SQL Server 功能和随附工具/服务的开箱即用支持。
一些高级指南可能是:
如果您需要将大量单人分组,请使用弹性池 不需要所有实例 Transact-SQL 功能的数据库 存在于 SQL Server 中。 如果要迁移,请使用托管实例 大量使用实例级别的大量 SQL Server 数据库 诸如 CLR、Service Broker、SQL 代理等功能。在Azure SQL IaaS vs PaaS Comparison Table查看更多信息
【讨论】:
我不知道自从提供了这个答案后这是否发生了变化,但托管实例现在的成本与相同大小的单个数据库相同,而弹性池为相同容量增加了溢价。考虑到这一点,当托管实例更便宜并且具有更多功能时,为什么有人会选择弹性池。我错过了什么吗? 来自 Microsoft:弹性池每个池支持的数据库比单个托管实例上可用的数据库多。此外,弹性池中有内置的资源治理,以确保跨数据库的公平资源使用。最后,池中的每个数据库都与其他数据库隔离,以支持多租户场景。 定价与同类产品并不完全相同 - 是的,4 vCore SQL 数据库的成本与 4 vCore 托管实例相同。那是因为您只需为 SQL Server 核心许可证付费。但是,仍然存在提供不同定价模型的 DTU 模型,并且 SQL DB 在 vCore 模型中可以低至 2 个 vCore,而托管实例至少为 4 个 vCPU。实际上,您的里程可能会因数据库的性能概况而有所不同 - 因此请评估所有选项以确定最适合您的选项。以上是关于Azure SQL 数据库弹性池和 Azure SQL 数据库托管实例有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
Azure Devops (VSTS) 代理池和部署池之间的区别