私は初心者pythonスクリプトです。私はmsaccessデータベースレコードを読み込み、XMLファイルに書きたい。 アクセスデータベーステーブルには20000を超えるレコードがあります。スレッドはPythonで
これで4分から5分かかります。だから私はスレッドの概念を実装します。しかし、糸通しは5〜6分以上かかる。各スレッドはテーブルからレコードを読み込み、データソースを閉じます。
問題の解決方法はわかりません。
CODE:
class ConfigDataHandler(Thread):
def __init__(self, dev):
Thread.__init__(self)
self.dev = dev
def run(self):
db_source_path = r'D:\sampleDB.mdb'
db_source = win32com.client.Dispatch(r'ADODB.Connection')
db_source.ConnectionString = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;
DATA SOURCE=' + db_source_path + ';'
db_source.Open()
query = """ SELECT * from table"""
source_rs = win32com.client.Dispatch(r'ADODB.Recordset')
source_rs.Open(query, db_source, 3, 1)
while not source_rs.EOF :
f_units.append(source_rs.fields("Name").Value))
source_rs.MoveNext()
source_rs.Close()
db_source.Close()
out = render(f_units)
open("D:/test.xml", "w").write(out)
d_list = get_dev_list()
for d in d_list:
current = ConfigDataHandler(d)
current.start()
ここにコードスニペットを貼り付けてください。 –
プロファイラを使用して時間の所在を確認しましたか?私は時間の80%がJetとのODBC接続にあると確信しています。いくつかの事実を収集するためにプログラムをプロファイリングできますか? –