分页有害吗?

时间:2016-03-07 11:05:40

标签: c# asp.net c#-4.0 gridview pagination

我在asp.net gridview中使用PAGINATION模式,即pagesize 15

gridview从数据库中填充,数据表从数据库中填充;

即。

Datatable dt= class.SelectTableDate();

在pageLoad事件中第一次调用页面时:

grdview.Datasource= dt;
grdview.DataBind();

现在我和朋友争吵了,他说从数据库加载整个记录会降低性能,但我所说的是它只加载gridview第一页的数据,即15条记录。

那我们该怎么办?

更新

问题是“分页是不是一个好选择?”

1 个答案:

答案 0 :(得分:1)

返回566条记录所需的时间,而不是每页显示的15条记录。如果您的查询写得很好,您会发现它的时间不长。

如果您尝试将整个记录集渲染到页面,那么您会发现延迟很长。这简直就是渲染时间,特别是如果您没有将CSS属性table-layout: fixed;设置为网格。

现在让我们假设您将查询限制为“正确”'一次分页15条记录。每次您在页面之间移动时都需要重新查询数据库。根据您的代码结构,您可能每次都创建新的连接。这实际上比仅仅击中整个566个记录更糟糕。

您可以做的是下拉整个记录集并将DataTable缓存到会话变量中。当然,您需要注意管理会话数据。但是使用这个,你可以在一个初始命中中获得所有数据,然后可以通过它自由地分页/排序/过滤/无需任何额外的数据库负载。