相关疑难解决方法(0)

HttpWebRequest在SQLCLR中第一次运行缓慢

在CLR存储过程中进行HttpWebRequest时(根据下面的代码),在(重新)启动Sql Server之后或在给定(但不确定)的时间段之后的第一次调用等待相当长的时间. GetResponse()方法调用.

有没有办法解决这个问题,不涉及"黑客",如每隔几分钟运行一次Sql Server Agent作业,以确保代理进行第一次"慢速"调用,而不是"真正的"生产码?

function SqlString MakeWebRequest(string address, string parameters, int connectTO)
{
  SqlString returnData;
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Concat(address.ToString(), "?", parameters.ToString())); 
  request.Timeout = (int)connectTO;
  request.Method = "GET";
  using (WebResponse response = request.GetResponse())
  {
    using (Stream responseStream = response.GetResponseStream())
    {
      using (StreamReader reader = new StreamReader(responseStream))
      {
        SqlString responseFromServer = reader.ReadToEnd();
        returnData = responseFromServer;
      }
    }
  }
  response.Close();

  return returnData;
}
Run Code Online (Sandbox Code Playgroud)

(为简洁起见,已删除错误处理和其他非关键代码)


另请参见此Sql Server论坛主题.

sql-server-2005 sqlclr

5
推荐指数
1
解决办法
3579
查看次数

标签 统计

sql-server-2005 ×1

sqlclr ×1