使用cx_Oracle将数据批量加载到oracle时遇到性能问题。似乎附加提示不适用于cx_Oracle或至少我无法使其工作。任何帮助将不胜感激
我试图使用cx_Oracle将200万条记录批量推送到Oracle,但是从oracle到oracle需要1.5分钟,如果我使用append提示它只需要20秒。
insertquery="""insert /*+ append parallel(XYZ,8) */ into XYZ(A,B,C,D,E,F,G,H, I,J,K,L,M,N,O,P,Q,R,S) VALUES('abc',:B,'N',:D,:E,:F,:G,:H,:I,:J,:K,:L,:M,:N,:O,'MIG','MIG',{current_time},{current_time})""".format(current_time=current_time)
print("XYZ START",datetime.datetime.now())
trg_cur.prepare(insertquery)
trg_cur.executemany(None,entityList)'''
如果我保留附加提示,则所用时间保持不变。除了线程之外还有什么方法可以改善这种性能,我会在多个线程中运行它,因为我的输入数据可以达到几亿行,我必须在多个表中插入这些数据
使用append_Values就像一个魅力,40秒减少到10秒,推动100万条记录
insertquery="""insert /*+ append_values parallel(XYZ,8) */ into XYZ(A,B,C,D,E,F,G,H, I,J,K,L,M,N,O,P,Q,R,S) VALUES('abc',:B,'N',:D,:E,:F,:G,:H,:I,:J,:K,:L,:M,:N,:O,'MIG','MIG',{current_time},{current_time})""".format(current_time=current_time)