我管理一个包含多个在线交易的 ASP.NET MVC 3 网站。在网站上,客户可以下订单、支付账单,而供应商可以向客户开具账单。所有这些都可以同时发生,因此我有信号量来确保线程安全。
我注意到,大约每周一次,该网站会停滞十分钟。我的第一个问题是信号量中的死锁,但是在放置信号量日志并分析结果之后,似乎没有死锁。另外,十分钟后该网站会自行返回。
在调查过程中,我注意到整个网站都变得无响应,而不仅仅是使用信号量的部分。他们都严格使用数据库。这就是为什么我的主要怀疑是数据库。
更奇怪的是,每次网站都会卡住十几分钟,几乎是每秒一秒。 SQL Server 是否可以进行定期维护或可以解释这种延迟的任何原因?如果没有,您知道是什么原因造成的吗?
最佳答案
你的问题的答案似乎是"is"。环境中发生的某些事情导致了锁定。
您是否运行过 sp_who2 以查看停止时正在运行的内容?
如果不方便,则设置一个作业,每五分钟将 sp_who2 输出转储到表中。当它停止时,您可以从那里看到正在运行和工作的内容。
我遇到过类似的问题,主数据库似乎被锁定。因此,重命名数据库不起作用。幸运的是,这不是在实时交易环境中,因此等待五分钟并重试就可以了。
关于asp.net - SQL Server 停止十分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10853168/