SqlDataAdapter.fill超时,查询5秒以下
问题描述:
我有一个SqlDataAdapter正在填充33k行数据(大约15列)。 当在MS SSMS中运行查询时,我在约5秒内获得了我的行。 当使用我的代码,我得到一个超时,甚至超时参数设置为120秒:SqlDataAdapter.fill超时,查询5秒以下
private static DataTable getResult(string query, int someId, SqlConnection myConn)
{
SqlCommand myCmd = new SqlCommand(query, myConn);
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
myCmd.Parameters.Add("@someId", SqlDbType.Int);
myCmd.Parameters["@someId"].Value = someId;
da.SelectCommand = myCmd;
da.SelectCommand.CommandTimeout = 120;
da.Fill(dt);
return dt;
}
我已经尝试过的网站,如越来越高的连接数和超时值建议没有结果这一天...
关于如何避免超时错误的任何想法?
感谢您的见解。
你确定你正在运行在SSMS相同的查询中的getResult方法?你的连接字符串登录也是一样的吗?在尝试将它们放入DataTable之前,您是否试图执行命令以查看结果? – xszaboj
尝试在新的MS SSMS窗口中运行您的查询。如果您已经在同一个窗口中多次运行查询,那么它将采用相同的查询计划并更快地执行。检查新查询窗口花费多少时间。 – Niar
查询和连接字符串严格相同。 无论何时/无论何时我在MS SSMS中运行查询,时间圈都是一样的。 – Wingi