最近在做一个测试,往oracle数据库中塞20W的数据。 同时每塞1W条数据就打印一个日志到控制台。
代码如下:
import cx_Oracle
import time
consql = 'user/passwd@192.168.0.3/orcl'
oracon = cx_Oracle.connect(consql)
oracur = oracon.cursor()
laststamp = time.time()
for i in range(200000):
if i % 10000 == 0:
curstamp = time.time()
print 'commit count :', i, 'cost:',curstamp - laststamp
laststamp = curstamp
sqlstr = "insert into T_ZB_TEST (xh, xm) values ('%d','%d')"%(i,i)
oracur.execute(sqlstr)
oracon.commit()
oracon.close()
结果在跑的时候,跑到5W条的时候就卡住了,在数据库中搜索一直是5W条数据,程序也没有异常也没有停止,我按了一下ctrl+c,程序又继续往下执行写数据了。 打印如下,可以很明显的看出写入一万条数据花费的时间在140秒左右,而那么明显超过140秒的就是我发现了异常,然后按了ctrl+c后的结果。
commit count : 0 cost: 0.0150001049042
commit count : 10000 cost: 141.917999983
commit count : 20000 cost: 142.936999798
commit count : 30000 cost: 146.870000124
commit count : 40000 cost: 135.5
commit count : 50000 cost: 143.559000015
commit count : 60000 cost: 870.066999912
commit count : 70000 cost: 205.25
commit count : 80000 cost: 157.353000164
commit count : 90000 cost: 138.504999876
commit count : 100000 cost: 139.806999922
commit count : 110000 cost: 141.4150002
commit count : 120000 cost: 436.0849998
commit count : 130000 cost: 143.148000002
commit count : 140000 cost: 139.263000011
commit count : 150000 cost: 135.034000158
commit count : 160000 cost: 137.210999966
不知道这个是否是python语言本身的问题。 使用的python版本是2.7.13.