数据表加载速度非常慢

2024-03-16

我使用数据表作为页面上某些下拉列表的数据源,但注意到页面在回发期间非常慢。

我已经追踪到这里:

DataTable dt = new DataTable();
dt.Load(sqlCmd.ExecuteReader()); // this takes ages

sql 命令是一个参数化查询,而不是一个存储过程(返回值和 where 非常“动态”,因此这是不切实际的),但仍然是一个简单的选择联合查询。 通常每个下拉列表返回 5 到 20 个选项,具体取决于在其他下拉列表中选择的内容。 当我在管理工作室中运行查询时,不到一秒钟就完成了。在这里,每个下拉菜单可能需要长达 7 秒的时间,很快就会在页面上添加 6 个下拉菜单。 我也尝试过使用 SqlDataAdapter:

SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
sqlDa.Fill(dt); // this takes ages

但这同样慢。 我在两个不同的系统上都有这个问题,并且都有相同的性能问题。

如果有人知道更好(更快)的方法,或者知道为什么这么慢,那就太好了。


这不是我在这个问题上见过的最好的帖子,但里面有很好的链接,并且在我的帖子历史记录中:

在 SSMS 中运行良好的 SQL 查询在 ASP.NET 中运行得很慢 https://stackoverflow.com/questions/15010892/sql-query-that-runs-fine-in-ssms-runs-very-slow-in-asp-net/15012264#15012264

SQL 优化器有时喜欢决定什么是最好的,您必须通过一些数据执行计划的跟踪和记录来分解查询。它很可能是像坏索引一样被隐藏的东西,或者您的查询代码可能需要优化。鉴于我们没有查询代码,拥有它可能有帮助,也可能没有帮助。我建议您按照上面帖子中链接的指南进行操作并关闭您的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据表加载速度非常慢 的相关文章

随机推荐