各位老师好,如何提高insert效率呢,insert 1000行数据,ob大概秒级,mysql毫秒级,这个有什么优化方法吗,已经试过了加并发/*+ parallel(16) enable_parallel_dml */,但是效率基本没变化,insert时,发现memstore的使用率也不高。
1 个赞
可以看下执行计划或者从ocp上看下,耗时是在那个步骤,ob正常插入不应该这么慢
2 个赞
set ob_enable_trace_log = 1;
执行sql
show trace
看下主要是哪一步耗时最多
1 个赞
插入的数据跨分区了?
1 个赞
还得看怎么insert的,jdbc 吗?还是单纯insert很多条记录。
以及需要看表分区清理。
insert记录的分区分布。
才能更好的分析。
1 个赞
1、查看gv$sql_audit,查看时间消耗 ELAPSED_TIME,NET_TIME,NET_WAIT_TIME,QUEUE_TIME,DECODE_TIME,GET_PLAN_TIME,EXECUTE_TIME
2、开启sql_trace,查看具体消耗时间多的Title
1 个赞
单表
程序插,是不是不能加hint呢,确实是程序插的,这个怎么优化下呢
jdbc url上参数,可以百度,提高性能
1 个赞
insert /*+ parallel(16) enable_parallel_dml */ into … values 这种explain了下,好像是不生效的
jdbc 参数里加上 rewriteBatchedStatement=true 试试
1 个赞
一个value开并行没啥用。executeBatch接口要在url开启批量参数
1 个赞
查查这个表是不是索引太多,尤其是全局索引
1 个赞