C# 我怎样才能做一个;响应测试“;存储过程?

C# 我怎样才能做一个;响应测试“;存储过程?,c#,asp.net,sql-server,stored-procedures,C#,Asp.net,Sql Server,Stored Procedures,在我的web应用程序中,我想进行一个“响应测试”过程。可以从网页启动此过程,以查看数据库服务器是否可访问,以及获得某些结果的大致时间 我不需要存储过程执行的精确时间,我希望了解数据库的“反应性” 所以我做了一个这样的方法: var start = DateTime.Now; var test = new ObjectManager().ListObjects(SomeParameters); var stop = DateT

在我的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()是一种通过存储过程从数据库获取数据的方法。 所以计算了整个过程的时间。 联系数据库,启动存储过程,转换和检索数据。。 不仅仅是存储过程。这不是问题

这很好,但我有两个问题

  • 我需要使存储过程“独立”于 数据

  • 我注意到在第一次执行时返回的时间是 例如162123秒。如果我刷新页面,时间是 089897秒。。中场休息!之后,每次刷新大约为0,8 秒

  • 似乎是sql缓存造成的


    因此,我需要一个存储过程,它与数据库中的数据量“独立”,并且不使用sql缓存。。有什么想法吗?

    您可以创建一个过程,其中包含一些返回静态值的SQL代码。如选择1;或者选择getdate()

    这样,您就可以检查与数据库的连接,而不需要访问任何数据

    第一次运行该过程时,SQL server将需要为其制定计划,这将导致一些开销


    当然,您始终可以在一行中(从代码)多次运行该过程并计算平均值。

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

    这样,您就可以检查与数据库的连接,而不需要访问任何数据

    第一次运行该过程时,SQL server将需要为其制定计划,这将导致一些开销

    当然,您始终可以在一行中(从代码)多次运行该过程并计算平均值