语句优化

huiruansoft 2013-07-11 01:49:05
写的一个导出查询
CREATE OR REPLACE VIEW V_CREATE_KA_SELECTALL_EXPORT AS
select
a.BASE_TYPE,
a.AUTO_ID,
a.TRADE_CODE_B,
a.TRADE_NAME,
a.COP_APP_NO,
a.CAR_NO,
a.STATUS,
a.PORT_STATUS,
wm_concat(';'|| '' || b.gatejob_no || '</br>' )as BILL_NO,
a.SENDMARK,
a.TSTYPE,
a.YWTYPENEW,
a.GATEJOB_NO_T,
a.STATUS_NAME,
a.PORT_STATUS_NAME,
a.CREATEDATE,
a.GDATETIME,
a.YWTYPE,
a.TYPE,
a.YWTYPENAME,
a.CAR_NUM,
a.LAST_CAR,
a.LASTNAME,
a.FLAG1,
a.FLAG2,
a.TOTAL_WEIGHT,
a.TOTAL_AMOUNT,
a.ICCODE,
a.F_CONTA_NO,
a.F_CONTA_WT,
a.A_CONTA_NO,
a.A_CONTA_WT,
a.CAR_J_WT,
a.FROMKA,
a.TOKA,
a.FROMKA_NAME,
a.TOKA_NAME,
a.F_CONTA_TYPE,
a.A_CONTA_TYPE,
a.CAR_TYPE,
a.DET_TYPE,
a.REMARK2,
a.TSTYPENAMES
from V_CREATE_KA_SELECTALL a
left join (SELECT Base_ID, GATEJOB_NO, GATEJOB_NO_REL
FROM CREATE_KA_JOB
UNION ALL
SELECT Base_ID, GATEJOB_NO, GATEJOB_NO_REL
FROM PORT_CREATE_KA_JOB) b
on a.AUTO_ID = b.base_id
group by a.BASE_TYPE,
a.AUTO_ID,
a.TRADE_CODE_B,
a.TRADE_NAME,
a.COP_APP_NO,
a.CAR_NO,
a.STATUS,
a.PORT_STATUS,
a.SENDMARK,
a.TSTYPE,
a.YWTYPENEW,
a.GATEJOB_NO_T,
a.STATUS_NAME,
a.PORT_STATUS_NAME,
a.CREATEDATE,
a.GDATETIME,
a.YWTYPE,
a.TYPE,
a.YWTYPENAME,
a.CAR_NUM,
a.LAST_CAR,
a.LASTNAME,
a.FLAG1,
a.FLAG2,
a.TOTAL_WEIGHT,
a.TOTAL_AMOUNT,
a.ICCODE,
a.F_CONTA_NO,
a.F_CONTA_WT,
a.A_CONTA_NO,
a.A_CONTA_WT,
a.CAR_J_WT,
a.FROMKA,
a.TOKA,
a.FROMKA_NAME,
a.TOKA_NAME,
a.F_CONTA_TYPE,
a.A_CONTA_TYPE,
a.CAR_TYPE,
a.DET_TYPE,
a.REMARK2,
a.TSTYPENAMES;

3-4万条数据还可以 查到8万条的时候 就很慢 占用内存很大了
...全文
54 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sych888 2013-07-11
a.AUTO_ID = b.base_id 有索引没? 要用那么多多字段排序,效率肯定会降下来,看看能否改写一下语句
回复
相关推荐
发帖
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2013-07-11 01:49
社区公告
暂无公告