填充数据库中的大数据

时间:2009-03-02 06:49:01

标签: .net sql-server n-tier-architecture

我开发了一个3层应用程序,我遇到了从数据库填充数据的问题。我的应用程序有一个窗口,用于查询数据库中的大数据,此过程需要很长时间。 (我的客户端远离服务器,连接速度为128 KB / s)。

然后我想到解决这个问题的解决方案。该解决方案每隔y秒填充x个数据记录。 (例如:填充10条记录,首先在UI上显示,然后每5秒显示10行)。

这是解决这个问题的好方法吗?有没有更好的方法来解决这个问题?

4 个答案:

答案 0 :(得分:2)

如果是出于显示目的,您应该使用分页。有一个变体,当用户尝试使用滚动条访问更多信息时,UI抓取记录的下一个“页面”。 如果需要聚合数据,请在查询中进行,因此整个数据不会通过网络传输。 如果您真的/绝对必须获取整个数据并使用它执行某些过程,请考虑它是否会太大而无法一次加载所有数据。在这种情况下,抓取数据块,运行相关进程,然后抓取另一个块(依此类推)。无论如何,您需要使用不阻塞UI(线程/异步操作)的方法来执行此操作。

答案 1 :(得分:1)

弗雷迪打败了我,但作为一个例子,你会注意到很多数据库查看器只填充了视野中所需的数据,因为你使用滚动条它会自动抓取下一页/数据视图。

如果您考虑网站,他们几乎总是将数据分页,而不是一次性加载。

答案 2 :(得分:0)

是否可以选择延迟加载(因此您需要按需加载数据,而不是一次性加载数据)?

答案 3 :(得分:0)

如果应用程序UI可以允许,可以在多个页面中显示记录。

我还建议使用异步调用来检索数据,这样您在查询时就不会冻结应用程序(如果是桌面应用程序)。

如果是其网络应用,请考虑使用AJAX。