三个表简单的关联查询,但是速度挺慢的。
a表的数据稍大点。1000万左右,列有10多个,
关联的字段是id已经在id 上建立了索引
a表11个字段 id,a1,a2,a3...a10,假设有1000多万条数据
b表3个字段id,b1,b2
c表3个id,c1,c2select a.id,sum(a.a1),sum(b.b1),sum(c.c1),max(a.a10) from a,b,c where
a.id=b.id and
a.id=c.id
group by a.id按上面的SQL 我在a表的ID上建立了索引。
还是很慢。一次80多秒。
我可能还要在group里加一项。group by a.id,a.a1
怎么能优化点,谢谢。C表无用,只是做例子多关联了下。
a表的数据稍大点。1000万左右,列有10多个,
关联的字段是id已经在id 上建立了索引
a表11个字段 id,a1,a2,a3...a10,假设有1000多万条数据
b表3个字段id,b1,b2
c表3个id,c1,c2select a.id,sum(a.a1),sum(b.b1),sum(c.c1),max(a.a10) from a,b,c where
a.id=b.id and
a.id=c.id
group by a.id按上面的SQL 我在a表的ID上建立了索引。
还是很慢。一次80多秒。
我可能还要在group里加一项。group by a.id,a.a1
怎么能优化点,谢谢。C表无用,只是做例子多关联了下。
解决方案 »
- repalce替换问题
- 加表空间问题,ALTER TABLESPACE时候突然断网会怎么样
- oracle系统中oradata目录问题
- top sql和top session疑问?
- 请各位oracle高手给优化一下查询sql
- 急问!如何进行并行查询?
- 触发器能解决这个问题吗吗?
- 一个很急的问题(java.sql.SQLException: ORA-00001: 违反唯一约束条件)
- ORA-01861: 文字与格式字符串不匹配的问题
- 急急!!PB中连接oracle时提示“Error while retrieve text for error ora-12154”?
- ORACLE 10G SQLPLUS不输入主机字符串能连上,输入了就连不上了,请问什么原因?
- 高难度问题,请高手帮解决一下
还是很慢
还有那地方要写的吗
没有where语句,绝对的全表扫描,索引是没有意义的。如果有什么可以改进的看看能否把表空间整理了! 减少碎片和不必要的i/o.
哈哈,叫客户再花点钱,硬件性能提高上去
将表起别名,将别名作为前缀加在各查询字段上。
a表连接b表和c表,那么a表是交叉表,将交叉表做为基础表放在b、c后,如from b,c,a如果无其他过滤条件,1000多万条记录的扫描,几十秒应该很正常吧