日期:2014-05-18  浏览次数:20590 次

sql2008数据库 死锁问题
数据库是sql2008

select * from tablename 查询的时候速度非常忙,而且数据库反应也慢,请问大家是不是这个表死锁了??

是什么原因造成的呢?

怎么解决呢?具体怎么操作? 谢谢大家!

------解决方案--------------------
用SQL Profiler跟踪下,应该是某个事务中对该表查询时没有加nolock引起

select * from tablename应该改成select * from tablename(nolock)
你查下是不是某些sp或function中没有加nolock
------解决方案--------------------
探讨
引用:
用SQL Profiler跟踪下,应该是某个事务中对该表查询时没有加nolock引起

select * from tablename应该改成select * from tablename(nolock)
你查下是不是某些sp或function中没有加nolock


我查了,是死锁了,那怎么去处理呢或者说解锁,才能恢复正常?

------解决方案--------------------
select * from tablename wit(nolock) --查询时不请求锁
------解决方案--------------------
探讨

引用:
用SQL Profiler跟踪下,应该是某个事务中对该表查询时没有加nolock引起

select * from tablename应该改成select * from tablename(nolock)
你查下是不是某些sp或function中没有加nolock


我查了,是死锁了,那怎么去处理呢或者说解锁,才能恢复正常?

------解决方案--------------------
select * from tablename所查询的数据表数据量是多少?有没有优化过?比如索引方面?
另外使用这句SQL的时间和环境如何?是不是有多人同时使用了这句代码?还是这句代码和其他会锁定这张数据表的语句在同一个事务里执行了?那可以试着加上select * from tablename with(nolock)试下。