1

Azure 料金計算ツールでは、データベースの数を構成できます。Azure SQL ストレージ スケールのコストは、データベースの数にほぼ比例します。

私にとって明確ではないのは、データベースの数に言及するときに何がカウントされるのですか?

  • ソリューションで定義する数はconnection strings?
  • 1 つに対応するデータベースで作成するデータベースの実際の数は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>();
    }
} 

次の構成で Web アプリを 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

「1 つの接続文字列に対応する、データベース内に作成するデータベースの実際の数は?」と書くとき、単一のデータベース内の個別の/名前付きスキーマの数を参照しているようです。これは、 http://msdn.microsoft.com/en-us/library/aa479086.aspxで説明されている「共有データベース、個別のスキーマ」パターンです。データベース内の個別のスキーマの数ではなく、実際に使用するデータベースの数に対してのみ課金されます。もちろん、複数のサーバーに同じ名前のデータベースを作成することもできます。その場合、各サーバーのデータベースごとに料金が発生します。randoms が指摘しているように、各 Azure データベースには、接続先のサーバーとデータベースを指定する独自の接続文字列があるため、各接続文字列は別料金のデータベースに対応しています。

于 2013-01-30T23:36:34.423 に答える
0

接続文字列の数とは直接関係ありません。すべての接続文字列が同じデータベースとサーバーをさまざまなオプションで指している可能性があるためです。

したがって、1 つの SQL Azure データベース e すべての接続文字列からサーバーとデータベースの属性を取得すると、それらをサーバーとデータベースの個別の数としてカウントできます。

于 2013-01-30T20:36:51.837 に答える