用数千条记录填充数据集

时间:2011-03-15 07:36:34

标签: c# asp.net oracle10g dataset

我使用oracle作为后端。在数据库中有一个包含5000条记录和160列的表。我想在gridview中显示所有这些记录(在asp.net,c#中)。但填充数据集需要10多分钟。你能建议其他选择吗?是否可以使用线程?

4 个答案:

答案 0 :(得分:2)

我的猜测是不是需要10分钟的.net代码。逐步完成代码,找到它占用所有时间的阻塞点。它很可能是你的数据库查询。如果是查询,那么你需要找出调整它的方法。

此外,没有用户需要查看包含160列的5000条记录。找出一种更好的方式来显示这些信息,提供深入分析或其他方法来理解和浏览所有数据。除此之外,您可以尝试分页。

是的,不要使用另一个线程。这是一个需要重新设计的设计。

答案 1 :(得分:1)

hejdig。

几年前,我有一个类似的场景,我们讨论了是否需要时间的网格或查询和数据处理。它在WinForm 2.0中,但问题是一样的。

我们下载了一个分析器并在几分钟内得到了答案。网格。 数据的查询和处理只占百分之几。

如果您尝试在aspnet中将5000行下载到数据网格中,则可能会阻塞系统。从转向viewstate开始。你失去了很多功能,但获得了一些好处。运行一个分析器。考虑使用除MS的datagridview之外的网格。尝试分页。大概按此顺序排列。

如果您了解用户,则可以保存电子表格以供他们打开。还有一些简单的技巧可以将页面打开为电子表格(只输出CSV或XML并更改MIME类型)。如果它是需要时间的GUI。

快乐的黑客攻击和良好的狩猎。

/ OF

答案 2 :(得分:0)

添加另一个线程不是解决方案,可能会使您的代码过于复杂。记录一个记录应该很简单,但是因为你那么复杂,它可能会很慢。尝试将数据分页放在数据库端,这样可以最大限度地减少数据绑定时间和数据。传递给网络的数据量。

答案 3 :(得分:0)

在这种情况下,您可以使用动态分页而不是使用gridview分页,只获取数据库中仅特定于页面的记录。

http://www.codeproject.com/KB/custom-controls/ASPNETPagerControl.aspx