百万交易 - 提高网站的性能

时间:2011-05-10 13:50:56

标签: c# asp.net database performance soap

我有一个页面调用存储过程来读取3到4百万个数据,进行一些计算并返回一个小数据表。 SP很慢。 20至30秒。因此,整体页面加载速度很慢。

我会重新考虑SP吗?但问题是无论我做什么,我的最终结果都是小数据表。

是否有任何改善表现的建议?

3 个答案:

答案 0 :(得分:1)

如果表没有更新,那么经常制作一个性能更好的“聚合”表。

答案 1 :(得分:1)

如果你正在搅拌3到4百万行数据并实际上正在做真正的工作,那么20或30秒的表现相当不错,恕我直言。检查存储过程的执行计划。在理想的世界中,每个表都会被索引搜索而不是表扫描所击中。如果您不确定如何解释showplan结果,请咨询您的DBA。我假设您正在使用SQL Server。

检查以确保您的表具有适当的索引并且统计信息是最新的。如果没有更新它们。重新编译存储过程。如果是奇数值,则传递给存储过程的参数可以向上缓存执行计划。您可以通过编码存储过程来防止这种情况,如下所示:

create proc myProc

  @p1 varchar(32) 

as

  declare
    @p1Local varchar(32)

  set @p1Local = @p1

  ...

答案 2 :(得分:0)

如果您的数据没有经常更新,您可以创建索引视图。

http://msdn.microsoft.com/en-us/library/dd171921(v=sql.100).aspx

  

索引视图提供了使用标准索引无法实现的额外性能优势。索引视图可以通过以下方式提高查询性能:   聚合可以预先计算并存储在索引中,以最大限度地减少查询执行期间的昂贵计算。   可以预先连接表,并存储结果数据集。   可以存储联接或聚合的组合。