`

SQL Server定时解锁

阅读更多

 

--未试用过,不知是否可行;

 

在使用用友U8财务系统的时候,经常发现有人将其他人锁住,使其工作停顿。使用定时任务将锁住他人的进程取消。

SQL SERVER系统中,没有找到一个设置可以指定在用户空闲多少时间后自动断开连接(本身对SQL SERVER就不是很感兴趣,又没有多少时间去研究学习。)。可是,在用友U8系统中,总是经常会出现有人将其他人锁住的情况(好象SQL SERVER的锁要比ORACLE的复杂),于是就不停的有人打电话过来说系统死掉了。刚开始的时候还发懵,我这边好好的,你怎么就死掉了呢?后来发现是锁的原因。也不知道是该埋怨SQL SERVER,还是该埋怨用友,想来想去,其他部门的只会埋怨我!

干脆自己写个任务,管你是正常任务,还是异常退出,反正只要锁住其他人超过10分钟,就把你干掉!

本以为事情了结了,结果发现用户还是很聪明的:以前可以跟他们说系统慢,让他们等会儿;现在可好,别人一打电话来就说,我的系统又锁住了,帮我解开!算了,时间缩短到5分钟吧。结果还不行!只好将等待时间减少到两分钟了。要是还打电话过来,就告诉他们,系统现在用的人很多,耐心等待两分钟就OK了!



/*
* 定时释放锁
* Pond Ka
* 2004年8月18日
* 试运行1.0
*
* 财务用友U8系统中,常常出现用户被其他用户锁住,系统不能正常运行的情况。
* 在这种情况下,需要手工将有锁的进程取消掉。
* 此功能将手工更改为自动运行。
*
* 在数据库系统中,作为任务,每1分钟运行一次。
*
* 取消进程的条件:
* 1、锁住了其他进程。
* 2、自身没有被其他进程锁住。
* 3、此进程已经空闲了2分钟以上。
*
*/


DECLARE
@USER_ID INT
, @KILLCMD VARCHAR(100)
, @WAIT_TIME INT
-- 设置空闲时间
SET @WAIT_TIME = 2;
-- 根据选择条件,选择出应该取消的进程
DECLARE cur_lock CURSOR FOR
SELECT spid
FROM master..sysprocesses
WHERE
DATEDIFF(minute, last_batch, getdate()) > @WAIT_TIME
AND blocked = 0
AND spid IN
(SELECT blocked
FROM master..sysprocesses);
-- 取消所有选择出的进程。
OPEN cur_lock;
FETCH NEXT FROM cur_lock INTO @USER_ID;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @KILLCMD = 'kill ' + CAST(@USER_ID AS VARCHAR);
EXECUTE (@KILLCMD);
FETCH NEXT FROM cur_lock INTO @USER_ID;
END;
CLOSE cur_lock;
DEALLOCATE cur_lock;

分享到:
评论

相关推荐

    组态王删除十天前的数据库信息组态王密码

    组态王支持与多种类型的SQL数据库进行交互,如Microsoft SQL Server、MySQL等。连接数据库时,用户需要提供正确的服务器地址、数据库名、用户名和密码。如果忘记或丢失了组态王密码,这将影响到数据库的正常操作。在...

    SQL数据库自动双重备份

    在IT行业中,数据库是至关重要的数据存储和管理工具,尤其是SQL数据库,如MySQL、SQL Server、Oracle等。在企业环境中,确保数据的安全性和可靠性是必不可少的。"SQL数据库自动双重备份"是一个关键的实践,旨在保护...

    数据库对比工具

    在安装完成后,用户需要这个激活码来解锁全部功能。激活码通常由一系列字母和数字组成,它是软件开发商为了防止非法复制和使用而采取的一种保护措施。用户需要按照软件内的提示输入这个激活码,以确保软件的合法使用...

    oraclesql语句

    5. **设置定时**:启用SQL*Plus中的定时功能,显示SQL语句执行时间。 6. **创建表**:创建`customer`表,包含客户姓名、性别、年龄等字段。 7. **创建关联表**:创建`buy`表,包含购买ID、购买名称、数量、价格及...

    mysql用户界面开发管理工具

    在描述中提到的“有激活码 挺好用的mysql工具 让你操作的时候像操作sqlserver一样方便”,这暗示了该工具具有类似SQL Server Management Studio的功能,为MySQL用户提供了一种熟悉的使用体验。 Navicat 是由...

    navicat10.zip

    Navicat是一款强大的数据库管理工具,它允许用户连接并管理多种类型的数据库,包括MySQL、SQL Server和Oracle,这正是标签所提到的三大数据库系统。Navicat10可能是其10.0版本,提供对这些数据库的集中管理和开发...

    NC系统管理员维护手册t.doc.docx

    - 备份:MS SQL Server提供了多种备份类型,如完整备份、差异备份和事务日志备份,手册可能指导如何使用SQL Server Management Studio执行这些操作。 - 恢复:涵盖使用T-SQL语句或Management Studio进行数据库恢复...

    最新VIP用户使用的》》》华中帝国2011解封版1433第3版

    1. **数据库管理**:华中帝国2011解封版1433是数据库管理系统,可能包含对SQL Server 1433端口的支持,这是SQL Server默认的远程连接端口。它允许用户创建、修改、查询和管理数据库,包括表、视图、存储过程等数据库...

    navicat适用于各种数据库

    这包括对MySQL、SQL Server等流行数据库系统的支持,使得数据库管理员、开发人员和分析师能够在不同的数据库环境中无缝工作。 描述中提到,Navicat是“完全免费”的,这一点需要澄清。实际上,Navicat有免费试用版...

    NavicatPremium12安装包

    【Navicat Premium】是一款强大的数据库管理工具,它支持多种数据库管理系统,包括MySQL、MariaDB、Oracle、SQL Server、PostgreSQL、SQLite以及SQL Server Azure等。这款软件以其多平台兼容性和用户友好的界面赢得...

    Visual C++程序开发范例宝典(光盘) 第四部分

    实例226 对SQLServer数据库进行录入和提取多媒体文件 实例227 对SQL Server数据库进行录入和存储Word文档 8.10 数据备份恢复 实例228 Access数据库备份与还原 实例229 SQL Server数据库备份与恢复 实例230 ...

    Visual C++程序开发范例宝典(光盘) 第八部分

    实例226 对SQLServer数据库进行录入和提取多媒体文件 实例227 对SQL Server数据库进行录入和存储Word文档 8.10 数据备份恢复 实例228 Access数据库备份与还原 实例229 SQL Server数据库备份与恢复 实例230 ...

    Navicat使用基础教程(转发)

    Navicat是一款强大的数据库管理工具,支持多种数据库系统如MySQL、Oracle、PostgreSQL、SQLite、SQL Server和MariaDB。它的核心功能在于提供了一个统一的图形用户界面(GUI),使得数据库的管理和操作变得更为便捷和...

    Navicat_Premium_cs数据库连接

    【Navicat Premium cs数据库连接】是一款强大的数据库管理和开发工具,专为支持多种数据库系统而设计,包括MySQL、MariaDB、Oracle、SQL Server等。它以其直观的用户界面和丰富的功能集,使得数据库管理和开发变得...

    Navicat11.rar

    Navicat11是该系列的一个版本,适用于多种数据库管理系统,包括MySQL、PostgreSQL、Oracle、SQL Server等。这个压缩包"Navicat11.rar"包含了安装程序和可能的注册机文件,用于激活软件。 首先,Navicat11的安装过程...

    Navicat Premium_11.2.7简体中文版.zip

    Navicat Premium是一款备受赞誉的多数据库管理工具,专为MySQL、MariaDB、Oracle、SQL Server等多种数据库提供一体化的解决方案。该软件的11.2.7简体中文版尤其受到中国用户的欢迎,它为数据库开发人员和管理员提供...

    好用的数据库客户端工具nacicat 9 中文版带注册码

    - **多数据库支持**:Navicat 9支持多种主流数据库类型,包括MySQL、Oracle、SQL Server、PostgreSQL等,让用户在一个统一的界面下管理不同类型的数据库。 - **数据可视化**:提供图表和报表生成功能,帮助用户直观...

    公共自行车租赁系统站点控制软件设计与实现-第3章.pdf

    通常,这类系统可能采用Java或C#等后端语言进行服务器端开发,利用数据库技术如MySQL或SQL Server来存储和管理大量数据,前端可能采用HTML5、CSS3和JavaScript构建用户交互界面。同时,为了实现高效的数据传输,可能...

    navicat 免安装

    Navicat 是一款强大的数据库管理工具,由 PremiumSoft 公司开发,提供了一站式的解决方案,让用户能够轻松地通过图形化界面管理多种数据库类型,包括 MySQL、MariaDB、Oracle、SQL Server、PostgreSQL 和其他更多。...

Global site tag (gtag.js) - Google Analytics