检测C#代码隐藏中运行缓慢的SQL查询

本文关键字:缓慢 SQL 查询 运行 代码 隐藏 检测 | 更新日期: 2023-09-27 18:28:33

背景

我有一个简单地完成以下任务的应用程序:

  1. 接受用户的输入
  2. 运行SQL存储过程,将用户输入作为参数传递
  3. 做点什么

但是,存储过程中使用的一些表由于另一个我无法控制的计划作业而被锁定。

我所拥有的

所以,我基本上有这样的代码,这样用户就可以重定向到";服务器正忙";页码:

Dictionary<int, string> result = new Dictionary<int, string>();
try
{
    result = new myRepository().GetUserInfo(userInput);
}
catch(Exception ex)
{  
    // in the error page, tell users to try again in a few minutes because the server is busy 
    Response.Redirect("ServerIsBusy.aspx");
}

我想做什么

对于我的当前代码,显示";服务器正忙";消息,所以我试图找到是否有一种方法来检测存储过程(GetUserInfo(userInput))是否尽可能快地运行缓慢,以便我可以将用户重定向到";服务器正忙";页

我尝试过的

我试着将httpRunTime executionTimeout设置为几秒钟,但正如许多网站所解释的那样,当这个数字很小时,这个设置就不能很好地工作,当我将它设置为5秒钟时,大约需要20秒钟。

有什么配置或技巧可以用来解决这个问题吗?

检测C#代码隐藏中运行缓慢的SQL查询

如果您可以使用Ajax,我会向您的web服务器发出异步(使用jQuery)请求,并在您的网站上显示buzy图标/标签/消息。

像这样:

function doSomeThing() {
    $.ajax({
        type: "GET",
        url: url,
        async: true
    });
}

当你使用数据库时,确保你设置了正确的索引,通常你会得到很大的速度提高。但要确保你设定了正确的指数,太多了,错误也可能很糟糕。