每天一问!关于多表复合查询分页效率问题!
由于系统运行了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函数计算问题……
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函数计算问题……
...全文
相关推荐
Spring Data JPA分页复合查询原理解析
Spring Data JPA提供了多种方式来实现分页查询和复合查询,开发人员可以根据实际情况选择合适的方法来实现查询需求。
MySQL复合查询详解[源码]
本文还强调了多表查询的本质,即将多表问题转化为单表问题来处理。这是通过正确地构建JOIN语句和利用子查询来实现的。在实际应用中,自连接和子查询技术的灵活运用能够显著提升数据检索的效率和准确性。
MySQL复合查询与连接[项目源码]
此外,文章还特别强调了所有查询问题在MySQL中都可以转化为单表问题,这表明即使是最复杂的查询,都可以通过合理的查询策略,包括复合查询和连接查询,来简化为单个表的查询。
MySQL复合查询解析[可运行源码]
在性能优化方面,文章强调了复合查询中索引优化的重要性,说明了如何通过合适的索引设计来提升查询效率。此外,还介绍了查询重写技巧,通过重写查询来改善性能。
120_MySQL复合查询从基础到高级应用全面解析.docx
在进行复合查询时,开发者需要特别注意处理更复杂的数据关系,减少应用程序中的数据处理逻辑,并提高数据检索效率。


