接上文:SQL Azure数据库部署最佳实践(上) 如果你运行一个长事务,或者如果连接空闲时间过长,SQL Azure也会切断现有连接。在这两种情况下,阈值是五分钟。那么,你将如何处理呢?你可以在最短时间内保持连接打开避免闲置事务。一旦你执行完一条命令、关闭连接并把连接返回到池中。
演示代码如下: using (SqlConnection cn = new SqlConnection(…)) { cn.Open(); using (SqlCommand cmd = cn.Creat……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
如果你运行一个长事务,或者如果连接空闲时间过长,SQL Azure也会切断现有连接。在这两种情况下,阈值是五分钟。那么,你将如何处理呢?你可以在最短时间内保持连接打开避免闲置事务。一旦你执行完一条命令、关闭连接并把连接返回到池中。
演示代码如下:
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打交道时可能遇到的几个问题,并提供了如何处理这些问题的指南和最佳实践。
作者
相关推荐
-
不安全的Firebase数据库使关键数据面临风险
当开发人员无法对支持其移动应用程序的数据库或云实例执行身份验证时,这里会发生一种最简单且最具破坏性的安全事件。 […]
-
真正的甲骨文云战略vs. AWS和Azure
如今,甲骨文云战略正遭受重创。原产品开发主管Thomas Kurian离开,加盟谷歌云计算部门,再加上甲骨文混 […]
-
FaunaDB分布式云数据库瞄准事务性NoSQL
作为云计算平台领导者,近日AWS在其NoSQL软件-DynamoDB中增加了对事务处理工作负载的支持,从而进一 […]
-
Amazon RDS on VMware扩展内部云数据库
VMware和AWS公司围绕混合云深化了合作伙伴关系,并推出产品使VMware客户可在自己数据中心内访问亚马逊 […]