微软工程师讲解SQL server阻塞(2)
发布时间:2008-01-05 14:02:00
标签:SQL,server,阻塞,数据库,微软
避免阻塞方法
1 .对每个查询使用查询超时。
2 .对每个查询使用锁定超时。有关更多信息,请参见自定义锁超时。
3 .使用绑定连接。有关更多信息,请参见使用绑定连接。
4 .SQL Server 本质上是受客户端应用程序操纵的傀儡。客户端应用程序对服务器上获取的锁几乎有完全的控制(并对锁负责)。虽然 SQL Server
锁管理器自动使用锁保护事务,但这受客户端应用程序发出的查询类型和对结果的处理方式的直接鼓动。因此,大多数阻塞问题的解决方案都涉及检查客户端应用程序。
5 .阻塞问题常要求检查应用程序提交的 SQL 语句本身,以及检查与连接管理、所有结果行的处理等有关的应用程序行为本身。如果开发工具不允许显式控制连接管理、查询超时、结果处理等,阻塞问题可能得不到解决。
设计应用程序以避免阻塞的准则
1. 不要使用或设计使用户得以填写编辑框的应用程序,编辑框会生成长时间运行的查询。例如,不要使用或设计提示用户输入的应用程序,允许某些字段保留空白或允许输入通配符。这可能导致应用程序提交运行时间过长的查询,从而导致阻塞问题。
2 .不要使用或设计使用户得以在事务内输入内容的应用程序。
3 .允许取消查询。
4 .使用查询或锁定超时,防止失控查询和避免分布式死锁。
5 .立即完成提取所有结果行。
6 .使事务尽可能简短。
7 .显式控制连接管理。
8 .在所预计的并发用户全负荷下对应用程序进行应力测试。


猜你喜欢
- 进程和线程的区别和联系终于开始加深难度,来到进程和线程的知识点~单就这两个概念,就难倒过不少初学者—&mdash
- 本文实例为大家分享了python3.4函数操作mysql数据库的具体代码,供大家参考,具体内容如下#!/usr/bin/env python
- 本文实例为大家分享了python实现石头剪刀布的具体代码,供大家参考,具体内容如下老师布置了一个石头剪刀布的作业,要可视化,还是先用代码实现
- 在asp里通过以下两个函数实现javascript里的escape函数和unescape函数加密功能。在ajax post或get时内容存在
- 写在前面今天在公司写了一段代码,判断一个变量是否为空值,由于判断的类型太少,code review的时候同事说还有很多类型没有考虑到,并且提
- 为了查找这些存储过程,你可以花时间在互联网搜索,查看一些你还未知道的存储过程,也许在一两个小时您可能会发现你想要...也许你很幸运的找到,其
- 简介:numba是Anaconda公司开发的针对Python的开源JIT编译器,用于提供Python版CPU和GPU编程,速度比原生Pyth
- 刚开始使用django,在创建第一个app时被提示不知道命令runserver,百度得出是环境变量的问题。1、配置python变量环境,C:
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 20 - A Few Mootools Tabs项
- 数据可视化动画还在用 Excel 做?今天分享一个简单的 Python 包就能分分钟搞定!而且生成的动画也足够丝滑,效果是酱紫的:这是一位专
- Python 作为当前最热门的编程语言之一,不仅仅是因为它的学习成本低、入门容易,还因为它具有丰富的生态环境,包括内置的模块以及第三方的库,
- text函数的功能是向数据点添加文本说明。语法text(x,y,txt)text(x,y,z,txt)text(___,Name,Value
- 乱码原因:源码文件的编码格式为utf-8,但是window的本地默认编码是gbk,所以在控制台直接打印utf-8的字符串当然是乱码了!解决方
- k8s 的调度器 kube-schedulerkube-scheduler 作为 k8s 的调度器,就好比人的大脑,将行动指定传递
- 代码需要先导入pandasarr的数据类型为一维的np.arrayimport pandas as pdarr[~pd.isnull(arr
- 索引初识最普通的情况,是为出现在where子句的字段建一个索引。为方便讲述,我们先建立一个如下的表。CREATE TABLE mytable
- #sidebar div#live_chat a { background: url("scroll/live_chat1.jpg
- 如何更改 pandas dataframe 中两列的位置:把其中的某列移到第一列的位置。原来的 df 是:df = pd.read_csv(
- 生成器是迭代器,同时也并不仅仅是迭代器,不过迭代器之外的用途实在是不多,所以我们可以大声地说:生成器提供了非常方便的自定义迭代器的途径。这是
- Python的线程操作在旧版本中使用的是thread模块,在Python27和Python3中引入了threading模块,同时thread