解决方案 »
- oracle存储过程调用
- 分组查询将多行字段合并到一行的SQL写法,大家看看该怎么写~~~
- 双重统计
- Oracle能作双机热备吗?不是集群的
- oracle嵌套查询的问题
- 大家帮忙看看这条插入语句什么地方错了!!!
- 想删除型号出现次数小于5次的记录,这样SQL语句怎样写?
- Oracle菜鸟的问题:EXP/IMP使用中用户名和口令问题??
- ...where name = 'xx' or name = 'yy' or name = 'zz' 是否可以写成类似于 where name in( 'xx' ,'yy', 'zz')这样的结构?
- 急急!谢谢。oracle里,怎样将数据库里选出的一列值一次性付给一个数组?
- 获取当前和上一次记录 获取当前和上一次记录
- 求答案,oracle job 没在设定的时间运行
B.TYPE加索引肯定没啥效果。
两个表都5000万的数据量不分区的话肯定够呛
楼上说的应该是散列分区,范围分区等吧
我的意思是,既然数据量有这么大,肯定不是一次性插入的。可以依据插入的时间,按照时间建立对应的时间分区,我就是这么理解的。
SELECT A.XX FROM (select a,b,c from TABLE1) A, (select a,b,c from TABLE2 where type in (1,2,3)) B
WHERE A.A=B.A
AND A.B=B.B
AND A.C=B.C
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 一共1,2,3,4 这个条件只排除掉1/4也就是还是有3/4的数据。另外设置数据库参数其他方面有没有可优化的地方,只要速度上去就可以了
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 一共1,2,3,4 这个条件只排除掉1/4也就是还是有3/4的数据。另外设置数据库参数其他方面有没有可优化的地方,只要速度上去就可以了这就是整个语句的话,就没什么好优化的了。我是不太清楚,一个查询结果有几千万条记录,那么这个查询的意义何在
即便连接的列有索引 也没有效果
全表扫描已经无法避免 只能 where 后的非join条件上 优化 尽量减少结果集对了 大表关注下水位线问题
这个查询是为了生成数据插入到一张表中。etl中的其中一步。
有规定是需要在规定的时间内完成的。如果确实需要加大内存或者调增pga中的参数可以实现,那也是可以的。
如果结果集就有这么大,该查询没有优化余地。倒是可以试着分几批来插入
其实也不用做这个中间表吧!你可以把一步分为三步去做,取第一个表符合它条件的记录,取第二个表符合它条件的记录,第三步看情况放到一起去关联。
这个查询是为了生成数据插入到一张表中。etl中的其中一步。
有规定是需要在规定的时间内完成的。如果确实需要加大内存或者调增pga中的参数可以实现,那也是可以的。你又不需要排序,加大PGA 做什么。
这个查询是为了生成数据插入到一张表中。etl中的其中一步。
有规定是需要在规定的时间内完成的。如果确实需要加大内存或者调增pga中的参数可以实现,那也是可以的。你又不需要排序,加大PGA 做什么。没看上面, hash join 是要耗内存的, 但是如果是对hash join 调, 这点内存加上 也是杯水车薪
前两天看书,看到一个"并行执行",LZ可以试一下,不知道能不能快点。
select /*+ parallel(t,4)*/ t.a from t