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

Bil*_*lıç 3 sql sql-server performance stored-procedures

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

很清楚,在将新版本sp投入生产之前,我怎么能得到满足.

例如,更改sp的参数可以帮助我查看新版本是否比旧版本更快或者还有什么?

关心bk

Ada*_*Dev 5

要做的一些事情:
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
Run Code Online (Sandbox Code Playgroud)

2)运行SQL事件探查器以记录每种情况的读/写/ CPU /持续时间(带/不带索引).这将为您提供一系列可供比较的指标(即与SSMS中显示的时间相对).
编辑: 要运行SQL事件探查器跟踪,请在Management Studio中转到"工具" - >"SQL Server事件探查器".出现提示时,指定数据库服务器以运行跟踪.将出现"跟踪属性"对话框 - 您应该只需单击"运行"即可开始运行默认跟踪.然后只需执行存储过程并看到它出现在SQL事件探查器中 - 它将显示持续时间,读取次数等.

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

我最近在这里发表了关于如何公平地测试查询的不同变体的性能的博客,其中详细介绍了我如何做到这一点.