我正在使用数据表作为页面上某些下拉菜单的数据源,但注意到该页面在回发期间非常慢。
我已经追踪到这里:
DataTable dt = new DataTable();
dt.Load(sqlCmd.ExecuteReader()); // this takes ages
sql 命令是参数化查询,而不是存储过程(返回值和位置非常“动态”,因此这不切实际),但仍然是一个简单的选择联合查询。通常每个下拉菜单返回 5 到 20 个选项,具体取决于在其他下拉菜单中选择的内容。当我在管理工作室中运行查询时,它会在一秒钟内完成。在这里,每个下拉菜单最多可能需要 7 秒,页面上的 6 个下拉菜单很快就会加起来。我也尝试过使用 SqlDataAdapter:
SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
sqlDa.Fill(dt); // this takes ages
但这同样慢。我在 2 个不同的系统上都有这个,并且两者都有相同的性能问题。
如果有人知道更好(更快)的方法,或者知道为什么速度如此之慢,那就太好了。