我有一个数据库查询,可能会导致结果集很大。显示数据的客户端通过网络接收数据,因此,其想法是通过仅从数据库中检索前50个结果并将其发送给客户端,以最大程度地减少传输的数据量。然后,我将提供一个可能性,跳到第二页以检索下一个50个结果,等等(类似于Google提供的内容)
问题是实现分页的有效方法是什么。我想确保mssql尽可能多地使用缓存,并且每次更改分页时都不会再次执行该缓存。
同时有更多客户端正在查询数据库。使用的SQL引擎:MS SQL 2005
我的想法是:
- 使用准备好的sql statemenst以确保执行计划共享
- 使用ROW_COUNT变量仅检索所需的行
但这真的是最有效的方法吗?还是您认为最好检索整个结果集并在将数据发送到客户端的代码中实现分页?
谢谢您的提示!
问候,托马斯