SQL Azure运用最佳实践进行数据库部署(2)

接上文:SQL Azure运用最佳实践进行数据库部署(2)

对于运行一个较长的事务,或者说该事务在连接的情况下被空闲的时间较长,SQL Azure就会切断现有连接。如果为了避免被SQL Azure切断,就必须在5分钟以内解决以上两个问题。就短短的那5分钟时间,你将如何快速的去处理呢?这就需要你在最短时间内保持连接打开避免闲置事务。当你执行完一条命令是,赶紧在有限时间内关闭连接同时把链接返回到池中。

演示代码如下:

using (SqlConnection cn = new SqlConnection(…))
{
cn.Open();
using (SqlCommand cmd = cn.CreateCommand())
{
cmd.CommandText = …;

}
}

当链接放入池中时,连接失效的几率是最小的。不过,如果你的命令执行超过五分钟并且很难处理则您的连接将由SQL Azure关掉。您可以把更新划分为若干批量的小任务。除此之外,需要确保数据库是索引良好的。

由于系统负载过高,SQL Azure限制数据库活动时您的连接也会断开。

为了防止在任何情况下的连接断开,应开发SQL Azure的应用程序使它们能够处理连接的错误并且不用用户参与即可透明的重连接。

此外,您可能需要添加代码来处理因为超时或者连接断开时对数据库进行的更新重试。这将是大量的额外代码,但幸运的是微软已经做了一些工作。在微软AppFabric客户咨询小组网站上检索到“Best Practices for Handling Transient Conditions in SQL Azure Client Applications”这篇文章。该文介绍了可能遇到的连接错误并给出如何处理它们的示例代码。该文结尾有一个链接可以让你下载示例代码。

最后一个建议是如何获得SQL Azure的客户支持。如果您的应用程序遇到问题并需要帮助,请先确保您获得应用程序会话的ID。SQL Azure在他们的网站上记录错误和活动。如果你给他们会话ID,支持团队可以更容易弄清楚是怎么回事。

下面的C#代码显示了如何检索连接的会话ID:

cmd.CommandText = "Select CONVERT(nvarchar(36), CONTEXT_INFO())";
SessionId = new Guid(cmd.ExecuteScalar().ToString());

本文讨论了若干开发人员和数据库管理员在与SQL Azure打交道时可能遇到的几个问题,并提供了如何处理这些问题的指南和最佳实践。

时间: 2024-10-26 01:28:43

SQL Azure运用最佳实践进行数据库部署(2)的相关文章

SQL Azure运用最佳实践进行数据库部署

尽管SQL Azure对于SQL Server的大多数最佳时间都适用,并且它的产生与发展都基于SQL Server技术的,不过在构建新类型的应用系统时,如果遇到一些体系结构和特征存在一定的差异,这就需要转变思路来进一步的考虑和深究. 比如当数据库负载过多时,就需要我们找出问题的原因,是数据库连接方式不对还是SQL Azure数据源连接不畅,同时开发应用程序去处理在传统SQL Server应用程序中未遇到的一些问题.以下是对SQL Azure数据库部署所提供的若干建议和最佳实践. 假如您的前端应用

SQL Server - 最佳实践 - SSMS配合BCP迁移SQL Server数据库上阿里云

本文讨论的主题是使用SSMS(SQL Server Management Studio)配合BCP命令行的方式来迁移SQL Server数据库.使用SSMS做数据库结构迁移,使用BCP命令做全量数据迁移,此方案是以本地SQL Server数据库迁移到阿里云RDS SQL Server 2012为例. 如果你觉得读取文章不够直观,请点击观看Youku视频,近25分钟的视频详细介绍来如何使用SSMS + BCP迁移SQL Server数据库上阿里云RDS SQL Server.使用SSMS+BCP迁

PostgreSQL 最佳实践 - pg_rman 数据库恢复示例 与 软件限制解说

