Azure中“数据库数量”意味着什么?

时间:2013-01-30 19:52:40

标签: c# azure azure-sql-database

在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个数据库

enter image description here

10个数据库 enter image description here

3 个答案:

答案 0 :(得分:2)

它会引用数据库的数量,就像在您的连接字符串中一样:Database = xxx。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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