导出 (0) 打印
全部展开

Azure SQL Database 一般性的指导原则和限制

更新时间: 2015年1月

本主题介绍 Microsoft Azure SQL Database 一般性的指导原则和限制。在下面的各标题中将详细介绍这些一般性的指导原则和限制:

有关与安全相关的指导原则和限制的信息,请参阅Azure SQL Database 安全指导原则和限制

DTU 可让你根据 CPU、内存、读取与写入速率的混合度量标准描述该性能级别的相对容量。每个服务器的基本、标准和高级数据库最多有 2000 个 DTU,此外,每个服务器的数据库数目和每个数据库的最大大小也有总体限制。根据该性能级别的 DTU 等级消耗 DTU。例如,包含 5 个基本数据库、2 个标准 S1 数据库和 3 个高级 P1 数据库的服务器消耗 365 个 DTU。有关与每个性能级别关联的 DTU 等级的详细信息,请参阅 Azure SQL Database 服务层和性能级别。此 DTU 配额的扩展可用于你的 Azure SQL Database 服务器。有关详细信息,请联系 Azure 支持

每个服务器最多支持 150 个数据库,包括 master 数据库。此限制适用于所有服务层。对此限制的扩展可用于你的 Azure SQL Database 服务器。有关详细信息,请联系 Azure 支持

除了限制每个服务器的数据库数以外,每个服务级别(版本)将限制每个数据库的最大大小。如果数据库的大小达到其 MAXSIZE,你将收到错误代码 40544。发生此情况时,你将无法插入或更新数据,也无法创建新对象(如表、存储过程、视图和函数)。但是,你仍可以读取和删除数据、截断表、删除表和索引,以及重新生成索引。如果你删除了一些数据以释放存储空间,可以有最多 15 分钟的延迟,之后你才能插入新数据。

有关创建数据库的信息,请参阅创建数据库 (Azure SQL Database)

在为 Microsoft Azure SQL Database 编写应用程序时,你可以使用以下驱动程序和库:

  • 来自 .NET Framework 3.5 Service Pack 1 或更高版本的用于 SQL Server 的 .NET Framework 数据访问接口 (System.Data.SqlClient)。

  • 来自 .NET Framework 3.5 Service Pack 1 或更高版本的实体框架。

  • SQL Server 2008 R2(和更高版本)Native Client ODBC 驱动程序。还支持 SQL Server 2008 Native Client ODBC 驱动程序,但其功能较少。

  • 用于 PHP 1.1 版或更高版本的 SQL Server 2008 驱动程序。

  • 支持 SQL Database 的 SQL Server JDBC Driver 3.0 的更新版本。

Microsoft Azure SQL Database 支持表格格式数据流 (TDS) 协议客户端 7.3 版或更高版本。不支持 TDS 协议的早期版本。

不支持使用 OLE DB 或 ADO 连接到 Microsoft Azure SQL Database。

在编写适用于 Microsoft Azure SQL Database 的应用程序时,可以使用 Visual Studio 随附的 .NET Framework 编程语言之一:Microsoft Visual Basic、Microsoft Visual C# 或 Microsoft Visual C++。Visual Studio 提供服务器管理控制台“服务器资源管理器”,以便打开数据连接以及登录到服务器并浏览数据库。从 Visual Studio 2010 开始,你可以使用“服务器资源管理器”连接到 Azure SQL Database 并在其中浏览你的数据库。不支持“服务器资源管理器”的早期版本。有关详细信息,请参阅 MSDN 上的 Visual Studio 文档。

在使用工具连接到 Microsoft Azure SQL Database 时请考虑以下几点:

  • 只允许 TCP/IP 连接。

  • 支持多个活动结果集 (MARS)。

  • 因为某些工具以不同方式实现表格格式数据流 (TDS),所以,你可能需要使用 <login>@<server> 表示法将 Azure SQL Database 服务器名称追加到连接字符串的登录名部分。有关更多信息,请参见在 Azure SQL Database 中管理数据库、登录名和用户

  • 不支持 SQL Server 2008 SQL Server 浏览器,因为 Microsoft Azure SQL Database 不具有动态端口,只有端口 1433。

有关工具支持的详细信息,请参阅 Azure SQL Database 工具和实用工具支持

你可以使用配置 ODBC 数据源来为 Microsoft Azure SQL Database 定义用户和系统数据源。若要查看用户和系统数据源的列表,请查看“ODBC 数据源管理员”对话框的 User DSNSystem DSN 选项卡。

当使用数据源名称 (DSN) 向导来定义 Microsoft Azure SQL Database 的数据源时,单击在“采用使用用户输入的登录 ID 和密码的 SQL Server 身份验证”选项,然后选择“连接到 SQL Server 以获得其他配置选项的默认设置”。输入你的用户名和密码以便以 Login IDPassword 的形式连接到你的 Azure SQL Database 服务器。在使用 SQL Server 2008 Native Client 时,取消选中“连接到 SQL Server 以获得其他配置选项的默认设置”复选框。从 SQL Server 2008 R2 Native Client ODBC 驱动程序开始,无需取消选中“连接到 SQL Server 以获得其他配置选项的默认设置”复选框。单击“将默认数据库更改为:”,并输入 Azure SQL Database 的名称,即使该名称未在列表中显示。请注意,向导将在“将 SQL Server 系统消息的语言更改为:”列表中列出多种语言。

