C# 从程序中选择超时,但从SQLServerManagementStudio中选择超时
我在执行SQL SELECT时超时 我通过以下方式连接到数据库:C# 从程序中选择超时,但从SQLServerManagementStudio中选择超时,c#,sql,sql-server,C#,Sql,Sql Server,我在执行SQL SELECT时超时 我通过以下方式连接到数据库: using (SQLConnection conn = SQLConnection(@"Data Source=mydbServer;Initial Catalog=mydb;Integrated Security=true;Timeout=180"); { conn.Open(); 这就成功地连接了 在using{}I集合内: string query = @"SELECT a.field, a.timestamp "
using (SQLConnection conn = SQLConnection(@"Data Source=mydbServer;Initial Catalog=mydb;Integrated Security=true;Timeout=180");
{
conn.Open();
这就成功地连接了
在using{}I集合内:
string query = @"SELECT a.field, a.timestamp " +
"FROM mydb.dbo.myTable1 a WITH(NOLOCK) " +
"LEFT JOIN [myOtherdbServer].myOtherdb.dbo.MyTable2 b WITH(NOLOCK) " +
"ON a.field = b.field " +
"WHERE b.field is NULL " +
"AND a.timestamp >= '2015-05-01 00:00:00.000' " +
"AND a.timestamp < '2015-06-01 00:00.00.000'";
SQLCommand引发超时异常:“操作完成前已过超时时间或服务器未响应”
如果我在运行我的程序的同一系统上使用SQL Server Management Studio,并且作为运行我的程序的同一用户执行相同的SELECT,它将在1秒内完成并返回数千行
现在这种情况一直在发生。几天前它还在工作。我应该找什么?我很困惑,因为同样的选择在SQLServerManagementStudio中起作用。SQL SMS是否使用不同的连接?“如果我在运行程序的同一系统上使用SQL Server Management Studio,并且作为运行程序的同一用户执行相同的选择,它将在1秒内完成并返回数千行。”
尝试将select语句限制在前10位,以查看是否能够返回结果,这可能表明问题在于对象的大小/查询执行时间,与服务器/应用程序配置无关。这是因为结果集很大,并且查询花费的时间比默认超时要长,因此超时\n最好使用分页,不要在一次获取所有记录。SQL server Management Studio中的同一查询在1秒内完成。我简直不敢相信,从编程的角度来说,这需要5分钟以上。您是否尝试过创建一个调试点,在那里创建查询。。。然后使用textviewer将该查询复制到SSMS?我注意到您正在连接到联接表上的第二台服务器。如果查询正在等待与其他服务器的连接,这可能会导致问题。您是否可以修改查询以消除与其他服务器的连接,并查看它是否运行得很快。只是一个想法
using (SQLCommand queryCmd = new SQLCommand(query, conn)
{
queryCmd.CommandTimeout = 300;
using (SQLDataReader rdr = queryCmd.ExecuteReader())
{