This question already has answers here:
Is DateTime.Now the best way to measure a function's performance?
(15个答案)
6年前关闭。
我有一个选择查询,我想并行运行50次(以进行负载测试),即。 50个独立的时间(一个单独的过程)。
如果我这样跑
我需要测试选择查询50次,我是否需要使用50个不同的线程或在50次循环中运行该查询,这才是正确的方法?
有没有更好的方法来检查查询的消耗时间,例如说50次?我需要使用线程吗?我不确定如何使用线程,对线程编程没有太多的了解,任何示例都将有所帮助。
(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。