c# - 运行大型 SQL 语句并填充 gridview

标签 c# asp.net sql gridview

我有一个相当大的 SQL 语句,它有许多内部连接和交叉应用语句来进行一些计算,这些计算根据先前的查询为每个条目创建新列。

我想知道在代码中从 C# 运行此查询以填充 gridview 的最有效/最佳方法是什么?

分解 SQL 并用 C# 编写一些计算?

创建存储过程?

只是将 sql 作为字符串传入并创建数据集,然后将数据集绑定(bind)到 gridview 似乎花费了太长时间。

最佳答案

您的核心问题是您的数据库查询必须运行得更快。找到解决方案后,您可以相应地调整代码。

我首先要考虑的是优化数据库索引以提高查询性能。如果可以,请使用 SQL ProfilerIndex Tuning Wizard (我不认为这些工具在 SQL Server 的 Express 版本中可用)。请注意,新索引也可能导致插入性能下降,因此如果您的数据库需要支持高事务量,则应谨慎使用此方法。

如果您可以通过将查询分解为多个部分并使用程序代码聚合结果来找到提高查询性能的方法,那么转移到 ObjectDataSource 是有意义的.这将使您在如何获取数据方面拥有最大的灵 active 。

作为起点,我会在 SQL 编辑器中对您的查询和/或部分查询进行原型(prototype)设计,这样您就可以在决定如何更改 ASP.NET 代码之前只关注查询优化。

如果不查看您的模式和您正在使用的查询的具体细节,我无法就如何优化数据提取做进一步评论。但这应该会让您朝着正确的方向前进。

关于c# - 运行大型 SQL 语句并填充 gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9842025/

相关文章:

c# - 搜索并替换具有多个属性的对象中的值......C#

c# - 传递参数表达式导致奇怪的错误

javascript - 选择下拉列表中的项目时,如何立即动态更新 div?

c# - 是集合为空

c# - 从C#mongodb驱动程序执行mongodb shell查询(最新)

c# - 在 C# 中将 MS Access 颜色代码转换为十六进制

c# - 构建参数化的 EntityFramework 核心表达式

mysql - 如何从mysql中删除重复的行

sql - Entity Framework 数据库查询非常慢

javascript - 如何将两个单独的查询传递给 promise 链末尾的回调函数?