gpt4 book ai didi

sql - 比较存储过程性能 ex 和新版本

转载 作者:行者123 更新时间:2023-12-01 12:00:25 24 4
gpt4 key购买 nike

我确实在 sp 上使用的表上创建了两个新索引。新的结果表明,在有问题的连接部分,扫描被转换为搜索。我认为搜索比扫描操作更好。另一方面,该时间与没有新索引时的持续时间大致相同。

很明显,在将我的新版本 sp 投入生产之前,我如何才能感到满意。

比如改变sp的参数可以帮我看看是新版本比旧版本快还是其他什么?

问候黑

最佳答案

要做的几件事:
1) 通过在每次测试运行后清除数据和执行计划缓存来确保您公平地比较性能。您可以使用以下方法清除这些(建议仅在您的开发/测试环境中执行此操作):

CHECKPOINT -- force dirty pages in the buffer to be written to disk
DBCC DROPCLEANBUFFERS -- clear the data cache
DBCC FREEPROCCACHE -- clear the execution plan cache

2) 运行 SQL Profiler 以记录每种情况(有/没有索引)的读取/写入/CPU/持续时间。这将为您提供一系列可供比较的指标(即与 SSMS 中显示的时间相对)。
编辑:要运行 SQL Profiler 跟踪,请在 Management Studio 中转到工具 -> SQL Server Profiler。当出现提示时,指定要针对其运行跟踪的数据库服务器。将出现“Trace Properties”对话框 - 您应该只需单击“Run”即可开始运行默认跟踪。然后只需执行您的存储过程,即可看到它出现在 SQL Profiler 中 - 它会在旁边显示持续时间、读取次数等。

3) 使用比现有数据量大得多的数据进行测试。如果您使用少量数据进行测试,那么仅凭持续时间通常很难看出差异。

我最近blogged here关于如何公平地测试查询的不同变体的性能,其中更详细地介绍了我是如何做的。

关于sql - 比较存储过程性能 ex 和新版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311189/

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