我基本上将文本文件行数据与来自DB的数据进行比较。以下是我的步骤:
问题:当我考虑50个记录的上述比较时,它工作正常(只需29秒)并给出正确的结果。但是当我在文本文件中增加行数(即文本文件中的55-60行)时,它会执行,但会花费意外的20分钟。
由于数据安全,我无法共享代码。
答案 0 :(得分:1)
这里没有足够的真实信息来提供“答案”。我同意毛泽东的看法,逐行处理确实不可持续,但这不是这种异常行为的原因。
我假设您的方法相对天真,您可能正在为文件的每一行创建一个新的Connection对象。我怀疑发生的事情是你的DB2服务器的并发连接数达到了限制 - 50似乎是一个合理的设置。如果您这样做,请创建一个Connection对象,并将其重复用于处理的每一行。
或者,如果您为所有行重复使用相同的Connection对象,我认为DB2服务器可能有一些异常设置导致您的连接以意外方式运行,例如限制每个连接的操作数。我对DB2知之甚少,因此我无法建议任何特定的设置来查找。您可以尝试通过断开连接并重新连接每50行来解决此问题。
答案 1 :(得分:0)
您不应迭代每一行并查询数据库。
而是将cardNumbers收集到列表中,并通过以下方式从DB获取数据:
import numpy as np
aa = np.array([[np.nan, np.nan], [1.64, 0.0784]])
bb = [[np.nan, np.nan], [1.64, 0.0784]]
np.all(aa == bb)