一个查询语句优化,请大家帮忙看看!!!

lanren 2003-03-20 03:37:13
现在有两张表(大约都有千万条以上的数据)
A(id varchar2(20),aName)
B(id varchar2(20),bName varchar2..................)

要做一个关联
select B.bName,A.aName,count(*) nCount
from A,B
where A.id=B.id and ...
group by A.aName,B.bName

速度奇慢无比,有什么好办法可以优化这个sql语句,在两个表的id上都已经有主健索引了
...全文
22 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanren 2003-03-20
  • 打赏
  • 举报
回复
to xiaohuan8101(笑笑)
好像书上是说要在多处理器上用并行查询才会有用,不知道是不是这样。
xiaohuan8101 2003-03-20
  • 打赏
  • 举报
回复
我试验了cenlmmx所说的:加上/* +pararell */提示,并行查询
速度怎么更慢了?
lanren 2003-03-20
  • 打赏
  • 举报
回复
to cenlmmx(mm):
1.SMP是指有多个处理器吗,这应该有吧,
2.所谓的驱动表是不是就是写在前面的那张表,这两张表虽然都很大,但一般每次做统计只是其中一部分记录,大约一百万条左右,两张表记录差不多。
 如果我先把他们连接到一张中间表,再做group by会不会快一点
beckhambobo 2003-03-20
  • 打赏
  • 举报
回复
select aname,(select count(1) from b where id=a.id) from a ;
supkim 2003-03-20
  • 打赏
  • 举报
回复
gz
cenlmmx 2003-03-20
  • 打赏
  • 举报
回复
如果SMP,加上/* +pararell */提示,并行查询.
把返回记录少的表当做驱动表,但用group还是会慢的.
thinkcat 2003-03-20
  • 打赏
  • 举报
回复
关注

17,377

社区成员

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

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