gpt4 book ai didi

python - pyodbc 在我的机器上很慢,但在其他机器上不是

转载 作者:可可西里 更新时间:2023-11-01 14:25:18 25 4
gpt4 key购买 nike

我正在使用 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 数据源下找到跟踪。)

最佳答案

事实证明,ODBC 很慢,因为跟踪已打开。我禁用了跟踪,性能又回到了我的预期。 (可以在 Windows 7 和 8 中的 ODBC 数据源下找到跟踪。)

关于python - pyodbc 在我的机器上很慢,但在其他机器上不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14136061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com