我有一个数据库表,其中包括TRADE\u DATE、CURRVAL和ITEM字段。我首先有两个数组/列表:arrvar(字符串)、dates(日期)。arrVars中的每个字符串表示一个项目,我需要为其检索每个交易日的货币。我是Python新手,当然也不是数据库方面的专家,我确信有一些方法可以加快我的代码速度
第一部分只是从我的第一个db连接创建日期列表。我只是遍历每一行并将其附加到日期列表中。有更好的办法吗
i = 0
for row in cursor.fetchall():
dates.append(row[0])
i+=1
其次,我循环遍历arrvals中的每个项目,然后循环遍历日期中的每个TRADE\u DATE,以创建每个CURRVALs数组,并将数组放入矩阵中。这太慢了,所以我也希望有更好的方法
M = []
dtFormat = '%Y/%m/%d'
for item in arrVars:
tmp = []
for dt in dates:
strSQL = "SELECT CURRVAL FROM tblGanData WHERE ITEM = '" + item + "' AND TRADE_DATE = #" + dt.strftime(dtFormat) + "#"
cursor.execute(strSQL)
tmp.append(cursor.fetchone()[0])
M.append(tmp)
谢谢你
对于第一点,您可能希望执行以下操作:
但是我非常有兴趣看到您用于该游标的SQL语句
会比
(要快多少取决于要返回的行数以及客户端和服务器之间的网络连接速度。)
对于第二部分,您将为每个项目/日期组合执行一个查询(包含完整的往返成本)
也许是这样的
在获取值时,您必须执行一些逻辑,以便将currval列表转换为矩阵,如果您需要帮助,请告诉我
顺便问一下,我们这里谈的是多少个项目/日期
相关问题 更多 >
编程相关推荐