求各位兄弟姐妹帮我优化一下查询速度,有酬谢!(表有300百多万条记录)

fanzs007 2012-03-20 12:14:07
开发环境:PB9.0+ORACLE8i

涉及四个张
我自己做了一个查询,在PL/sql执行同一个语句,以下记录,只要0.969秒

在PB执行查询,只要3秒

select count(*) from resa_sa_doc ------销售流水表73173条记录
select count(*) from resa_sa_dtl ------销售明细表143772条记录
select count(*) from pub_goods_price ------商品价格表393310条记录
select count(*) from pub_goods ------商品信息表21845条记录
-------------------------------------------------------------------------------

执行同一个语句,以下记录,长达两分钟
在PB执行查询,长达十分钟

select count(*) from resa_sa_doc ------销售流水表1662304条记录
select count(*) from resa_sa_dtl ------销售明细表3348437条记录
select count(*) from pub_goods_price ------商品价格表387370条记录
select count(*) from pub_goods ------商品信息表21515条记录
-------------------------------------------------------------------------------------
我是菜鸟,而且三年多不碰编程了,不懂得怎么做。


各位兄弟姐妹如果有兴趣,可以帮我一下,不胜感激。


我的QQ:286016189


--------------------------------------------------------------------------
select count(1) from resa_sa_doc --------56秒 1662304条记录
select count(1) from resa_sa_dtl --------64秒 3348437条记录
select count(1) from pub_goods_price --------3.5秒 387370条记录
select count(1) from pub_goods --------3秒 21515条记录
...全文
117 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanzs007 2012-03-20
  • 打赏
  • 举报
回复
新做了一个日期索引

PB代码日期由原来的to_char 改为 to_date,速度快了许多

谢谢大家
啊彪123 2012-03-20
  • 打赏
  • 举报
回复
你的要求多高,增量统计很牛逼唉!
yixilan 2012-03-20
  • 打赏
  • 举报
回复
有一个办法,你查询的这几张表都有索引没?试试把索引加到你的where条件中,比如说:
表resa_sa_doc的索引字段是(col1 varchar2, col2 number, col3 number),
这样加条件就行:
select count(1) from resa_sa_doc where col1 <> '' and col2 <> 0 and col3 <> 0;

然后比较加了where条件前后的执行计划,
肯定会有所变化的。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