1

在 Azure 定价计算器中,您可以配置数据库的数量。Azure SQL 存储的成本与数据库的数量呈线性关系。

我不清楚什么,当他们提到数据库的数量时计算的是什么?

  • connection strings我在解决方案中定义的数量?
  • 我在数据库中创建的实际数据库数量对应于一个connection string

举个例子:我有一个多租户 Web 应用程序。我为每个租户创建一个新数据库,但将数据库存储在我通过 1 个连接字符串引用的数据库中。

public class ApplicationContext : DbContext, IDbContext
{
    public DbSet<Tenant> Tenants { get; set; }
    public DbSet<User> Users { get; set; }

    public ApplicationContext(string tenantName) : base(tenantName)
    {
    }

    public new IDbSet<TEntity> Set<TEntity>() where TEntity : class
    {
        return base.Set<TEntity>();
    }
} 

我将具有以下配置的 webapp 发布到我的 Azure 数据库:

Server=tcp:gd5ydgrwa0.database.windows.net,1433;Database=xxx;User ID=xxx;Password=xxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;

我在他们的文档中找不到任何地方。非常感谢您的帮助。如果 Azure 按租户向我们收取数据库费用,我们需要重新考虑我们的数据库设计。

如果我有 10 个客户,我将有 10 个数据库。Azure 会向我收取 10 个数据库的费用吗?还是仅针对我配置的 1?

1 个数据库

在此处输入图像描述

10 个数据库 在此处输入图像描述

4

3 回答 3

2

它参考数据库的数量,如您的连接字符串:Database=xxx。

如果您租户的所有“数据库”都存储在 xxx 中,则您需要为 1 个数据库付费。但是,如果您更改连接字符串以便使用 xxx1、xxx2、...、xxxN,您将需要为 N 个数据库付费。

于 2013-01-30T20:39:09.187 回答
1

当您写“我在数据库中创建的与一个连接字符串相对应的数据库的实际数量?”时,您似乎指的是单个数据库中单独/命名模式的数量。这是http://msdn.microsoft.com/en-us/library/aa479086.aspx中讨论的“共享数据库,单独模式”模式。您只需为您使用的实际数据库数量付费,而不是数据库中单独模式的数量。当然你可以在多个服务器上创建一个同名的数据库,然后你会为每个服务器中的每个数据库付费。正如 randoms 指出的那样,每个 Azure 数据库都有自己的连接字符串,指定它连接到的服务器和数据库,因此每个连接字符串对应于一个单独收费的数据库。

于 2013-01-30T23:36:34.423 回答
0

它与连接字符串的数量没有直接关系,因为您可以有许多连接字符串都指向具有不同选项的相同数据库和服务器。

因此,一个 SQL Azure 数据库 e 如果您从所有连接字符串中提取服务器和数据库属性,您可以将它们视为服务器和数据库的不同数量。

于 2013-01-30T20:36:51.837 回答