每天一问!关于多表复合查询分页效率问题!

chenkui2008 chenkui2008 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
由于系统运行了5,6年,数据越来越多,虽然部分已经数据已经归档,减少数据库的压力,但是日常的工作流任务等等数据量还是很大的,由于原系统都是自带的分页,现在随着数据量大,效率越来越低,所以考虑分页,数据库是Sqlserver2008,由于分页查询语句都是多表联合查询:一般3-6个表相互查询,where条件一堆,导致建索引速度都慢,用Row_number分页呢,由于那个查询sql太复杂,导致效率也不是很明显:比如原始sql:slect a.A1,b.A1,c.C1,d.D1 from a,b,c,d where
a.A=b.A and a.C=C.c and c.status='C' and 等等

改成分页后的sql:select * from (select row_number over (order by a) as a,* from
(原始sql)) a where a between m and n,发现有时候快,有时候超慢,还不如自带的,通过查询计划发现:逻辑扫描次数达到100W次,我狂汗,大家有没有这方面优化的建议啊!交流交流,就是复杂视图分页,我的sql里其中还有复杂的sql函数计算问题……
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
chenkui2008
C# 111,128 成员 642,537 内容