【问题标题】:Populate large data from database从数据库中填充大量数据
【发布时间】:2010-10-10 17:31:09
【问题描述】:

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

然后我想出了解决这个问题的办法。解决方案是每 y 秒填充 x 条数据记录。 (例如:先填充 10 条记录以在 UI 上显示,然后每 5 秒再显示 10 行)。

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

【问题讨论】:

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


    【解决方案1】:

    是否可以选择延迟加载(这样您可以按需加载数据,而不是一次全部加载)?

    【讨论】:

      【解决方案2】:

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

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

      如果是 Web 应用,请考虑使用 AJAX。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          Freddy 打败了我,但举个例子,您会注意到很多数据库查看器只填充视野所需的数据,当您使用滚动条时,它会自动抓取下一页/数据视图.

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

          【讨论】:

            猜你喜欢
            • 2016-01-17
            • 2011-04-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多