我如何调试非常慢的提交时间
本文关键字:非常 提交 时间 调试 何调试 | 更新日期: 2023-09-27 18:19:11
我相信在我们的数据库中,对于简单的1行插入,一些提交需要花费长达10秒的时间来完成。我的证据是,即使创建订单的c#应用程序代码首先在数据库中检查重复的订单,如果发现重复的订单,就会拒绝请求,但我还是会在很小的比例的时间内看到一些重复的订单。
我的理论是,第一个订单在缓慢提交期间处于limbo状态,当创建重复订单时,重复检查通过,因为前一个订单尚未提交到数据库。我有几个问题:
- 这可能吗?
- 如果是这样,我如何验证这是正在发生的事情?
- 最可能的原因是什么?
- 我应该采取什么步骤来确定原因?
到目前为止,我已经尝试查看"性能监视器",但我不确定我应该寻找什么,没有看到任何相关的东西。同样,我也不清楚如何找到相关的日志文件,或者是否需要打开额外的日志记录,或者如何做到这一点。
您所描述的是可能的,特别是对于多个并发用户同时使用的应用程序。
如果你能在本地环境中复制。您可以运行sql profiler来查看是否存在这种情况。或者您可能需要在创建订单的代码块周围添加一些调试信息。
在不知道如何实现代码的情况下,很难对原因进行评论(例如,您是否使用sql存储过程来检查订单存在和插入,或者您使用一些ORM工具,如实体框架,您是否已经使用事务和锁定等)
另外,如果单个记录需要超过10秒的时间来插入,我会建议你修复这个问题,因为它只是需要太长时间。