2011-12-15 19 views
1

在我的web应用程序中,我想做一个“响应测试”过程。可以从网页启动此过程,以查看数据库服务器是否可到达并获得一些结果的近似时间。如何制作“响应测试”存储过程?

我不想让存储过程的执行精确的时间,我想有数据库的“反应性”的想法..

所以我做的方法是这样的:

 var start = DateTime.Now; 
     var test = new ObjectManager().ListObjects(SomeParameters);    
     var stop = DateTime.Now; 
     TimeSpan diff = stop - start; 
     label.Text = diff.TotalSeconds.ToString(); 

事实上,ObjectManager.listObject()是一种通过存储过程从数据库获取数据的方法。 因此,计算所有过程的时间。 联系数据库,启动存储过程,投射和检索数据,.. 不仅用于存储过程。这不是问题。

这工作正常,但我有两个问题。

  1. 我需要从 DATAS量使存储过程“独立”。

  2. 我注意到在第一次执行时返回的时间是 ,例如1,62123秒。如果我刷新页面的时间是 0,89897秒..半场!之后每次刷新约为0.8 秒..

看来它是由SQL缓存造成的..

所以,我需要从数据的数量的“独立”存储过程数据库和哪些不使用SQL缓存..任何想法做到这一点?

回答

1

您可以创建一个包含一些返回静态值的SQL代码的过程。像SELECT 1;或SELECT getdate()

这样你就可以检查到数据库的连接而不会触及任何数据。

第一次运行该过程时,SQL服务器需要为其制定计划,这会导致一些开销。

当然,您可以随时连续多次运行该程序(从代码中)并计算平均值。