Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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
C# 具有大量事务的MS SQL跟踪状态_C#_Sql Server_Architecture - Fatal编程技术网

C# 具有大量事务的MS SQL跟踪状态

C# 具有大量事务的MS SQL跟踪状态,c#,sql-server,architecture,C#,Sql Server,Architecture,我有一个系统,有多个应用程序服务器,它们接收并处理作业。每个作业有一组10-20个子记录,每个子记录有5-400个子记录。所有这些都驻留在三个具有外键关系的MS SQL表中 当这些作业在应用程序服务器中运行时,几乎需要实时状态。这是一项业务要求。因此,状态保持在与上面相同的三个MS SQL表中 因此,当这些作业运行时,它可以正常工作,直到某一点。然后它会退化,尤其是当运行具有更多子记录的作业时。问题是他们都在努力更新同三个表上的状态,而且有很多更新 我正在寻找关于如何保持实时状态的建议,但要减少

我有一个系统,有多个应用程序服务器,它们接收并处理作业。每个作业有一组10-20个子记录,每个子记录有5-400个子记录。所有这些都驻留在三个具有外键关系的MS SQL表中

当这些作业在应用程序服务器中运行时,几乎需要实时状态。这是一项业务要求。因此,状态保持在与上面相同的三个MS SQL表中

因此,当这些作业运行时,它可以正常工作,直到某一点。然后它会退化,尤其是当运行具有更多子记录的作业时。问题是他们都在努力更新同三个表上的状态,而且有很多更新

我正在寻找关于如何保持实时状态的建议,但要减少MS SQL数据库的负载。以下是我正在考虑的选项: 1.将状态详细信息分解为单独的表,上面三个表各一个。 2.将更新分块到SQL数据库 3.将状态写入文件,并通过web服务或其他方式检索实时状态


谢谢

听起来您在运行特定的Select/更新时也需要进行一些评测。。你在锁门吗。。或者不带锁地使用,例如。。您是否有经验丰富的DBA可以查看您的执行计划,并了解缺陷发生的地方?我已经了解了Visual Studio中的评测及其实体框架/SQL调用。在处理这些事务时,我还跟踪/分析了SQL数据库,在短时间内可能有1000次调用。让DBA对其进行分析是一个很好的建议。我没有,但正在考虑为此承包一个。有很多免费工具,你可以在线使用,例如,在谷歌上搜索如何优化和/或跟踪我的Sql中的性能问题。。也许你可以节省你的钱,而你唯一需要花费的就是时间去谷歌和研究/尝试推荐的最佳实践等等。。。