背景 pg_rman备份已经讲完了,接下来讲一下数据恢复. 由于pg_rman使用了物理备份,所以恢复时,与普通物理备份的恢复原理是一样的. 需要将数据文件恢复,同时需要提供recovery.conf,在recovery.conf中指定需要恢复到哪个位置,以及如何获取XLOG归档文件等配置. 数据库恢复 pg_rman数据恢复时的两个必要要素 1. 新的$PGDATA 2. 备份目录 命令的选项也很简单,甚至可以不指定任何option Restore options: The parameter

使用Docker部署Python应用的一些最佳实践

问题描述 本篇文章源自作者团队在长期开发过程中总结的宝贵经验,其中Supervisor.Gunicorn以及Nginx更是在使用Python开发Web应用时最常用的软件,因此对于打算使用Docker部署Python应用的读者而言,这些最佳实践是很有参考价值.同时希望各位在日常实践过程中,也能将各自踩到过的"坑"以及宝贵的经验分享出来,大家共同进步!我们可以使用Docker简单而高效的部署Python应用,同时,也有一些最佳实践来帮助我们愉快的完成部署.当然,也不是说这些最佳实践就是完成

细数选择云数据库SQL Azure的六大理由

众所周知,在微软的云计算战略中云操作系统Windows Azure.云数据库SQL Azure起到非常重要的架构作用.其中,Windows Azure主要包括三个部分,一是运营应用的计算服务:二是数据存储服务:三是基于云平台进行管理和动态分配资源的控制器(Fabric Controller).而数据库在整个微软云战略中发挥了重要的作用,特别是云数据库SQL Azure更是如此. 话说,SQL Azure是一个关系型云数据库,它可以在任何时间提供客户数据应用.SQL Azure底层是基于SQL S

新一代云数据库SQL Azure怎样炼成的?

众所周知,在微软的云计算战略中云操作系统Windows Azure.云数据库SQL Azure起到非常重要的架构作用.其中,Windows Azure主要包括三个部分,一是运营应用的计算服务:二是数据存储服务:三是基于云平台进行管理和动态分配资源的控制器(Fabric Controller).而数据库在整个微软云战略中发挥了重要的作用,特别是云数据库SQL Azure更是如此. 话说,SQL Azure是一个关系型云数据库,它可以在任何时间提供客户数据应用.SQL Azure底层是基于SQL S

云端数据库:微软SQL Azure及其应用场景

你们可以把它看成是SQL Server的云计算版本,但是又不能简单的把SQL Azure看成是构建在云端的SQL Server.SQL Azure 是一种可以部署在云端的关系型数据库,能在任何时间为客户提供基于关系型数据库的一种服务. 我们可以把它看成是SQL Server的云计算版本,但是又不能简单的把SQL Azure看成是构建在云端的SQL Server.SQL Azure 是一种可以部署在云端的关系型数据库,能在任何时间为客户提供基于关系型数据库的一种服务.SQL Azure具有四层结构

PostgreSQL 10.0 逻辑复制原理与最佳实践

标签 PostgreSQL , logical replication , 逻辑复制 , 最佳实践 背景 PostgreSQL 从2010年发布的9.0开始支持流式物理复制,备库可以作为只读库打开,提供给用户使用. 物理复制的好处 1. 物理层面完全一致,这是许多商业数据库的惯用手段.例如Oracle的DG. 2. 延迟低,事务执行过程中产生REDO record,实时的在备库apply,事务结束时,备库立马能见到数据.不论事务多大,都一样. 3. 物理复制的一致性.可靠性达到了金融级的需求,不

SQL Server系统数据库备份最佳实践

原文:SQL Server系统数据库备份最佳实践 首先了解主要的系统数据库: master 包含登录信息和其他数据库的核心信息 msdb 存储作业.操作员.警报.备份还原历史.数据库邮件信息等等. model 所有新数据库的模型,如果希望新数据库都有某些对象,可以在这里创建. tempdb sql server重启时重建,所以不需要备份 除了以上四种,其实还有一个数据库:Resource 从2005就引入的,一个只读.隐藏的数据库,包含所有在sql server中的系统对象.由于SQL SERV