避免资源死锁:识别已打开的事务
死锁往往由于以下原因引起:
1、程序错误,比如一个事务需要操作两个表,由于程序错误在有时是先操作a表后操作b表,有时是先操作b表后操作a表,就有机会互相等待而造成死锁。
2、事务太大,大事务操作的表多,操作步骤也多,死锁的机会也多。
3、性能问题,有些语句性能太差,长时间的加锁容易与其他事务形成死锁。
因为打开的事务可能会死锁资源,引发性能的问题,所以了解在一个专用数据库中哪些事务是打开的是很有帮助的。被死锁的资源可能堵塞其他数据库的用户。
为了找出这些已打开的事务就要查询master数据库中的sysprocesses表。sysprocesses表有一个open_tran的列,它表示已有命令是否是一个打开的事务。如果值大于0表示它是一个已经打开的事务。sysprocesses表还有一个spid的列,表示正在访问SQL Server的系统进程的id。你可以使用spid列作为DBCC INPUTBUFFER()系统函数的参数。只有SQL Server的sysadmins帐号才可以执行这个函数。这个函数的输出首先是spid对应的255字符的命令。你可以由此确定哪个命令是影响数据库性能的罪魁祸首,然后根据spid发出一个KILL命令。
解决死典型方法:(来自微软http://support.microsoft.com/kb/832524/zh-cn)
• | 添加和删除索引。 |
• | 添加索引提示。 |
• | 修改应用程序来访问资源类似模式中。 |
• | 从事务像触发器删除活动。 默认情况下, 触发器是事务。 |
• | 保持事务尽可能地短。 |
转载于:https://www.cnblogs.com/choi/archive/2007/01/24/629218.html
避免资源死锁:识别已打开的事务相关推荐
- 事务_进程 ID 57_与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务
事务_进程 ID 57_与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品.请重新运行该事务 问题描述 执行下面这个SQL查询语句时,经常会报这个错!事务_进程 ID 57_与另一个进程被死锁在 ...
- 怎么解决在打开Visual Studio时的报错“无法找到一个或多个组件”以及关于Visual Studio Installer无法识别已安装的VS并报错找不到路径的问题
第一个问题:打开Visual Studio时的报错"无法找到一个或多个组件". 情况1:如果是点击安装后桌面生产的Visual Studio的快捷方式而导致出错,建议定位到Visu ...
- linux lsof 已打开的文件列表
lsof是系统管理/安全工具.将这个工具称之为lsof真实名副其实,因为它是指"列出打开文件(lists openfiles)".而有一点要切记,在Unix中一切(包括网络套接口) ...
- CV:基于face库利用cv2调用摄像头(或视频)根据人脸图片实现找人(先指定要识别已知人脸的文件夹转为numpy_array+输入新图片遍历已有numpy_array)
CV:基于face库利用cv2调用摄像头(或视频)根据人脸图片实现找人(先指定要识别已知人脸的文件夹转为numpy_array+输入新图片遍历已有numpy_array) 目录 输出结果 设计思路 核 ...
- usb计算机连接无法连接电脑,如何用数据线连接计算机总是提示无法建立连接,并且USB调试已打开. -...
您好,建议您更换数据线并再次进行测试. 感谢您的支持,祝您生活愉快! 尊敬的三星用户,您好!建议您按照以下步骤操作: 1. 在待机状态下,单击[取消]-[应用程序]-[开发]-[USB调试],单击复选 ...
- 如何利用 Selenium 对已打开的浏览器进行爬虫
大家好! 在对某些网站进行爬虫时,如果该网站做了限制,必须完成登录才能展示数据,而且只能通过短信验证码才能登录 这时候,我们可以通过一个已经开启的浏览器完成登录,然后利用程序继续操作这个浏览器,即可以 ...
- usb调试模式已打开,adb devices显示List of devices attached 解决办法!纽维K333一键ROOT,获取ROOT权限!...
usb调试模式已打开,adb devices显示老显示List of devices attached .刚开始以为USB线问题,跟朋友借了一根,未果. 更换其他的机子测试就可以显示设备,但是这部纽维 ...
- linux 强制刷新文件,vim 如何刷新或重载reload 已打开的文件
Ref:vim 如何刷新或重载reload 已打开的文件 Just use :e to reload the file. I believe, if you've made changes to t ...
- C# WinForm 在窗口菜单上显示已打开窗体的标题及其窗体的排列
1. C# WinForm 在窗口菜单上显示已打开窗体的标题 设置窗体菜单的MdiList属性为 True 2.窗体的排列 Code // // 平铺 base.LayoutMdi(MdiLayou ...
最新文章
- NOI 2013 矩阵游戏
- 给指定服务器加路由,无线路由器如何给终端分配指定的IP地址?
- HDU 2234 IDA*
- perfdog 性能狗之Jank
- 高分选手讲解:如何突破思维圈限,从NLP角度挖掘新的解题思路
- 使用PowerDesigner进行面向对象分析与UML建模(转)
- ATP-EMTP中的LCC模块电缆线路阅读bergeron模型与JMarti模型数据卡
- mybatis-plus整合p6spy
- 网络参数配置与常用网络命令使用
- postgresql创建序列
- android studio实现视频聊天,实现视频通话
- 设备综合效率(OEE)的计算方法
- python 处理 Excel 表格
- 评四女作家的×龙戏凤 (原版)
- 变分法求解两点间直线距离最短
- 这届年轻人为什么不过618?
- linux 配置 ftp 服务器以及 ftp 客户端登录
- OpenGL: gluLookAt函数的含义
- 解决MySQL远程过程调用失败
- 【山外笔记-计算机网络·第7版】第13章:计算机网络名词缩写汇总
热门文章
- angular搭建项目步骤_建立健康的Angular项目应采取的步骤
- 将Spring Boot项目打包成jar包war包
- oracle anbob,Tag Archives: oracle安装 | ANBOB
- JavaScript有哪三部分组成?
- APP不同上线情况对应的测试流程
- Attach Volume 操作(Part II) - 每天5分钟玩转 OpenStack(54)
- mysql select * f
- php_mongo.dll下载(php操作mongoDB需要)
- VS2005字符串资源不能识别转义字符
- 基于java+jdbc+servlet+jsp实现图书商城