Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net NHibernate SQL Server挂起的进程_.net_Sql Server 2005_Nhibernate_Process_Locking - Fatal编程技术网

.net NHibernate SQL Server挂起的进程

.net NHibernate SQL Server挂起的进程,.net,sql-server-2005,nhibernate,process,locking,.net,Sql Server 2005,Nhibernate,Process,Locking,我遇到了一个问题,我希望有人能帮我指明方向。 在.NET3.5和NHibernate1.2上开发了几年的应用程序。 在过去的一周里,我们遇到了一个问题,交易似乎被随机锁定。我注意到NH的命令超时为100000。我现在已经把这个数字降到了30,因为100000看起来很疯狂!这些问题仍在发生 SQL Server活动监视器在问题发生时(通常处于挂起状态)显示阻止事务。如果我杀死了阻塞进程,那些被阻塞的进程就会被关闭,系统就正常了 通过对阻塞过程进行检查,我可以看到导致问题的是正在执行的近似SQL语句

我遇到了一个问题,我希望有人能帮我指明方向。 在.NET3.5和NHibernate1.2上开发了几年的应用程序。 在过去的一周里,我们遇到了一个问题,交易似乎被随机锁定。我注意到NH的命令超时为100000。我现在已经把这个数字降到了30,因为100000看起来很疯狂!这些问题仍在发生

SQL Server活动监视器在问题发生时(通常处于挂起状态)显示阻止事务。如果我杀死了阻塞进程,那些被阻塞的进程就会被关闭,系统就正常了

通过对阻塞过程进行检查,我可以看到导致问题的是正在执行的近似SQL语句,但这是一个在系统的大部分部分执行的语句,在大多数页面上检索公共数据

我认为这是什么原因造成的?没什么明显的。。。我们确实发布了一些小的更改,但是没有一个会有这样的效果。Windows更新/service Pack最近也在同一时间安装。SQL/.NET SP更新是否会导致此问题

我知道这里有很多东西,但我现在正努力给予尽可能多的东西

新信息:
现在命令_tinmeout已更新到30秒,超过此执行时间的查询将自动终止——或者我在活动监视器中看到的情况。然而,似乎还有一些事情正在发生,因为重复查询也会因超时而失败。但是,如果我停止并启动应用程序池,一切都开始正常工作,至少在一段时间内是这样。

当您说这是一个非常常见的查询,您认为它是阻塞查询时,它很可能是因为它通常被执行,因此很可能是等待数据库锁定的查询

数据库运行的隔离级别是什么?如果是现成的设置,那么在大多数情况下,将其切换到快照隔离以避免读卡器等待写入器对于性能来说是非常可行的


考虑到造成这种情况的原因,可能是您引入了一些缓慢的写查询,您的数据变大了,或者您的数据突然出现了很多碎片。

谢谢您提供的信息。看起来问题中的查询主要是一个select查询,在任何时间点最多从表中读取3行。检查慢写查询的最佳方法是什么?这取决于复制的容易程度。Ín activity monitor查找blocked by列,然后您可以看到您的select正在等待什么,另一个选项是跟踪或查看SQL server中DMV中的历史记录