【发布时间】:2011-02-25 20:09:49
【问题描述】:
我有一个数据网格控件,它绑定到一个包含 1000 多条记录的表。我想一次只显示 25 条记录。我在数据网格中使用了分页。但是每次设置下一页索引时,都会再次触发查询。这需要很多时间。那么在这种情况下绑定数据以提高性能的最简单方法是什么..?
【问题讨论】:
标签: asp.net performance datagrid
我有一个数据网格控件,它绑定到一个包含 1000 多条记录的表。我想一次只显示 25 条记录。我在数据网格中使用了分页。但是每次设置下一页索引时,都会再次触发查询。这需要很多时间。那么在这种情况下绑定数据以提高性能的最简单方法是什么..?
【问题讨论】:
标签: asp.net performance datagrid
我不建议使用缓存,因为第一次无论如何都会将整个数据返回到服务器。
您可以通过对数据库使用自定义分页查询来提高性能。
假设您至少使用 SQL Server 2005, Here's a great article for your purpose with different benchmarking results
【讨论】:
您是否考虑过缓存您的数据集?那么你只需要在缓存为空或过期时查询数据。
【讨论】:
当您处理 Page Changed 事件时,您需要拉入新的页面信息。您需要创建一个以 CurrentPageNumber 和 PageSize 作为参数的存储过程。
这是对您在降低数据时已经提供的任何其他参数的补充。
在 SP 中,您使用要返回的数据以及 RowNumber 填充临时表或表变量(或者您可以使用 CTE)。
根据您的 CurrentPageNumber 参数,您可以返回 CurrentPageNumber * PageSize 和 (CurrentPgaeNumber + 1) * PageSize - 1 之间的所有结果。
这是一个很好的资源:
【讨论】: