分页和性能

问题描述 投票:0回答:2

问: 我想问一下:寻呼。

.net 中的分页功能是否会带来任何性能差异,我的意思是,有时我有大量数据,例如,如果我想将这些数据绑定到 gridview 上,则“分页”例如按计数 10 ,带来 10 条记录和 10 条记录依此类推,或者就像我不使用分页一样,它首先带来所有数据,然后根据分页器计数查看它们。如果分页和性能之间没有关系,那么在这种情况下最佳实践是什么?

asp.net database performance gridview pagination
2个回答
3
投票

这取决于分页是如何实现的。 某些服务器控件的早期版本处理分页,将整个数据集读入内存,然后选择可用记录的子集。这是极其低效的,因为您已经产生了从数据库中移动数据的传输成本以及存储数据的内存成本。

您可以做的是在数据库级别执行分页,传入页码和要检索的项目数,这样您只读取源中的数据子集。它的性能会更高。唯一的缺点是您可能需要在数据库中发起另一个查询来确定项目总数,以便您可以正确分页。 总而言之,我认为“源头分页”始终是首选解决方案。


1
投票

据我所知,所有 ASP.NET 服务器控件(例如 DataGrid)都会加载整个结果集,然后只显示一页。您必须自己实现这一点。

这里有关于此的讨论:http://www.codeproject.com/KB/aspnet/PagingLarge.aspx

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.