应用批量插数据到表,总插4万条,每1000条提交,但是会出现卡的情况,对应的的等待事件是sql net more data from client?表子段比较多。这个能判断为是网络原因吗?
这个是等待client的网络数据,你们批量提交是client是怎么做的?
卡是commit那个点慢,还是整个批处理过程都可能慢?
是直接发sql text到后台还是调用后台存储过程?
评论
有用 0据应用运维樊哙使用的jdbc的addbatch进行操作的。
直接发的sql text到后台的。
评论
有用 0
评论
有用 0
评论
有用 0insert into SPPI_BOND_TEST_RESULT(ID, ZQDM, ZQJC, IS_ADOPT, QBZDDGRJ, IS_INTERVENE, ZQXZ, FXFS, IS_YX, UPDATE_TIME, UPDATE_USER, COUNT_RESULT, FALSE_REASON, TBJ_REASON, OTHER_TERM, IS_ADOPT_HIS, IS_INTERVENE_HIS, IS_RELEASE, APPROVAL_STATUS, CHECK_USER, CHECK_DATE, TEST_DATE, OPTION_TIME, IS_DELETE) VALUES(:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :1 7, :18, :19, :20, :21, :22, :23, :24);
这条语句总共执行78次,每次约22秒左右,从18点09分到18点30分。
评论
有用 0导出18:00-18:30的dba_hist_active_sess_history发出来吧,sqlid也找出来。
评论
有用 0最简单的诊断方法是 10046 跟踪一下这个session。上传一下trace。
评论
有用 010046已收集,链接: https://pan.baidu.com/s/1IF0X6rpG4mazA4YPM6rp8g 提取码: gnyg 。
评论
有用 0你的问题在于写日志太慢了:
EXEC #2:c=0,e=663,p=0,cr=1,cu=7,mis=0,r=1,dep=0,og=1,plh=0,tim=199411454697382
WAIT #2: nam='SQL*Net message to client' ela= 0 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=199411454697415
WAIT #2: nam='SQL*Net message from client' ela= 601 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=199411454698035
CLOSE #2:c=0,e=4,dep=0,type=3,tim=199411454698057
XCTEND rlbk=0, rd_only=0, tim=199411454698079
WAIT #0: nam='log file sync' ela= 4302 buffer#=10993 sync scn=1469605365 p3=0 obj#=-1 tim=199411454702426
WAIT #0: nam='SQL*Net message to client' ela= 1 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=199411454702453
WAIT #0: nam='SQL*Net message from client' ela= 568 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=199411454703034
XCTEND rlbk=1, rd_only=1, tim=199411454703053
WAIT #0: nam='SQL*Net message to client' ela= 0 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=199411454703082
WAIT #0: nam='SQL*Net message from client' ela= 816 driver id=1952673792 #bytes=1 p3=0 obj#=-1 tim=199411454703912
log file sync 的时间最长,可能是存储太慢,有性能瓶颈。
评论
有用 0好的,谢谢盖老师。
评论
有用 0
墨值悬赏

