我认为,对于简单的1行插入,我们数据库上的一些提交最多需要10秒才能完成。我的证据是,即使创建订单的C#应用程序代码首先在数据库中检查重复项,并且如果找到请求,也拒绝该请求,我在很短的时间内看到了一些重复订单。
我的理论是,在缓慢提交期间,第一个订单处于不稳定状态,并且当创建重复订单时,重复检查会通过,因为之前的订单尚未提交到数据库。我有几个问题:
到目前为止,我已经尝试过查看"性能监视器,"但我不确定我应该寻找什么,并且没有看到任何相关的东西。同样,我不清楚如何找到相关的日志文件,或者我是否需要打开其他日志记录,或者如何执行此操作。
答案 0 :(得分:1)
您所描述的内容是可能的,特别是对于多个并发用户同时使用的应用程序。
如果您可以在本地环境中重现它。您可以运行sql profiler以查看是否是这种情况。或者您可能需要在创建订单的代码块周围添加一些调试信息。
很难在不知道如何实现代码的情况下对原因发表评论(例如,您是否使用sql存储过程来检查订单是否存在并插入或使用某些ORM工具如实体框架,您是否已使用事务和锁定等)
此外,如果单个记录插入时间超过10秒,我建议您修复它,因为它只需要太长时间。