导出 (0) 打印
全部展开

Azure SQL Database 开发注意事项

更新时间: 2013年12月

开发用于 Microsoft Microsoft Azure SQL Database的应用程序与开发用于 SQL Server 的应用程序非常相似。本主题将介绍在开发 Microsoft Azure SQL Database应用程序时的几点差异和一些注意事项。此外,本主题还提供了你作为开发人员需要执行的基本步骤并列出了建议的编码做法。

若要使用 Microsoft Azure SQL Database,你必须首先创建一个 Azure 平台帐户。该 Azure 帐户用于设置和管理你的订阅以及为 Azure、Azure AppFabric 和 Microsoft Azure SQL Database的使用计费。一旦创建 Azure 帐户后,你就可以使用 SQL Azure 门户来添加或删除 Azure SQL Database 服务器和数据库。还可以使用 Azure SQL Database 管理 API 以编程方式添加或删除 Azure SQL Database 服务器以及管理与服务器关联的防火墙规则。

Azure SQL Database 服务器是数据库的逻辑组并且充当多个数据库的中心管理点。在创建 Azure SQL Database 服务器时,将自动创建一个只读 master 数据库。master 数据库将跟踪有权创建数据库或其他登录名的登录名。只要你 CREATEALTERDROP 登录名或数据库,就必须连接到 master 数据库。有关 Microsoft Azure SQL Database 中的安全管理的详细信息,请参阅在 Azure SQL Database 中管理数据库和登录名

默认情况下,Azure SQL Database 防火墙会阻止对 Azure SQL Database 服务器的所有访问。要开始使用 Azure SQL Database 服务器,你必须指定允许访问 Azure SQL Database 服务器的一个或多个服务器级防火墙规则。可以使用“管理门户”用户界面来管理服务器级防火墙规则,也可以使用数据库管理 API 以编程方式进行管理。必须先按照Authenticating Azure SQL Database Management API Requests中所述添加用于身份验证的证书,然后才能使用数据库管理 API。

在创建服务器级防火墙设置后,可以使用服务器级别主体登录名和 master 数据库来查看和编辑防火墙设置。在 master 数据库中,防火墙设置称作“规则”。sys.firewall_rules 视图显示当前服务器级防火墙设置,而 sp_set_firewall_rulesp_delete_firewall_rule 存储过程允许你更改这些服务器级防火墙规则。

此外,如果要控制对 Azure SQL Database 服务器内某些数据库的访问,可以为这些数据库创建数据库级防火墙规则。可以为 master 和用户数据库创建数据库级防火墙规则。可以连接到数据库并在 sys.database_firewall_rules 视图中查看数据库级防火墙规则。master 和用户数据库中的 sp_set_database_firewall_rulesp_delete_database_firewall_rule 存储过程允许你更改相应数据库的数据库级防火墙规则。有关服务器级和数据库级防火墙规则的详细信息,请参阅 Azure SQL Database 防火墙

你可以通过使用 sys.database_usagesys.bandwidth_usage 系统视图,访问 Azure SQL Database 服务器上你的 Azure SQL Database 帐户的帐单详细信息。有关详细信息,请参阅Azure SQL Database 帐户和计费

以下是两种用来创建 Azure SQL Database 的方法:

有关如何将数据库从 SQL Server 的内部实例迁移到 Azure SQL Database 的详细信息,请参阅将数据库迁移到 Azure SQL Database(以前称为 SQL Azure)

此外,在如何使用 ADO.NET 连接到 Azure SQL Database 中提供的代码示例演示了如何在客户端应用程序代码中使用 CREATE DATABASE 语句。

note备注
若要在创建后更改你的数据库的版本和名称,你可以使用 ALTER DATABASE 语句。

有两种方法来生成和承载 Microsoft Azure SQL Database应用程序:

  • 在你自己的公司数据中心在内部承载你的应用程序代码,但在 Azure SQL Database 承载你的数据库。你的应用程序代码使用客户端库来访问 Azure SQL Database 中的数据库。有关可用的客户端库的详细信息,请参阅Azure SQL Database 指导原则和限制有关示例代码,请参阅如何使用 ADO.NET 连接到 Azure SQL Database 主题。

  • 在 Azure 中承载你的应用程序代码,在 Azure SQL Database 中承载你的数据库。你的应用程序可以使用相同的客户端库来访问 Azure SQL Database 中的数据库。在此情况下,你的客户端应用程序可以是桌面或 Silverlight 应用程序,该应用程序利用实体数据模型和 WCF 数据服务 客户端的优势来访问在 Azure SQL Database 中承载的数据。有关示例代码,请参阅如何通过 WCF Data Services 连接 Azure SQL Database

你可以通过在 Azure 平台中承载你的应用程序,尽量缩短对 Azure SQL Database 的请求的网络延迟时间。与在 Azure 外部承载的应用程序相比,通过将你的应用程序部署到 Azure,可在你的应用程序和 Azure SQL Database 之间提供更高效的事务。有关在云中承载你的应用程序和数据的详细信息,请参阅 Azure SQL Database Data Access

在同一区域或数据中心内,在 Azure SQL Database 与 Azure/Azure AppFabric 之间使用的带宽是免费的。在部署某一 Azure 应用程序时,应该将该应用程序和 Azure SQL Database 放置于同一区域中,以便节省带宽成本。有关详细信息,请参阅Azure SQL Database 帐户和计费

开发用于 Microsoft Azure SQL Database的应用程序与开发用于 SQL Server 的应用程序非常相似。在你开发访问 Microsoft Azure SQL Database的应用程序时,可以从多种应用程序类型和技术中进行选择。Microsoft Azure SQL Database可与第三方应用程序、PHP 和许多 Microsoft 应用程序(例如 ADO.NET、实体框架、WCF 数据服务 和 ODBC)一起使用。

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

  • 过多的资源使用

  • 长时间运行的查询

  • 在 BEGIN TRAN 和 END TRAN 语句之间长时间运行的单个事务

  • 空闲连接

这是与 SQL Server 的内部实例在工作方式上的差异。

为了在关闭连接时提供无缝的用户体验,在你的应用程序中纳入重试逻辑,以便检测到关闭的连接,然后完成中断的操作。有关 Microsoft Azure SQL Database中的连接限制的详细信息,请参阅Azure SQL Database 一般性的指导原则和限制

在客户端应用程序连接到 Microsoft Azure SQL Database时,将自动使用特定于会话的唯一 GUID 值设置CONTEXT_INFO (Transact-SQL)。检索此 GUID 值并且在你的应用程序中使用该值来跟踪连接问题。

下面的 C# 代码语句演示如何修改你的应用程序来跟踪连接。

另请参阅

显示:
© 2014 Microsoft