MSSQL如何提高分页效率

lycorisraya 2012-01-05 06:49:31
MSSQL中如何优化查询语句以提高前台分页效率,以前实现分页的方法是先查询出所有数据,然后,在将需要显示的一部分数据转换为JSON格式的数据,个人感觉这种方法效率很低,特别是数据量很大的时候,就显得特别明显了,所以,想改进一下分页的功能。我目前的思路有两个,一个是用WITH
AS语句先将数据保存到一个中转表中,然后,用NOT IN方法查询出每一页需要的数据,但感觉这样改进之后,查询的速度更慢了,可能是我联合查询的表太多了吧,所以,我转向第二个思路,就是现将所有数据插入到一个临时表中,然后,用NOT IN语句查询临时表。这样,就省去了各种表连接,但又感觉将数据插入临时表中有点不明智,因为,我的项目中查询是很频繁的,每查询一次,就插入一次数据到临时表中,感觉不妥。
这个问题困扰了我很久了,希望高手指点!
...全文
239 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcjacky 2012-01-10
  • 打赏
  • 举报
回复
可以用top 100 每页20条 就5页了 要看后面6也页的时候 再传入当前页 去数据库拿分页的数据
dongsheng10101 2012-01-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ap0405140 的回复:]
看总结果集大小,

如果不大, 可以全部返回给前端程序, 然后在前端程序里慢慢翻页.

如果比较大, 则分批返回, 例如第一次先返回20页的数据, 安装一般的用户习惯,
不会耐心的翻到20页就退出的. 如果继续往下翻, 再去取21-40页出来.
[/Quote]

要先设置查询条件(有些地方可设备默认查询条件,方便用户更快捷查询数据),
再拉出查询结果集。
zjl8008 2012-01-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ap0405140 的回复:]
看总结果集大小,

如果不大, 可以全部返回给前端程序, 然后在前端程序里慢慢翻页.

如果比较大, 则分批返回, 例如第一次先返回20页的数据, 安装一般的用户习惯,
不会耐心的翻到20页就退出的. 如果继续往下翻, 再去取21-40页出来.
[/Quote]
方法不错
koumingjie 2012-01-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zxg1258 的回复:]
总结果集不是很大,现在有5千左右的数据量,但考虑到以后每年的注册学生数大概有三万左右,而且每次查询的时候都是从六七个表中联合查询的。我现在的做法是每次返回一页的数据,但即使这样感觉效率还是不是很高。
[/Quote]
关联表是有些多,建立索引试试吧
lycorisraya 2012-01-05
  • 打赏
  • 举报
回复
总结果集不是很大,现在有5千左右的数据量,但考虑到以后每年的注册学生数大概有三万左右,而且每次查询的时候都是从六七个表中联合查询的。我现在的做法是每次返回一页的数据,但即使这样感觉效率还是不是很高。
唐诗三百首 2012-01-05
  • 打赏
  • 举报
回复
看总结果集大小,

如果不大, 可以全部返回给前端程序, 然后在前端程序里慢慢翻页.

如果比较大, 则分批返回, 例如第一次先返回20页的数据, 安装一般的用户习惯,
不会耐心的翻到20页就退出的. 如果继续往下翻, 再去取21-40页出来.

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