oracle两张大表table1 和table2数据量都在5000万左右。
两张表均有a,b,c三个字段,并通过这三个字段关联
查询的sql语句如下
SELECT A.XX FROM TABLE1 A, TABLE2 B
WHERE A.A=B.A
AND A.B=B.B
AND A.C=B.C
AND B.TYPE IN (1,2,3)
B.TYPE 有4个类型为1,2,3,4平均都是1000多万。
请问这个sql怎样优化,做索引感觉没啥效果,因为基本上是全表关联,那做分区表如何,比如两张表按照(a,b,c)做hash分区
。请问这种语句应该怎样优化,大家帮忙给个建议,谢谢!
------解决方案--------------------
待高手解答。。学习一下。。
B.TYPE加索引肯定没啥效果。
两个表都5000万的数据量不分区的话肯定够呛
------解决方案--------------------
我能想到的也不多,表a和表b都建立分区,表b的TYPE列最好建立索引
------解决方案--------------------
请问a,b,c三个字段存的都是什么类型的数据
楼上说的应该是散列分区,范围分区等吧
------解决方案--------------------
分区在这里没用
只是两张大表简单的连接,返回千万级的结果
全表扫描+哈希连接是免不了的,没什么可优化的地方
这个查询有什么用处呢?还是只是为了建一个视图