This question already has answers here:
Is DateTime.Now the best way to measure a function's performance?
                                
                                    (15个答案)
                                
                        
                                6年前关闭。
            
                    
我有一个选择查询,我想并行运行50次(以进行负载测试),即。 50个独立的时间(一个单独的过程)。

如果我这样跑

for (int i=0;i<=49;i++)
{
 //record start time before the query
 //Code that runs the select query...
 //record end time after the query
}


我需要测试选择查询50次,我是否需要使用50个不同的线程或在50次循环中运行该查询,这才是正确的方法?

有没有更好的方法来检查查询的消耗时间,例如说50次?我需要使用线程吗?我不确定如何使用线程,对线程编程没有太多的了解,任何示例都将有所帮助。

最佳答案

首先,您为什么要这样做?这是出于性能评估目的,还是一个有趣的爱好项目,还是生产代码的一部分?

由于它是一个Select查询,因此您不应遇到尝试实现异步Insert / Update / Delete查询时会遇到的相同类型的锁定/事务中断问题。要知道的一件事是,不要循环运行它们,因为这是同步的。您可以根据需要在循环中设置查询,但需要使用Service Broker来运行它们。看一下this excellent article开始。对于C#端,如果运行的是2012,请查看this MSDN article

08-03 22:47
查看更多