这句sql该怎么优化,数据量大的时候要执行一个多小时,慢死了
insert into swg_log_coll
(bank_no,
dep_name,
user_name,
full_name,
domain,
category,
gen_date,
log_state,
protocol,
hits,
addup_time,
record_cnt)
select bank_no,
nvl(dep_name, '--'),
nvl(user_name, '--'),
nvl(full_name, '--'),
nvl(domain, '--'),
nvl(category, '--'),
gen_date,
log_state,
nvl(protocol, '--'),
sum(hits),
sum(addup_time),
count(1)
from sr_swg_log_temp s)
where trunc(s.gen_date) >= to_date('"+earlietDate+"', 'yyyy-mm-dd')
and trunc(s.gen_date) <= to_date('"+madate+"', 'yyyy-mm-dd')
and log_state = '01'
group by bank_no,
dep_name,
user_name,
full_name,
domain,
gen_date,
category,
log_state,
protocol;sql 优化 sql
insert into swg_log_coll
(bank_no,
dep_name,
user_name,
full_name,
domain,
category,
gen_date,
log_state,
protocol,
hits,
addup_time,
record_cnt)
select bank_no,
nvl(dep_name, '--'),
nvl(user_name, '--'),
nvl(full_name, '--'),
nvl(domain, '--'),
nvl(category, '--'),
gen_date,
log_state,
nvl(protocol, '--'),
sum(hits),
sum(addup_time),
count(1)
from sr_swg_log_temp s)
where trunc(s.gen_date) >= to_date('"+earlietDate+"', 'yyyy-mm-dd')
and trunc(s.gen_date) <= to_date('"+madate+"', 'yyyy-mm-dd')
and log_state = '01'
group by bank_no,
dep_name,
user_name,
full_name,
domain,
gen_date,
category,
log_state,
protocol;sql 优化 sql
解决方案 »
- Oracle安装成功了,plsql登录 提示 无监听程序
- 执行 show parameter job_queue_process 出问题
- oracle中 仅可以为插入 LONG 列的 LONG 值赋值 的问题!
- 够郁闷的,PLSQL Developer,SQL Plus,em连接都正常!!
- 用java程序往oracle数据库中插入大量的数据,大概有一亿六千万条,如何能提高效率
- 一个存储过程中写游标的问题?
- 有两个表a,b 如何删除a中数据,条件是a.id=b.id and a.date<=to_adte('20001231','yyyymmdd')
- 报表问题
- 救急,高分相送
- 我要在数据库里放byte型数据
- 查看包和函数的视图是哪个?
- JOB中的interval能不能为NULL?
and s.gen_date <=to_date('2013-01-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
(bank_no,
dep_name,
user_name,
full_name,
domain,
category,
gen_date,
log_state,
protocol,
hits,
addup_time,
record_cnt)
select bank_no,
nvl(dep_name, '--'),
nvl(user_name, '--'),
nvl(full_name, '--'),
nvl(domain, '--'),
nvl(category, '--'),
gen_date,
log_state,
nvl(protocol, '--'),
sum(hits),
sum(addup_time),
count(1)
from sr_swg_log_temp s
where s.gen_date >= to_date('"+earlietDate+"', 'yyyy-mm-dd')
and s.gen_date <= to_date('"+madate+"', 'yyyy-mm-dd')
and log_state = '01'
group by bank_no,
dep_name,
user_name,
full_name,
domain,
gen_date,
category,
log_state,
protocol;
(bank_no,
dep_name,
user_name,
full_name,
domain,
category,
gen_date,
log_state,
protocol,
hits,
addup_time,
record_cnt)
select bank_no,
nvl(dep_name, '--'),
nvl(user_name, '--'),
nvl(full_name, '--'),
nvl(domain, '--'),
nvl(category, '--'),
gen_date,
log_state,
nvl(protocol, '--'),
sum(hits),
sum(addup_time),
count(1)
from sr_swg_log_temp s
where log_state = '01'
and s.gen_date >= to_date('"+earlietDate+"', 'yyyy-mm-dd')
and s.gen_date <= to_date('"+madate+"', 'yyyy-mm-dd')
group by bank_no,
dep_name,
user_name,
full_name,
domain,
gen_date,
category,
log_state,
protocol;