2010-11-09 75 views
0

测试存储过程性能的推荐方式是什么?有一个SP需要大约20个布尔值,我想测试一些组合。还有另一个SP具有相同的参数,但具有不同的实现,并且想要一种比较方式。如果需要,我可以在.NET中手动执行此操作,但是想知道是否有更好的方法。谢谢!性能测试SQL Server

回答

0

嗯,有2^20种组合...

你可以做的要测试的设置表(BOOL1,BOOL2,BOOL3,...),然后添加列ALT1结果和alt2的结果(开始和结束时间,实际的数值结果,如果有一个bug,等)。

然后打开设置表上的光标(或SELECT TOP 1 WHERE result IS NULL上的循环)和EXEC每个处理与设置,记录开始和结束时间和结果等任何其他。

所以在这一点上,我会把它全部保存在数据库中,不需要.NET。如果数据集很大,并且您需要检查端到端性能,那么我可能会移出数据库,但现在,移动较少的部分越多越好。

+0

只有2^20是超过一百万。 :)每个查询可能需要一秒或两个(相对复杂)。假设每次只有10次迭代(为了获得更好的平均值),我们正在寻找1mil组合* 10次迭代/ 60秒/ 60分钟/ 24小时= 115天。除此之外,我喜欢你的方法,并会试一试。 – 2010-11-09 17:33:38

+0

@Nelson - 右 - 我想不是所有这些组合都是现实的 - 也可以从现有的应用程序数据中导出实际可能的组合(SELECT DISTINCT CASE WHEN GENDER ='M'THEN 1 ELSE 0 END AS IsMale,CASE当WEARSBRA ='Y'那么1 ELSE 0 END作为WearsBra FROM DEMOGRAPHICS) - 可能有些情况不会在您的数据集中发生。 – 2010-11-09 18:49:46

1

您可以通过使用实际执行计划执行两个存储过程来测量Server Management Studio中的性能。它会让您分解每个语句中的性能/成本。

您还可以使用SQL Server Profiler收集性能指标。

我个人倾向于使用上述两者的组合。

+0

我需要更高层次的东西,像凯德提到的那样更自动化。一旦我确定问题查询,我可以按照您的建议使用执行计划和分析器。 – 2010-11-09 18:31:58

1

当您拥有大量参数时,请始终考虑配对测试。我更喜欢PICT工具。