python – pyodbc在我的机器上非常慢,但在其他机器上却没有
发布时间:2020-12-20 13:32:20 所属栏目:Python 来源:网络整理
导读:我正在使用 python 2.7和pyodbc 3.0.6访问与我的计算机在同一网络上运行的db2(9.7)服务器. 以下是一个非常简单的例子,类似于我想要做的事情. import pyodbc as dbdef dbcur(connectname): con = db.connect(connectname) cur = con.cursor() return cur,cond
我正在使用
python 2.7和pyodbc 3.0.6访问与我的计算机在同一网络上运行的db2(9.7)服务器.
以下是一个非常简单的例子,类似于我想要做的事情. import pyodbc as db def dbcur(connectname): con = db.connect(connectname) cur = con.cursor() return cur,con def main(): print 'a' cur,con = dbcur('DSN=MYODBCCON') print 'b' # X.name is a short varchar qry = """ select X.name as N from schema.table as X """ print 'c' cur.execute(qry) print 'd' c = 0 for row in cur: c+=1 if not c%100: print c,row return if __name__ == '__main__': main() 这段代码在我的Windows 8计算机上运行速度非常慢(10秒内100行).但是,在使用Windows 7的同事计算机上,这很快.他的计算机是我的计算机,他有相同版本的pyodbc和python,所以我不相信这是一个问题. 当我同时使用IBM DB2 ODBC DRIVER和IBM DATA SERVER DRIVER FOR ODBC时,问题仍然存在. 关于为什么这么慢的任何建议? 我知道像cur.fetchmany()这样的东西,但是我仍然希望这个代码在不使用它的情况下快得多. 更新: 事实证明,ODBC很慢,因为跟踪已打开.我禁用了跟踪,性能又回到了我的预期. (可以在Windows 7和8中的ODBC数据源下找到跟踪.) 解决方法
事实证明,性能又回到了我的预期. (可以在Windows 7和8中的ODBC数据源下找到跟踪.)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |