gpt4 book ai didi

sql - 做性能测试时如何避免出现SQL Server的 "rebuild statistics"?

转载 作者:行者123 更新时间:2023-11-28 19:45:00 24 4
gpt4 key购买 nike

这几天在做SQL调优,在测试的时候发现了一个奇怪的sql:

SELECT StatMan([SC0],[SC1], [SB0000]) 
FROM (SELECT TOP 100 PERCENT [SC0],[SC1], step_direction([SC0]) over (order by NULL) AS [SB0000]
FROM (SELECT [tableA] AS [SC0],[tableB] AS [SC1]
FROM [dbo].[url] WITH (READUNCOMMITTED,SAMPLE 3.408654e+000 PERCENT)
) AS _MS_UPDSTATS_TBL_HELPER
ORDER BY [SC0],[SC1], [SB0000]
) AS _MS_UPDSTATS_TBL
OPTION (MAXDOP 1)

看起来这是在根据 SQL Server 执行一些“重建索引”或“重建”一些数据库索引。但我的问题是,除了在测试前为每个表“重建索引”之外,我们如何在长时间的负载测试中避免这种情况。

由于我的表包含足够多的行,因此此 SQL 将消耗 16862 毫秒。在我的测试中有很多插入 Action 。

最佳答案

这似乎来自更新统计数据。

是否会在正常生产环境中更新统计信息?如果是这样,难道不应该进行负载测试以反射(reflect)生产环境,同时更新统计信息吗?

要关闭 AUTO_UPDATE_STATISTICS 选项,请在所需的表上使用 sp_autostats(参见 http://msdn.microsoft.com/en-us/library/ms188775.aspx)。

关于sql - 做性能测试时如何避免出现SQL Server的 "rebuild statistics"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5246984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com