Sql server 如何查找IIS/SQL超时的原因?
我在IIS上有一个web服务,这个服务已经很好用了几个月了,但是现在我超时了,我不知道如何诊断问题所在 客户端将“心跳”消息中的基本信息发送给IIS,然后IIS在SQL数据库(在不同的服务器上)中更新这些信息。在野外有250个客户,每5分钟都会发送一次心跳。。。因此,表中只有250行,在用于更新的列上有适当的索引 通常更新只需要50-100毫秒,但从上周开始,你可以看到IIS日志中的响应时间增加了,我也有超时的情况 设置没有改变,所以我不知道我在寻找什么来确定原因。我得到的错误是: System.ServiceModel.FaultException:更新时出错 条目。有关详细信息,请参阅内部异常。发生错误 在更新条目时。有关详细信息,请参见内部异常 详细信息。执行超时已过期。在此之前已过超时时间 操作完成或服务器没有响应。这个 语句已终止。等待操作超时 关于从哪里开始寻找,有什么建议吗?我确实在IIS中启用了失败的请求日志跟踪,但如果我完全诚实的话,我不知道这意味着什么。成功的request与失败的request之间的区别在于请求日志在“AspNetStart”条目之后停止 谢谢!Sql server 如何查找IIS/SQL超时的原因?,sql-server,entity-framework,web-services,iis,Sql Server,Entity Framework,Web Services,Iis,我在IIS上有一个web服务,这个服务已经很好用了几个月了,但是现在我超时了,我不知道如何诊断问题所在 客户端将“心跳”消息中的基本信息发送给IIS,然后IIS在SQL数据库(在不同的服务器上)中更新这些信息。在野外有250个客户,每5分钟都会发送一次心跳。。。因此,表中只有250行,在用于更新的列上有适当的索引 通常更新只需要50-100毫秒,但从上周开始,你可以看到IIS日志中的响应时间增加了,我也有超时的情况 设置没有改变,所以我不知道我在寻找什么来确定原因。我得到的错误是: System
标记服务可能会逐渐或突然变慢的原因有很多。糟糕的代码结构可能会导致服务器内存泄漏之类的事情,小到无法在测试过程中真正显示或导致问题,但当运行数周/数月后开始累积。如果这是面向公众的服务,或者有指向面向公众服务的链接,则未经授权的请求可能以您的服务器为目标 需要注意的事项:
- 这种情况是在一天中的特定时间发生还是在一整天中发生
- Web服务器和DB服务器上的内存和CPU使用情况如何
- 您的数据库设置为哪种恢复模式
- 发送日志(.mdx文件)的大小是多少
- 您是否有定期的数据库备份和索引维护
- 在给定的一天内,所有表中有多少条记录被插入或更新
- 对于插入的记录,PKs使用的是什么?(Ints与UUID)如果使用UUID,您是在使用
还是NEWSEQUENTIALID()
/NEWID()
Guid.New()
NEWID()
或GUID.New()
组合将导致相当多的索引碎片。如果GUI对客户端不可见,则应使用NEWSEQUENTIALID()
。如果ID是通过代码设置的,那么您可以找到一些实现来生成顺序GUID。(这是重新安排组成GUID的部分的问题)定期索引维护是在索引字段中使用UUID列的要求
- 您是否在web服务中使用依赖项注入
- 执行更新的DBContext的生存期范围是什么
- 您正在运行SQL探查器吗