联合体insert性能疑问

现有情况为A库及B库互相做联合体insert语句如下,数据量约400W+:INSERT INTO EC_CUST_CGT_LMT_TEST (ORG_CODE,CUST_CODE,CGT_CODE,QTY_LMT,NOTE,UP_TIME)  SELECT COM_ID,CUST_ID,ITEM_ID,LMT_QTY,NOTE,'2014-02-11 16:35:02'    FROM SRM_XSM_CUST_IT...显示全部
现有情况为A库及B库互相做联合体insert语句如下,数据量约400W+:
INSERT INTO EC_CUST_CGT_LMT_TEST (ORG_CODE,CUST_CODE,CGT_CODE,QTY_LMT,NOTE,UP_TIME)
  SELECT COM_ID,CUST_ID,ITEM_ID,LMT_QTY,NOTE,'2014-02-11 16:35:02'
    FROM SRM_XSM_CUST_ITEM_LMT
    WHERE COM_ID='11230101'


其中SRM_XSM_CUST_ITEM_LMT表在A库,EC_CUST_CGT_LMT_TEST 表在B库
该SQL在A库执行需要大约18分钟,在B库执行仅需要2-3分钟,请问下解决思路?程序是写在A库执行的,有什么办法可以优化吗?附件附上A库及B库的访问计划,请教各位大神,谢谢!

附件:

附件图标lmt_A.out (6.54 KB)

附件图标lmt_B.out (7.97 KB)

附件图标limit_A_test1.out (7.1 KB)

收起
参与22

查看其它 19 个回答fengwhq的回答

fengwhqfengwhq数据库管理员某城商行
回复 16# zhenda

      生产环境的,不方便改,机器剩余内存还有不少。      该sql用db2advis看了下,没建议索引了,这个表上只有一个3楼发的主键索引。您的意思是在B库执行的时候使用的索引而在A没使用索引是吧?
       刚才做了下测试,将B库EC_CUST_CGT_LMT_TEST 表建立在A库名为EC_CUST_CGT_LMT_TEST1,这样两个表都在A库,执行该SQL,看访问计划显示依旧没使用索引,但是1分钟就执行完了,是否可以表示不是表扫描导致的性能问题呢,另外把测试的访问计划再贴一下。
银行 · 2014-02-20
浏览1067

回答者

fengwhq
数据库管理员某城商行

fengwhq 最近回答过的问题

回答状态

  • 发布时间:2014-02-20
  • 关注会员:2 人
  • 回答浏览:1067
  • X社区推广