为了提高SQLServer2008R2数据库& .Net 3.5应用程序的速度,最常见和最容易实现的解决方案是什么?
我们有一个具有以下属性的应用程序:
我需要澄清的问题如下:
还欢迎提出一般性建议和意见。
发布于 2012-02-24 21:34:44
让我们将答案分为两部分:查询执行的性能和提高性能的缓存。我认为您应该从处理SQL服务器上的负载开始,并尽可能地优化运行在它上的进程,这将解决实现任何缓存的大部分需求。
从您的问题中可以看出,您的系统既用于事务处理,也用于聚合/计算,当这两个任务彼此锁定资源时,这通常会导致冲突。执行数学操作的长查询可能锁定/保存UI所需的对象。优化这些系统以并行工作,提高查询效率是提高性能的关键。
首先,我会用你的问题。什么更快?这取决于您正在执行的实际聚合,如果您正在处理一个集合操作,即列的SUM/AVG,则将其保存在SQL中;另一方面,如果您发现自己在过程中有一个游标,则将其移动到C#。游标会毁了你的表演!您询问了聚集数据和稍后查询存储库是否是错误的做法,这是最佳实践:)。最后,您将拥有一个满足事务性、高速客户端的数据库和另一个存储聚合信息的数据库,这将快速方便地提供给您的其他需求。进入下一步将导致您有一个数据仓库,所以当您有大量的信息和计算时,这绝对是您想要的方向。
最后,缓存,这是棘手的,并真正取决于您的需要的具体性质,我想说,采取上述方法,花时间改善过程,我希望最终的结果将使缓存冗余。
您最好的任务朋友之一是SQL,在stmt上运行一个跟踪,以查看最长的/io/cpu是什么,并首先对它们进行筛选。
祝好运!
https://stackoverflow.com/questions/9438096
复制相似问题