1.记录自己在PL/SQL上写的几张表的关联条件没有跑出来的一些优化
- join后面跟上筛选条件
left join on t1.id = t2.id and --- 带上分区字段,如 t1.month = 202405,
操作跑不出来的一些问题,可能是数据量过大,未做分区过滤
- 创建临时表
CREATE TABLE testtable COMPRESS NOLOGGING TABLESPACE
在多表关联如下时,可以为一些从表创建临时表,提前在内存中存储,这样可以提高一定的查询效率。 临时表需要定期清理。
select
from t1
join t2 on t1.xx = t2.xx
join t3 on t1.xx = t3.xx
....
- 在我尝试做一些从表的临时表时候,我对比了自己写的with CTE子查询的方法,发现
cte的方式多个子查询,与多张临时表的方式,来完成多表连接,效率上的差距大都差不多。
- 按照经理的指点,记得关联从表是,如关联t2表时,需要做关联字段的唯一性校验。
select count(1),count(distinct t2.id) from t2 避免数据量过大或者笛卡尔积。