MSSQL如何提高分页效率
MSSQL中如何优化查询语句以提高前台分页效率,以前实现分页的方法是先查询出所有数据,然后,在将需要显示的一部分数据转换为JSON格式的数据,个人感觉这种方法效率很低,特别是数据量很大的时候,就显得特别明显了,所以,想改进一下分页的功能。我目前的思路有两个,一个是用WITH
AS语句先将数据保存到一个中转表中,然后,用NOT IN方法查询出每一页需要的数据,但感觉这样改进之后,查询的速度更慢了,可能是我联合查询的表太多了吧,所以,我转向第二个思路,就是现将所有数据插入到一个临时表中,然后,用NOT IN语句查询临时表。这样,就省去了各种表连接,但又感觉将数据插入临时表中有点不明智,因为,我的项目中查询是很频繁的,每查询一次,就插入一次数据到临时表中,感觉不妥。
这个问题困扰了我很久了,希望高手指点!
------解决方案--------------------
看总结果集大小,
如果不大, 可以全部返回给前端程序, 然后在前端程序里慢慢翻页.
如果比较大, 则分批返回, 例如第一次先返回20页的数据, 安装一般的用户习惯,
不会耐心的翻到20页就退出的. 如果继续往下翻, 再去取21-40页出来.
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------可以用top 100 每页20条 就5页了 要看后面6也页的时候 再传入当前页 去数据库拿分页的数据