最近数据库老是死锁,系统老是写不进数据,或者很多用户,只有某部分用户才能输入,正在想,是不是程序中用了一些语句把某些表给锁死了呢? 想知道检查的方法,首先是不是先看看数据库里,哪些表给锁了呢?(如果数据写不进的时候),在SQL 2005管理界面里直接可以看吗?另外,是不是代码中会引起这样的死锁的?存储过程也有可能的。是吗?(一个数据库,对应着很多应用程序,这可费时间去查了。。-_-)之前从来没遇过这样的情况,请大家指导一下小弟了。:)谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用sp_who2 active查看进程被锁定的情况,判断一下原因再看看需要改那里, 只找到了下面的信息。:(1 BACKGROUND sa . . NULL RESOURCE MONITOR 0 0 04/03 15:14:38 1 0 2 BACKGROUND sa . . NULL LAZY WRITER 15 0 04/03 15:14:38 2 0 3 SUSPENDED sa . . NULL LOG WRITER 15 0 04/03 15:14:38 3 0 4 BACKGROUND sa . . NULL LOCK MONITOR 0 0 04/03 15:14:38 4 0 5 BACKGROUND sa . . master SIGNAL HANDLER 0 0 04/03 15:14:38 5 0 6 sleeping sa . . master TASK MANAGER 0 0 04/03 15:14:38 6 0 7 BACKGROUND sa . . master TRACE QUEUE TASK 0 0 04/03 15:14:38 7 0 8 sleeping sa . . NULL UNKNOWN TOKEN 0 0 04/03 15:14:38 8 0 9 BACKGROUND sa . . master BRKR TASK 0 0 04/03 15:14:38 9 0 10 BACKGROUND sa . . master TASK MANAGER 0 0 04/03 15:14:38 10 0 11 SUSPENDED sa . . master CHECKPOINT 62 149 04/03 15:14:38 11 0 12 BACKGROUND sa . . master BRKR EVENT HNDLR 15 33 04/03 15:14:38 12 0 13 BACKGROUND sa . . master BRKR TASK 0 0 04/03 15:14:38 13 0 14 sleeping sa . . master TASK MANAGER 0 0 04/03 15:14:38 14 0 15 sleeping sa . . master TASK MANAGER 0 5 04/03 15:14:38 15 0 16 sleeping sa . . master TASK MANAGER 0 5 04/03 15:14:38 16 0 17 sleeping sa . . master TASK MANAGER 0 10 04/03 15:14:38 17 0 18 sleeping sa . . master TASK MANAGER 0 5 04/03 15:14:38 18 0 19 sleeping sa . . master TASK MANAGER 0 0 04/03 15:14:38 19 0 20 sleeping sa . . master TASK MANAGER 0 5 04/03 15:14:38 20 0 21 sleeping sa . . master TASK MANAGER 0 6 04/03 15:14:38 21 0 66 RUNNABLE sa LG . master SELECT INTO 47 5 04/08 10:04:58 Microsoft SQL Server Management Studio - Query 66 0 事务处理完了,但是锁没解除,会出现这个问题。到你的程序里,搜索一下LOCK这个关键字。把你的所有存储过程,生成一个SQL脚本,搜索一下LOCK这个关键字。把目标逐渐缩小,再进行解决。 查过了,没有在程序或者SQL里用过LOCK这样的关键字,我强烈怀疑,是不是在一些SP里,用了TRANSACTION,但是里面有错误,没有把TRANSACTION做COMMIT或者ROLLBACK,而导致了死锁。 dbcc opentrans看看那些事务,进程锁住了。 dbcc opentran写错了,多加了个S 显示的东西看不太懂:(没看到有什么东西锁的。。No active open transactions.DBCC execution completed. If DBCC printed error messages, contact your system administrator. 如何用T-SQL建表 select搜索的问题 关于按最近生效日期的update 连接不上SQL server? 请问,查询一个表的数据不在另一个表中的数据 邹建老师:看了你的Blog的一片文章有些疑问 sql server 2000是否可以自动发邮件(internet)? SQL Server 2000中数据迁移到SQL Server 2005中(交流) 执行自定义函数如何不要加前缀[dbo].---------??? 谁能告诉我这两个查询的不同!!!嵌套查询中利用IN和exists的差异 再求:提取考勤信息的存储过程. 实在是搞不定了,特请教
2 BACKGROUND sa . . NULL LAZY WRITER 15 0 04/03 15:14:38 2 0
3 SUSPENDED sa . . NULL LOG WRITER 15 0 04/03 15:14:38 3 0
4 BACKGROUND sa . . NULL LOCK MONITOR 0 0 04/03 15:14:38 4 0
5 BACKGROUND sa . . master SIGNAL HANDLER 0 0 04/03 15:14:38 5 0
6 sleeping sa . . master TASK MANAGER 0 0 04/03 15:14:38 6 0
7 BACKGROUND sa . . master TRACE QUEUE TASK 0 0 04/03 15:14:38 7 0
8 sleeping sa . . NULL UNKNOWN TOKEN 0 0 04/03 15:14:38 8 0
9 BACKGROUND sa . . master BRKR TASK 0 0 04/03 15:14:38 9 0
10 BACKGROUND sa . . master TASK MANAGER 0 0 04/03 15:14:38 10 0
11 SUSPENDED sa . . master CHECKPOINT 62 149 04/03 15:14:38 11 0
12 BACKGROUND sa . . master BRKR EVENT HNDLR 15 33 04/03 15:14:38 12 0
13 BACKGROUND sa . . master BRKR TASK 0 0 04/03 15:14:38 13 0
14 sleeping sa . . master TASK MANAGER 0 0 04/03 15:14:38 14 0
15 sleeping sa . . master TASK MANAGER 0 5 04/03 15:14:38 15 0
16 sleeping sa . . master TASK MANAGER 0 5 04/03 15:14:38 16 0
17 sleeping sa . . master TASK MANAGER 0 10 04/03 15:14:38 17 0
18 sleeping sa . . master TASK MANAGER 0 5 04/03 15:14:38 18 0
19 sleeping sa . . master TASK MANAGER 0 0 04/03 15:14:38 19 0
20 sleeping sa . . master TASK MANAGER 0 5 04/03 15:14:38 20 0
21 sleeping sa . . master TASK MANAGER 0 6 04/03 15:14:38 21 0
66 RUNNABLE sa LG . master SELECT INTO 47 5 04/08 10:04:58 Microsoft SQL Server Management Studio - Query 66 0
到你的程序里,搜索一下LOCK这个关键字。
把你的所有存储过程,生成一个SQL脚本,搜索一下LOCK这个关键字。
把目标逐渐缩小,再进行解决。
dbcc opentrans看看那些事务,进程锁住了。
dbcc opentran写错了,多加了个S
DBCC execution completed. If DBCC printed error messages, contact your system administrator.