位置: 编程技术 - 正文

SQL2008中SQL应用之-阻塞(Blocking)应用分析(sql的应用)

编辑:rootadmin
通常短时间的阻塞没有问题,且是较忙的应用程序所需要的。然而,设计糟糕的应用程序会导致长时间的阻塞,这就不必要地锁定了资源,而且阻塞了其他会话读取和更新它们。

在SQL Server中,一个阻塞的进程会无限期地保持阻塞,或者直到它超时(根据set lock_timeout)、服务器关闭、进程被杀死、连接完成了更新或者其他发生在原始事务上的操作导致它释放了资源上的锁。

发生长时间阻塞的原因如下:

1、在一个没有索引的表上的过量的行锁会导致SQL Server得到一个锁,从而阻塞其他事务。

2、应用程序打开一个事务,并在事务保持打开的时候要求用户进行反馈或交互。这通常是让最终用户在GUI上输入数据而保持事务打开的时候发生。此时,事务引用的任何资源都会被占据。

3、事务BEGIN后查询的数据可能在事务事务开始前被调用

4、查询不恰当地使用锁定提示。例如,应用程序仅使用很少的行,但却使用一个表锁提示

5、应用程序使用长时间运行的事务,在一个事务中更新了很多行或很多表(把一个大量更新的事务变成多个更新较少的事务有助于改善并发性)

一、找到并解决阻塞进程

下面我们演示使用SQL Server动态管理视图sys.dm_os_waiting_tasks找出阻塞进程,该视图用于代替早期SQL Server版本中的系统存储过程sp_who

找出阻塞的进程后,我们使用sys.dm_exec_sql_text动态管理函数和sys.dm_exec_Connections(DMV)找出正在执行的查询的SQL文本,然后强制结束进程。

强制结束进程,我们使用kill命令。kill的用法,请参看MSDN: ID 要终止的进程的会话 ID。session ID 是在建立连接时为每个用户连接分配的唯一整数 (int)。在连接期间,会话 ID 值与该连接捆绑在一起。连接结束时,则释放该整数值,并且可以将它重新分配给新的连接。使用 KILL session ID 可终止与指定的会话 ID 关联的常规非分布式事务和分布式事务。■UOW 标识分布式事务的工作单元 (UOW) ID。UOW 是可从 sys.dm_tran_locks 动态管理视图的 request_owner_guid 列中获取的 GUID。也可从错误日志中或通过 MS DTC 监视器获取 UOW。有关监视分布式事务的详细信息,请参阅 MS DTC 文档。使用 KILL UOW 可终止孤立的分布式事务。这些事务不与任何真实的会话 ID 相关联,与虚拟的会话 ID = '-2' 相关联。可使标识孤立事务变得更为简单,其方法是查询 sys.dm_tran_locks、sys.dm_exec_sessions 或 sys.dm_exec_requests 动态管理视图中的会话 ID 列。■WITH STATUSONLY 生成由于更早的 KILL 语句而正在回滚的指定 session ID 或 UOW 的进度报告。KILL WITH STATUSONLY 不终止或回滚 session ID 或 UOW,该命令只显示当前的回滚进度。

在第一个查询窗口: 第二个窗口: 第三个窗口: 可以看出是SessionID为的会话阻塞了SessionID为的会话。 那么,正在干啥坏事呢?在第三个窗口中执行: 注意:这并不是第一个查询窗口中的原SQL语句,SQL Server进行了自动参数化计划缓存(预编译)。 我们强制终止会话。在第三个窗口中执行: 注意:窗口一的语句和窗口二的语句均终止。

提示:第三个语句中,使用sys.dm_exec_connections(DMV)返回了Session ID为的most_recent_sql_handle列。这是SQL文本在内存中的指针。作为sys.dm_exec_sql_text动态管理函数的输入参数使用。从sys.dm_exec_sql_text返回了text列,该列显示了阻塞进程的SQL文本。如果阻塞成串,必须通过blocking_session_id和session_ID列仔细查看每一个阻塞进程,直到发现原始的阻塞进程。

二、配置语句等待锁释放的时长

如果有一个事务或语句被阻塞,意味着它在等待资源上的锁被释放。我们可以事先通过set lock_Timeout来设定需要等待的时间。

语法如下:SET LOCK_TIMEOUT time_period

参数以毫秒为单位。超过时会返回锁定错误。示例:

在第一个窗口中执行: 在第二个窗口中执行: 解析:在这个示例中,我们设置了锁超时时间为毫秒,即1秒。这个设置不会影响资源被进程占有的时间,只会影响等待另一个进程释放资源访问的时间。

推荐整理分享SQL2008中SQL应用之-阻塞(Blocking)应用分析(sql的应用),希望有所帮助,仅作参考,欢迎阅读内容。

