百万交易 - 提高网站性能
本文关键字:高网站 性能 网站 交易 百万 | 更新日期: 2023-09-27 17:55:42
我有一个页面调用一个存储过程来读取 3 到 400 万个数据,进行一些计算并返回一个小数据表。SP 运行缓慢大约 20 到 30 秒。因此,总体页面加载速度较慢。
我会重构 SP 吗?但问题是,无论我做什么,我的最终结果都将是小数据表。
是否有任何提高性能的建议?
如果表不经常更新,则创建具有更好性能的"聚合"表。
如果您正在处理 3 或 400 万行数据并实际执行实际工作,恕我直言,20 或 30 秒是相当不错的性能。检查存储过程的执行计划。在理想世界中,每个表都会受到索引查找而不是表扫描的打击。如果您不确定如何解释显示计划结果,请咨询您的 DBA。我假设您使用的是SQL Server。
检查以确保您的表具有适当的索引,并且统计信息是最新的。如果没有,请更新它们。重新编译存储过程。传递给存储过程的参数可以增强缓存的执行计划(如果 是奇怪的值)。可以通过对存储过程进行编码来防止这种情况,如下所示:
create proc myProc
@p1 varchar(32)
as
declare
@p1Local varchar(32)
set @p1Local = @p1
...
如果数据更新频率不高,则可以创建索引视图。
http://msdn.microsoft.com/en-us/library/dd171921(v=sql.100).aspx:
索引视图提供了使用标准索引无法实现的其他性能优势。索引视图可以通过以下方式提高查询性能: 可以预先计算聚合并将其存储在索引中,以最大程度地减少查询执行期间的昂贵计算。 可以预先连接表并存储生成的数据集。 可以存储联接或聚合的组合。