C# 使用缓存提高SQL server的性能是否可行?
提高SQL Server 2008R2数据库和.Net 3.5应用程序速度的最常见且易于实现的解决方案是什么 我们有一个具有以下属性的应用程序:C# 使用缓存提高SQL server的性能是否可行?,c#,.net,sql,sql-server-2008-r2,redis,C#,.net,Sql,Sql Server 2008 R2,Redis,提高SQL Server 2008R2数据库和.Net 3.5应用程序速度的最常见且易于实现的解决方案是什么 我们有一个具有以下属性的应用程序: -少量同步客户端(最多约200个)。 -SQL server端的复杂数学操作 -我们在模仿oracle(因此使用tvf和storedprocs,而不是直接查询表) -主要的问题是,用户执行大量的更新/插入/删除/计算,他们会发疯,因为在这些操作完成时,他们需要等待页面重新加载 我需要澄清的问题如下: 更快的是:从sql server返回整个数据集,在C
-少量同步客户端(最多约200个)。
-SQL server端的复杂数学操作
-我们在模仿oracle(因此使用tvf和storedprocs,而不是直接查询表) -主要的问题是,用户执行大量的更新/插入/删除/计算,他们会发疯,因为在这些操作完成时,他们需要等待页面重新加载 我需要澄清的问题如下:
我们也欢迎您提供一般性的建议和意见。让我们将答案分为两部分:查询执行的性能和提高性能的缓存。 我认为您应该从解决SQL server上的负载开始,并尝试最大限度地优化其上运行的进程,这应该解决实现任何缓存的大部分需要 从您的问题来看,您的系统似乎同时用于事务处理和聚合/计算,当这两个任务相互锁定资源时,这通常会导致冲突。执行数学操作的长查询可能会锁定/保留UI所需的对象。 优化这些系统以并行工作并提高查询效率是提高性能的关键 首先,我将使用您的问题。什么更快?取决于您正在执行的实际聚合,如果您正在处理一组操作,即列的求和/平均值,请将其保存在SQL中;另一方面,如果您发现自己在过程中有光标,请将其移动到C#。游标将破坏您的性能! 您询问将数据聚合到一边,然后再查询该存储库是否是不好的做法,这是最佳做法:)。最终,您将拥有一个数据库来满足事务性、高节奏的客户机,另一个数据库存储聚合的信息,这将快速方便地满足您的其他需求。进入下一步,您将拥有一个数据仓库,因此,当您拥有大量信息和计算时,这绝对是您想要的方向 最后,缓存,这是一个棘手的问题,取决于您需求的具体性质,我要说的是,采用上述方法,花时间改进流程,我希望最终结果会使缓存变得多余 执行此任务的最佳朋友之一是SQL Profiler,在stmt:completed上运行跟踪,查看最长持续时间/io/cpu是什么,然后首先选择它们
祝你好运 绝对同意SQL分析器