SQL2008中SQL应用之-阻塞(Blocking)应用分析(sql的应用)

文章相关热门搜索词:sql2008有什么用,sql2008有什么用,sql2008使用教程,sql2008r2使用教程,sql2008使用教程,sql2008使用,sql2008使用,sql2008r2使用,内容如对您有帮助,希望把文章链接给更多的朋友!

sqlserver打造自动备份的维护计划图解教程 其使用方法如下:(1)启动【sqlserverManagementStudio】,在【对象资源管理器】窗口里选择【管理】——【维护计划】选项。2)右击【维护计划】,在弹

SqlServer 自动备份并存储另一电脑上的存储过程函数 --FullBackUp--UseMasterCREATEproc[dbo].[bakup_DataBase]asDeclare@strPswvarchar()Declare@strUsrvarchar()Declare@strCmdShellvarchar()Declare@strDataBaseNamevarchar()Declare@FullFileNameVarchar(

通过创建SQLServer 到 Oracleg 的链接服务器实现异构数据库数据转换方案 1、新建链接服务器在图1中选中链接服务器,右键选择新建链接服务器,如图2,配置相关参数。2、配置相关参数在常规选项中,填写链接服务器名称,

标签: sql的应用

本文链接地址:https://www.jiuchutong.com/biancheng/319336.html 转载请保留说明!

上一篇:SQL2008中SQL应用之-锁定(locking) 应用分析(sql2008r2如何使用)

下一篇:sqlserver2005打造自动备份的维护计划图解教程(sqlserver2005简介)

  • 建筑企业差额征税如何开票
  • 企业税务包括哪些内容
  • 资源税改革是什么意思
  • 计提坏账部分收入怎么算
  • 企业发生的职工培训费应计入产品的制造成本
  • 投资者减除费用和工资薪金减除费用
  • 所得税申报表中的资产总额如何填
  • 防伪税控系统中的设备包括哪些
  • 销售商品的成本计入什么科目
  • 外出参加会议费用怎么算
  • 公司造成损失要员工承担吗
  • 增值税专用发票和普通发票的区别
  • 物业费收入的增值税税率是多少
  • 代开专票作废需要什么资料?
  • 去年的税金没有计提
  • 苗木公司经营理念
  • 跨月发票冲红账怎么做
  • 房地产开发项目土地使用权的取得方式
  • 车辆的增值税和消费税
  • 收到上年度企业所得税退税款
  • mac怎么把通知栏固定
  • mac电脑command+s
  • 未开票收入申报后又要开票
  • php常见面试问题
  • 苹果mac怎么删除照片
  • 房地产企业开发成本结转
  • PHP:apache_reset_timeout()的用法_Apache函数
  • 原材料赔偿会计分录
  • 厂房拆迁补偿多少钱一平
  • win11更新卡主
  • 苹果macOSBigSur是什么型号
  • PHP+MySQL之Insert Into数据插入用法分析
  • 开发商没交税
  • 差旅费的会计分录怎么做
  • 厂区绿化工程计入什么科目
  • 工程收到款项会计分录
  • framework在哪里打开
  • 2021年前端面试
  • 编程前十名
  • 小程序微信认证
  • calc下载
  • 交易性金融资产包括哪些项目
  • 自建房销售个人所得税如何计算
  • hashmap的使用场景
  • 母子公司吸收合并的税收有哪些
  • 公司吸收合并流程详细步骤
  • 固定资产清理是三栏式还是多栏式
  • 汇算清缴职工教育经费
  • 企业购买了数千亿资产
  • 水电费的收据单怎么写
  • 销售商品开票税目
  • 汽车租赁费怎么做分录
  • 收到采购材料发票款未付会计分录
  • 长期的待摊费用包括哪些
  • 对公账户收到钱有提示吗
  • SQL Transcation的一些总结分享
  • 开机出现系统错误怎么办
  • 用u盘重新装系统
  • wwSecure.exe - wwSecure是什么进程
  • window10重装显卡驱动
  • ubuntu20.04怎么用
  • win7 64位系统只有搜狗浏览器可以打开网页其他浏览器打不开的故障原因及解决方法
  • win7桌面没有了怎么办
  • win8开机启动项
  • win10周年版
  • quick cocos2dx-Lua中的自定义事件的使用
  • unity中
  • node.js console.log
  • Node.js Mongodb 密码特殊字符 @的解决方法
  • windows安装python pip
  • js定义类的三种方法
  • 手把手教你用python破解wifi
  • ECMAScript5(ES5)中bind方法使用小结
  • android studio操作指南
  • 棚改房办房产证用不用交费
  • 安徽省地方税务局公告2016年第1号
  • 江苏国税电子税务局网上申报流程
  • 国税地税征管
  • 江苏大丰属哪个市
  • 浙江电子税务局app
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设