oracle 单表查询百万级别数据,使用order by主键id,查询速度很慢,怎么优化

select*fromtb_communication_loglorderbyl.iddesc;--耗费40s... select * from tb_communication_log l order by l.id desc; -- 耗费40s 展开
 我来答
wumingchenxin
2016-12-09 · TA获得超过1271个赞
知道大有可为答主
回答量:1491
采纳率:87%
帮助的人:244万
展开全部
如果不怕,占用空间的话,
1。创建物理视图。在试图中固化排序。
2。你的数据是百万级别,测试一下你的时间是耗费在排序上,还是数据提取上。甚至显示上。
3。你的id是数字型的吧,要是字符型,那肯定慢啊。
4。使用存储过程中的pipeline来提取数据。
追问
1、物理视图实时性是不是不能保证
2、时间耗费在了排序上 直接select * from table 很快
3、number型 的
4、这个怎么弄?
追答
如果能够确认时间消耗在排序上,那4就不必要了。那是优化传输的。分批传输数据。
物理试图实时性,受刷新影响,快刷新,定期刷新。
快刷新是commit时刷新。你可以测试一下。至于能不能适合你的系统,就要自己验证了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式