【问题标题】:SQL-Azure Performance, Add Database or Add Server?SQL-Azure 性能,添加数据库还是添加服务器?
【发布时间】:2011-11-27 11:11:31
【问题描述】:

这不是传统的纵向扩展或横向扩展问题。

请多包涵,这里先举个例子:

我创建了一个 Sql Azure 服务器并在里面创建了一个 1GB 的数据库,每月花费 9.99 美元。 (它也有一个主数据库,1G,但微软不向我们收费)

好的,我的问题来了,当我的应用程序需要另一个 1G 数据库时。为什么我需要另一个 1GB 的数据库?您可能会问我这个问题,因为 azure 可以支持高达 50GB 的数据库。我的答案是分布,我知道数据最终会达到 50G,所以我创建了数据模型,将数据分布和分布在不同的数据库中。

为了性能,我应该使用哪个选项:

  1. 在同一服务器中创建另一个数据库
  2. 创建另一个服务器并在里面创建一个新数据库

两个选项的成本相同。 我想选项 2 会更好,不是吗?

【问题讨论】:

  • 数据库的预期使用模式是什么?
  • 写正常,读频繁。 varchar 中的小数据。很少加入,但很多排序。基本上,我将数据保存在 Azure Table Storage 中,将索引保存在 Sql Azure 中,平衡成本和性能。也更容易缩放。
  • 如果您最终将拥有多个 50GB 的数据库,我认为 Table Storage 而不是 SQL Server 将是可行的方式(而且更便宜),如果这是一个选项的话。

标签: sql database performance azure azure-sql-database


【解决方案1】:

我不确定是否存在强烈(或任何)性能影响,我的理解是考虑主要是管理方面的考虑,因为某些实体(主要围绕安全性)是在服务器级别定义的,有些是在数据库级别定义的。

无论如何,模型在幕后是完全不同的,并且是多租户模型,因此拥有单独的 SQL Azure 服务器实际上并不意味着您获得了一个专用服务器本身。理论上单独的服务器或单独的数据库最终可能看起来完全一样。

【讨论】:

  • 我想知道(我在 M$ 中找不到任何地方)。对于同一服务器中的数据库,看起来像在一个 IP 中,在同一个盒子中或在云中,就像 Table Storage 一样。如果是这样,那么两个配置是相同的,只是让数据库在云中传播。是的,也许它们就像你说的一样。我不应该首先问这个问题:)
  • SQL Azure Server 只是数据的逻辑分离。无论您创建 2 个带有 1 个 DB 的 SQL Azure 服务器还是创建 1 个带有 2 个 DB 的 SQL Azure 服务器,您将获得的性能完全相同。每个 SQL Azure DB 都是为自己而存在的(如果我可以这么说的话)。正如 Yossi 所说,SQL Azure 有完全不同的供应和管理模型。性能主要取决于诸如 SQL Azure trhotling 之类的东西,以及您对特定数据库的强度,而不是一般的“服务器”。我将“服务器”放在引号中,因为正如我所说 - SQL Azure Server 只是逻辑实体,而不是物理实体。
  • 完全正确,对于您在评论中的问题 - 数据库共享 IP 的事实并不表示它们位于同一服务器中,只是您正在与同一个“门面”交谈,这当然是 DNS 名称正常工作所必需的。 SQL Azure 是一个真正的平台即服务产品,因此您不必担心它的实际部署方式,也没有任何保证。 '它只是工作'。
  • 正如 Yossi 所指出的,选择单独服务器的唯一原因是为了不同的安全策略或不同的地理位置(这在分片场景中没有意义)。在幕后有一个 TDS 负载平衡器,它为每个数据库转发到不同的物理服务器(不管创建了逻辑“虚拟”服务器)。保证为每个为请求提供服务的数据库获得不同的服务器(即连接 1 到 DB1 和连接 2 到 DB 2 肯定是不同的服务器)。
猜你喜欢
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
相关资源
最近更新 更多