我有一个相当大的 SQL 语句,它有许多内部连接和交叉应用语句来进行一些计算,这些计算根据先前的查询为每个条目创建新列。
我想知道在代码中从 C# 运行此查询以填充 gridview 的最有效/最佳方法是什么?
分解 SQL 并用 C# 编写一些计算?
创建存储过程?
只是将 sql 作为字符串传入并创建数据集,然后将数据集绑定(bind)到 gridview 似乎花费了太长时间。
最佳答案
您的核心问题是您的数据库查询必须运行得更快。找到解决方案后,您可以相应地调整代码。
我首先要考虑的是优化数据库索引以提高查询性能。如果可以,请使用 SQL Profiler和 Index Tuning Wizard (我不认为这些工具在 SQL Server 的 Express 版本中可用)。请注意,新索引也可能导致插入性能下降,因此如果您的数据库需要支持高事务量,则应谨慎使用此方法。
如果您可以通过将查询分解为多个部分并使用程序代码聚合结果来找到提高查询性能的方法,那么转移到 ObjectDataSource 是有意义的.这将使您在如何获取数据方面拥有最大的灵 active 。
作为起点,我会在 SQL 编辑器中对您的查询和/或部分查询进行原型(prototype)设计,这样您就可以在决定如何更改 ASP.NET 代码之前只关注查询优化。
如果不查看您的模式和您正在使用的查询的具体细节,我无法就如何优化数据提取做进一步评论。但这应该会让您朝着正确的方向前进。
关于c# - 运行大型 SQL 语句并填充 gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9842025/