sql server 2000数据库 最近经常出现某进程一直占用资源,阻塞?死锁?
OA的数据库最近多次出现某进程一直占用资源,导致其他进程无法执行。使用sp_who2 和 sql server profiler跟踪查询,发现有以下几个语句常常占用资源:
1、declare @P1 int set @P1=NULL declare @P2 int set @P2=0 declare @P3 int set @P3=0
exec sp_cursorprepexec @P1 output, @P2 output, N'@P0 nvarchar(4000)',
N'SELECT COUNT(*) AMOUNT FROM (
SELECT DISTINCT WFWorkItem.processChName as processChName,WFWorkItem.workItemDesc as workItemDesc,
...
from WFWorkItem ,WFWIParticipant
where WFWorkItem.workItemID = WFWIParticipant.workItemID
and (WFWorkItem.currentState = 10 AND WFWorkItem.participant = @P0 AND WFWIParticipant.partiInType=''EXE'')) T1 ',
4112, 1, @P3 output, N'chenhuifeng' select @P1, @P2, @P3
2、declare @P1 int set @P1=72 declare @P2 int set @P2=180150071 declare @P3 int set @P3=0
exec sp_cursorprepexec @P1 output, @P2 output, N'@P0 nvarchar(4000),@P1 nvarchar(4000)',
N'SELECT COUNT(*) AMOUNT FROM (
SELECT DISTINCT BH BH,BT BT,RQ RQ,
...
FROM V_CNMC_WFWOCANYULIUCHEN WHERE V_CNMC_WFWOCANYULIUCHEN.MKDM=@P0
and V_CNMC_WFWOCANYULIUCHEN.participant=@P1 ) T1 ', 4112, 1, @P3 output, N'411', N'puxin' select @P1, @P2, @P3
3、 set transaction isolation level read committed
这三条语句都是由普元eos工作流平台产生的,我们的OA使用了该平台,因此我们无法修改这些语句。
后来咨询数据库专家zz,回复说可能是sql server 2000 的问题。后来上网搜索,原来好多人遇到sql 2000出现数据库阻塞的现象,原因是sql2000在程序A对表Table1进行DML操作的时候,如果其他程序想Select 该Table1就会等待,知道程序A的DML操作结束,以免“脏读”。
我估计就是某DML操作一直进行,导致后面的select操作就一直等待。
新的问题又来了:
1、为什么以上列出的三条语句会一直占用资源?
2、OA已经用了至少5个年头,为什么最近会频繁出现阻塞?
3、之前有段时间出现过类似问题,但重启EOS服务就好了,然后一年多都没问题,这个又怎么解释?这一年也是每天用,总数据量也不大,目前工作流主表不到2W行数据。
暂时的解决方案是:升级sql server。
sql server 2000数据库 最近经常出现某进程一直占用资源,阻塞?死锁?的更多相关文章
- jTDS Java连接SQL Server 2000数据库
Java连接SQL Server 2000数据库时,有两种方法: (1)通过Microsoft的JDBC驱动连接.此JDBC驱动共有三个文件,分别 是mssqlserver.jar.msutil.ja ...
- 如何创建和还原SQL Server 2000数据库?
说明:这篇文章是几年前我发布在网易博客当中的原创文章,但由于网易博客现在要停止运营了,所以我就把这篇文章搬了过来,虽然现如今SQL Server 2000软件早已经过时了,但仍然有一部分人在使用它,尤 ...
- SQL Server 2000数据库备份与恢复图解
SQL Server 2000数据库备份与恢复图解 四个步骤:1.安装sql server 2000 2.数据库设置: 3.建立自动备份 4.还原数据库 具体图片见附件 本文出自 "李 ...
- 将Microsoft SQL Server 2000数据库转换成MySQL数据库
1. 下载并安装MyODBC.(如果是XP请下载5.3的旧版本,8.x的新版本运行有问题) 2. 创建一个空的MySQL数据库. 3. 在Windows >> 控制面板 >> ...
- SQL SERVER 2000数据库置疑处理
由于服务器意外的断电,导致SQL SERVER服务器上数据库出现“置疑”而无法使用,通过网上搜索,找到以下方法解决问题,这里记录一下: 产生数据库置疑的时侯,数据库文件和日志文件都是存在的,如果数据库 ...
- 加载MySQL、Oracle、SQL Server 2000、SQL Server 2005及以上版本 的加载数据库驱动程序
2018-11-04 20:00:59 开始 //getConnection(String url, String user, String password) //url:连接数据库的URL 3 ...
- 如何在64位系统上安装SQL Server 2000
如何在64位系统上安装SQL Server 2000? 现在用SQL Server 2000数据库的人少了吧?大都是SQL Server 2005/2008了.不过还是有需求的,今天一朋友就让我在他的 ...
- SQL Server 2000的安全配置
SQL Server 2000的安全配置 数据库是电子商务.金融连同ERP系统的基础,通常都保存着重要的商业伙伴和客户信息.大多数企业.组织连同政府 部门的电子数据都保存在各种数据库中,他们用这些数据 ...
- SQL Server 2000安装教程图解
SQL Server 2000安装教程图解... ============= 下面网盘链接中的SQL2000数据库在Win7和Win10系统上安装都是可以正常使用的,只不过是Win10上安装的话,需要 ...
随机推荐
- mysql存储过程详细教程
记录mysql存储过程中的关键语法:DELIMITER // 声明语句结束符,用于区分;CREATE PROCEDURE demo_in_parameter(IN p_in int) 声明存储过程 ...
- react-native 好多坑,记录下。
1 classpath 'com.android.tools.build:gradle:1.2.3' 2.adb reverse tcp:8081 tcp:8081 3.react-native ru ...
- svn的基线划分与管理
一.基线(服务端默认划分3条基线) trunk:表示开发时版本存放的目录,即在开发阶段的代码都提交到该目录上. branches:表示发布的版本存放的目录,即项目上线时发布的稳定版本存放在该目录中. ...
- Eclipse搭建GWT开发环境
1.下载Eclipse Kepler(4.3) 2.下载Maven Apache Maven Maven 3.下载JDK 4.设置系统变量Maven.JAVA_HOME.PATH. ...
- [转]Android音频底层调试-基于tinyalsa
http://blog.csdn.net/kangear/article/details/38139669 [-] 编译tinyalsa配套工具 查看当前系统的声卡 tinymix查看混响器 使用ti ...
- 贼溜的更新Android-SDK的方法(亲测很好用)
启动 Android SDK Manager ,打开主界面,依次选择「Tools」.「Options...」,弹出『Android SDK Manager - Settings』窗口:在『Androi ...
- R常见的几种常见统计图
1,向日葵散点图 2,热图 (颜色越深,数值越大) 3,折线图(散点图),绘制散点图集用 paris(data.frame)
- Spring+springmvc+Mybatis整合案例 annotation版(myeclipse)详细版
Spring+springmvc+Mybatis整合案例 Version:annotation版 文档结构图: 从底层开始做起: 01.配置web.xml文件 <?xml version=&qu ...
- loadrunner-VUserGen录制脚本及回放时注意的问题
乱码问题 1.1录制过程中的乱码(因为本机系统的编码格式跟被测系统的编码格式不一致导致): 1.2运行时的乱码(录制后的脚本编码格式跟被测系统的编码格式不一致导致): 解决:1.Tools-Recor ...
- De4Dot+Reflector 支持多种反混淆
官网: http://www.de4dot.com/ 源码:https://github.com/brianhama/de4dot 使用方法 通过CMD命令方式进入: F:\2\de4dot-v3-1 ...