永发信息网

Oracle的极大数据量的分页查询问题

答案:6  悬赏:20  手机版
解决时间 2021-04-05 04:28
Oracle的分页查询在表中数据量极大时(上亿条、有索引),在第一次查询会出结果(3、5秒),而相同条件在第一次查询出结果立即再次进行查询时,会出现长时间等待也没有结果的情况(好像锁住了)。
请问如何解决,谢谢!

语句示例如下(数据行数cnt大约从几千、几万、十几万不等,都是同样的问题):
SELECt * FROM ( SELECt A.*, ROWNUM RN FROM (select count(*) over() CNT,
ta.ca,ta.cb,ta.cc,... from ta where fname like 'test%' ORDER BY ta.ca
) A WHERe ROWNUM <= 15 ) WHERe RN >= 1
最佳答案
1.把星都换成需要的字段名试一下。
2.索引顺序排列正确(这个你查一下,索引不是建 了就可以。查询时有顺序的,四年前的项目,改变顺序后,时间由35s 提升到6-8s,具体的记不清了,只记得有这么回事。)

回去以后试一下你的SQL,只有数据多才出现这个问题吗?字段长度大约都多少?
全部回答
相同条件在第一次查询出结果立即再次进行查询时 你第二次查询你查出来的结果集是去全表遍历查的 结果集是没有就是一推数据 上面没有索引没有任何东西,建议能先处理逻辑关系减少数据量 orderby 这些能不用就不用 like也会让index失效 用between可以代替
第一次能快速的出来结果,就说明了语句本身没有太大的问题。现在不明白你的第二次查询是一直都不出来结果,还是说能出来结果,但是结果出来的非常慢。
没法优化。查询条件中用了like子句,索引会不起作用,造成遍历整张表。 如果没有like及order by子句的话,会快很多
你这样做分页是全部查询后分页吗?为何不做成分页后查询?因为你只写了语句示例具体情况不是很了解。我们曾经做过一次查询后分页会使得页面刷新很慢,但调整后就相对快很多了。
打数据量的话,其实是查询的效率问题了。一般的索引、字段优化都没想过的话,考虑拆表、分区,如果是汇总型数据的话,那么可以对查询的数据进行前期汇总若干次之后在进行查询。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我是外地的 北京大兴区 限号吗
直线电机的输出轴是不是直线移动,而不是旋转
哪种瑜伽适合初学者,埙初学者用什么调的最好
CFA的概念?谁可以简单阐述一下CFA的具体含义
老公喜欢老婆闺蜜来家里聚会
考驾照科目三挂了一次 怎么办?心里都害怕了
我国人民代表大会制度与我国人民民主专政的关
包公是什么颜色的脸谱,何家英工笔人物画脸部
鐾蚕匆禄鶻QG80-HBDX14686LU怎么样
思念家乡的古诗词多一点
连着两次被人伤害,我怎么了?
藕和肉炖出来怎么是黑色的?
御盐堂的盐是自贡的千年丼盐吗?
王者荣耀助手里王者时刻怎么删除啊 ????好急
怎么手机底部动不动出现那个百度推广广告
推荐资讯
阿拉伯语祝福语怎么写,富有诗意的句子用来描
中学生小宁与同学见面就问“今天你‘偷菜’了
当电脑显示按f1f2f5时怎样退出
SS501主唱许永生的音域是4个八度吗?在哪个节
求忍者龙剑传 鲜烈之龙吉他谱 GTP格式的 感谢
改装过车子能上高速么
您好,金字塔数字游戏第一行是22 第二行是12
单选题消防队员灭火时,常用一种“灭火弹”.
葶苈子怎么煎
谷歌浏览器有莫名其妙的广告出现,不是网页本
手掌底部到中指指尖17cm抓篮球可能吗?
你见过母鸡下蛋,小狗吃食,牛吃草吗?……选你
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?