【问题标题】:DevExpress aspxgridview with LinqServerModeDataSource or alternative for fast filtering and sortingDevExpress aspxgridview 与 LinqServerModeDataSource 或用于快速过滤和排序的替代方案
【发布时间】:2011-04-27 10:22:22
【问题描述】:

DevExpress aspxgridview 与 LinqServerModeDataSource 或用于快速过滤和排序的替代方案

我们正在尝试生成一个以速度为优先的只读结果网格。当前使用 gridview 控件,对单击时选择行和固定页眉/页脚进行一些自定义。数据访问来自我们业务层的对象数据源或代码绑定,数据库是 SQL Server 2008。

计划是为 gridview 购买 3rd 方控件,并一直在研究 DevExpress aspxgridview。我们希望能够向 gridview 数据添加属性,过滤并非常快速地绑定网格,并查看了 LinqServerModeDataSource,这可能意味着在解决方案中使用另一种数据访问技术,但对于任何阅读来说,都会对此感到满意-仅查询我们可以轻松地在数据库中快速进行连接和排序,但使用 n 层 BLL / DAL / DTO 进行任何插入/更新/删除。

有没有人对这个计划有任何想法。 LinqServerModeDataSource 和 aspxgridview 是否会快速显示数据并提供选项以将过滤器(加入/存在查询)堆积到我们绑定到的表中,或者是否有更好的方法来执行此操作。 (我假设我们需要在 LinqServerModeDataSource OnSelecting 中编辑 linq 查询)不希望编写任何自定义 ajax 或 html 并让自定义控件执行此操作。

【问题讨论】:

    标签: asp.net gridview devexpress


    【解决方案1】:

    当 ASPxGridView 绑定到 LinqServerModeDataSource 时,所有与数据相关的操作都在 DB 服务器上执行。在这种情况下,dataSource 向 DB 服务器发送了许多请求,但所有这些请求都很轻,即它们应该被快速执行,并且不会导致将大量数据传递给 Web 服务器。另外,我想提醒您,在服务器模式下工作的网格有一些限制,这些限制在我们的帮助中进行了描述:

    Server-side Data Management

    最后,我认为在服务器模式下工作的 ASPxGridView 非常快,你最终应该试一试。但是,仅当底层 DataSource 返回大量数据时才应使用服务器模式。否则,最好使用“经典”的绑定方式,全部在web服务器上管理。

    更新

    我将尝试解释何时需要服务器模式。默认情况下,所有网格控件(标准,我们的......)从数据库服务器获取所有数据到 Web 服务器,然后对其进行管理。例如,排序。如果数据量很小,并且 DB 和 Web 服务器之间的连接速度很快,则此操作完成得相当快,并且不需要服务器模式。从我的角度来看,5k 条记录并不是大数据,因此 ASPxGridView 的代码应该可以有效且快速地使用它。但是,如果有很多记录需要在 Web 服务器上处理,例如 100k,那么图片就不同了。显然,获取 100k 到 Web 服务器并通过网络传输它们可能会很慢。此外,数据库服务器经过优化,可以更好地处理这些数据,它应该管理这些数据,例如,更快地对它们进行排序。在这种情况下,将这项工作传播到数据库服务器并获得性能更有利可图。

    因此,决定是否使用服务器模式的主要标准如下: 从 DB 服务器传递到 Web 服务器的记录数以及管理它所需的时间。

    希望,这会有所帮助。

    【讨论】:

    • 我认为这些限制不适用。我们希望这个网格显示的表格范围从一个有约 5000 行但有很多潜在的连接,另一个有 500,000+ 行。真正需要带回大约 100 行,在此要求下使用它是否仍然有意义。此外,如果数据与许多 sql 连接绑定,则过滤后的下一个绑定可能会连接完全不同的表,并且需要再次访问数据库。
    • 谢谢,对大桌子有意义。当我想使用一些连接/复杂的 sql 从 5k 表中填充网格时,如果没有获得所需的数据,请更改为其他一些表连接。使用服务器模式并在代码中构建 linq 似乎很快,但想知道这是否有任何陷阱?
    • 无论您使用哪种绑定模式,所有连接都在 DB Server 上执行。 IE。 ASPxGridView 如何获取数据并不重要,重要的是数据量。如果您的连接产生 5k 条记录,我建议您考虑经典绑定模式。如果生成的记录集非常大,请尝试服务器模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多