insert into values 语句优化

insert into values插入单行数据

SQL语句,insert into values插入单行数据,执行10万次,执行时间1279秒,优化总体执行耗时。

SQL文本,单行insert values,没有select部分。需要进一步分析执行过程消耗。

insert into xxx(......) values(:1 , :2 , :3 , :4 , :5 , :6 , :7 , :8 , :9 , :10 , :11 , :12 , :13 , :14 , :15 , :16 , :17 , :18 , :19 , :20 )

ASH报告中,等待事件主要集中在db file sequential read单块读上。

查看等待事件的响应时间

单块读平均响应时间14毫秒,io略慢。

set line 200 pages 1000
select sql_id,event,avg(time_waited)/1000,count(*)
from gv$active_session_history
where
    sql_id='2y2y48vssc6jv'
group by sql_id,event
order by count(*);

查看等待事件访问对象

单块读涉及到对象均是索引

set line 200 pages 1000
select sql_id,event,current_obj#,count(*)
from gv$active_session_history
where
    sql_id='2y2y48vssc6jv'
group by sql_id,event,current_obj#
order by count(*);

select object_id,object_name,object_type from dba_objects where object_id in (471141,471142,471143);

表大小30GB,30个列。

三个对象为表上的三个索引,大小均为10GB,单个索引2个列。明显索引碎片较大。

优化建议:

1.能不能程序并发执行insert?

2.等待事件都在db file sequential read单块读上,平均单次响应时间14毫秒,io有点慢。优化存储响应时间。

3.insert语句执行过程中主要消耗在索引维护上,三个索引,索引碎片比较大,重建这三个索引,能够减少物理读次数,对维护索引效率提高有帮助。(首选

SYS@db11g> alter index index_t1012 rebuild online parallel 8;
SYS@db11g> alter index index_t1012 noparallel;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库实战笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值