在此版本中,Microsoft Azure SQL Database 仅支持英语,因此选择“英语”作为语言。Microsoft Azure SQL Database 不支持“镜像服务器”“附加数据库”,因此请将这两项保留为空。单击“测试连接”

  • 在使用 SQL Server 2008 Native Client ODBC 驱动程序时,“测试连接”按钮可能导致 master.dbo.syscharsets 不支持的错误。请忽略该错误,保存 DSN,然后使用它。此外,在你配置 DSN 时如果选择连接到并非 master 的其他数据库,则“测试成功完成”消息将可能不出现,即使没有错误时也是如此。

  • 对于 SQL Server 2008 R2 Native Client ODBC 驱动程序,你将不会收到指示不支持 master.dbo.syscharsets 的错误,即使在连接到其他数据库时也是如此。

你可以通过使用以下项将数据传输到 Microsoft Azure SQL Database:

  • SQL Server 2008 Integration Services (SSIS)

  • 大容量复制实用工具 (BCP.exe)

  • System.Data.SqlClient.SqlBulkCopy 类

  • 使用 INSERT 语句将数据加载到数据库中的脚本

Microsoft Azure SQL Database 支持:

  • RESTORE 语句。

  • 将数据库附加到 Azure SQL Database 服务器。

有关 SSIS 的详细信息,请参阅 SQL Server Integration Services

Microsoft Azure SQL Database 不支持 SQL Server 代理或作业。不过,你可以在本地 SQL Server 上运行 SQL Server 代理并且连接到 Microsoft Azure SQL Database。

Microsoft Azure SQL Database 不支持分布式事务,分布式事务是影响若干资源的事务。有关详细信息,请参阅分布式事务 (ADO.NET)

从 版本 2.0 开始,应用程序事务可以自动升级到分布式事务。这适用于使用 System.Data.SqlClient 类在 System.Transactions 事务的上下文中执行数据库操作的应用程序。

当你打开与某一 TransactionScope 内的不同服务器或数据库的多个连接时,或者你通过使用 EnlistTransaction 方法在 System.Transactions 对象中登记多个连接时,将发生事务升级。当你在同一 TransactionScope 内或者通过使用 EnlistTransaction 方法打开与相同服务器和数据库的多个并发连接时,也将发生事务升级。

从 3.5 版开始,如果并发连接的连接字符串完全相同,将不升级事务。有关事务和避免事务升级的详细信息,请参阅 System.Transactions 与 SQL Server 集成 (ADO.NET)

note备注
Microsoft Azure SQL Database 可能不保留当前数据库 (DBTS) 在跨故障转移期间未提交的时间戳值。

在 Microsoft Azure SQL Database 中,READ_COMMITTED_SNAPSHOT 和 ALLOW_SNAPSHOT_ISOLATION 数据库选项都设置为 ON。因为不支持 ALTER DATABASE Transact-SQL 语句中的 SET <snapshot_option>,所以无法更改这些数据库选项。有关基于行版本控制的隔离级别的详细信息,请参阅理解基于行版本控制的隔离级别

Microsoft Azure SQL Database 使用的默认数据库排序规则是 SQL_LATIN1_GENERAL_CP1_CI_AS。其中,LATIN1_GENERAL 是英语(美国),CP1 是代码页 1252,CI 是不区分大小写,AS 是区分重音。

在使用内部 SQL Server 时,你可以在服务器、数据库、列和表达式级别设置排序规则。Microsoft Azure SQL Database 不允许在服务器级别设置排序规则。若要将非默认的排序规则用于 Microsoft Azure SQL Database,请使用“创建数据库排序规则”选项设置排序规则,或者在列级别或表达式级别设置排序规则。SQL Database 不支持在 Alter Database 命令中使用 Collate 选项。默认情况下,在 SQL Database 中,临时数据将具有与数据库相同的排序规则。有关如何设置排序规则的详细信息,请参阅 SQL Server 联机丛书中的 COLLATE (Transact-SQL)

Microsoft Azure SQL Database 不支持没有聚集索引的表。表必须具有聚集索引。如果创建没有聚集约束的一个表,必须首先创建聚集索引,然后才能对该表执行插入操作。

例如,下面的 Transact-SQL 创建一个新表,对该表创建一个聚集索引,然后向该表插入数据。如果未创建聚集索引就执行插入操作,将导致错误。

CREATE TABLE Table1 (Col1 int, Col2 char(20))
CREATE CLUSTERED INDEX Table1_Index ON Table1 (Col1)
INSERT INTO Table1 VALUES (1, 'string1')

出于安全原因,不允许使用某些用户名。不能使用下列名称:

  • admin

  • administrator

  • guest

  • root

  • sa

所有新对象的名称都必须符合 SQL Server 标识符规则。有关详细信息,请参阅标识符

此外,登录名和用户名不得包含 \ 字符(不支持 Windows 身份验证)。

Microsoft Azure SQL Database对共享资源提供一个大型的多用户数据库服务。为了向所有 Microsoft Azure SQL Database 客户提供很好的体验,你与该服务的连接可能会由于以下情况而关闭:

  • 过多的资源使用

  • 已空闲 30 分钟或更长时间的连接(有关详细信息,请参阅空闲连接复原

  • 由于服务器失败而进行的故障转移

note备注
可允许的最大持续时间随资源使用情况而变化。空闲 30 分钟的已登录会话将被自动终止。我们强烈建议你使用连接池并且在完成连接的使用后始终关闭连接,以便未使用的连接将返回到池。有关连接池的详细信息,请参阅连接池

在关闭与服务的连接时,你将收到错误。有关该错误的详细信息,请参阅Connection-Loss Errors

Azure SQL Database 应用程序应确定关闭的连接是否由暂时性错误导致。如果关闭的连接由暂时性错误导致,应用程序应可以重新建立连接并执行失败的命令或查询。有关重试关闭的连接的详细信息,请参阅:

另请参阅

显示:
© 2015 Microsoft