db2 merge 操作的优化问题。

情况是这样的:
db2数据库,从一张接口表table_i 中向 正式表table_info 中做merge操作。 数据量大概在230W 左右,这两张表都没有任何约束和索引,30多列。
merge into table_info a using (select distinct * from table_i b ) on (a.number = b.number)...
我的问题是:
1:这个merge太慢了,有什么合适的方式尽量优化下。
2:做merge操作的时候同时查表,很容易锁表,有没有什么方式可尽量避免。

谢谢。! 不要网上随便粘贴复制的。采纳了还加分。。
哦。对了,还有个情况是这样的。
delete from table_info where number not in (select number from table_i)

怎么把这个sql也尽量优化,速度搞到最快。。。谢了啊

第1个回答  推荐于2017-12-16
easy .
1: number加上索引 ;
2: 查询语句加上with ur 指定隔离级别可以避免锁表

另外:number加上索引之后也就加快delete操作的效率追问

请问下大神哈,这个是普通索引好,还是唯一索引好?

还有一个全表删除的操作,请问是delete from table效率高还是alter ...not logged initially with empty table 这个效率高? 哪个更适用?

谢谢。

追答

可以是唯一索引就用唯一索引,不行就普通。
全部删除当然是 empty table 高~

本回答被提问者和网友采纳