Skip to Main Content

Chinese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

存储过程中通过dblink关联本地表进行insert插入语句执行非常慢,大量时间消耗在"SQL*Net message from dblink"上

user2539933Nov 26 2012 — edited Nov 28 2012
如下信息对10046事件格式化后的一部分:

INSERT INTO TMP_PZ_CWBB_LRB(PZXH,NSRDZDAH,L001,L002,L005,L006,L009,L010,L021,L022,L025,L026,L029,L030,L033,L034,L037,L038,L045,L046,L049,L050,L053,L054,L057,L058,L061,L062,L085,L086,L089,L090,L109,L110,L117,L118,L121,L122,L125,L126,L149,L150,SB_RQ,TB_RQ,SSSQQ_RQ,SSSQZ_RQ,YX_BZ,NSR_SWJG_DM,SWJG_DM,LRR_DM,LR_RQ,XGR_DM,XG_RQ,ND,TIMESTAMP)
SELECT T.PZXH,T.NSRDZDAH,B.BQJE_1,B.SQJE_1,B.BQJE_2,B.SQJE_2,B.BQJE_3,B.SQJE_3,B.BQJE_4,B.SQJE_4,B.BQJE_5,B.SQJE_5,B.BQJE_6,B.SQJE_6,B.BQJE_11,B.SQJE_11,B.BQJE_9,B.SQJE_9,B.BQJE_12,B.SQJE_12,B.BQJE_13,B.SQJE_13,B.BQJE_15,B.SQJE_15,B.BQJE_16,B.SQJE_16,B.BQJE_17,B.SQJE_17,B.BQJE_10,B.SQJE_10,B.BQJE_8,B.SQJE_8,B.BQJE_7,B.SQJE_7,B.BQJE_18,B.SQJE_18,B.BQJE_19,B.SQJE_19,B.BQJE_20,B.SQJE_20,B.BQJE_14,B.SQJE_14,T.SBRQ,T.TBRQ,T.SSSQ_Q,T.SSSQ_Z,T.YXBZ,T.NSR_SWJG_DM,
T.SWJG_DM,T.LRR_DM,T.LRRQ,T.XGR_DM,T.XGRQ,TO_CHAR(T.SSSQ_Q,'YYYY'),SYSDATE
FROM NEW_CWBB_SSGS_YBQY_LRB@query B,
TMP_SB_CWBB T
WHERE T.PZXH = B.PZXH
AND NOT EXISTS (SELECT A.NSRDZDAH FROM TMP_PZ_CWBB_LRB A WHERE A.NSRDZDAH = T.NSRDZDAH AND A.SSSQQ_RQ = T.SSSQ_Q AND A.SSSQZ_RQ = T.SSSQ_Z)

call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.10 0.38 0 0 1 0
Execute 1 285.19 2650.01 15 137039 14149 1749
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 285.29 2650.40 15 137039 14150 1749

Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 29 (recursive depth: 1)

Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
single-task message 1 0.05 0.05
SQL*Net message to dblink 3711701 0.00 1.81
SQL*Net message from dblink 3711701 0.56 2270.37
row cache lock 388 0.00 0.11
gc cr grant 2-way 3 0.00 0.00
db file sequential read 15 0.01 0.06
gc current grant 2-way 17 0.00 0.00
gc current multi block request 20 0.00 0.00
enq: TT - contention 2 0.00 0.00
log file sync 7 0.00 0.00
enq: FB - contention 2 0.00 0.00
latch: shared pool 1 0.00 0.00
********************************************************************************

可以看出" SQL*Net message from dblink"等了2270.37s... 时间基本上全消耗在它上面了。

情况说明:
1. 如果将存储过程中的这个insert语句拉出来单独执行,速度非常非常快。但在存储中就慢成这样。。。
2. dblink中的那个远程表非常少,才几百M,差不多几万条记录数。
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 26 2012
Added on Nov 26 2012
4 comments
9,849 views