ドキュメントレコードを保存するために、sqlite データベースで SQLObject を使用しています。文書は、テキストファイルに保存された文書情報をスキャンしたものです。これらすべてのテキスト ファイル (約 800) を読み取り、それらからドキュメント レコードを読み込む必要があります (1 ファイルあたり平均 40 ドキュメント)。現在、私のコードは次のとおりです(ドキュメントは表です):-
for doc in cc.documents:
print doc['id']
doc_recs = Document.selectBy(costcode = x, doc_id = int(doc['id']))
dcmnt = doc_recs.getOne(None)
if not dcmnt:
dcmnt = Document(costcode = x, doc_id = int(doc['id']))
dcmnt.title = doc['title']
dcmnt.author = doc['author']
dcmnt.recipient = doc['recipient']
dcmnt.date = doc['date']
dcmnt.firstpage = doc['firstpage']
dcmnt.lastpage = doc['lastpage']
dcmnt.type = doc['type']
dcmnt.allpages = doc['allpages']
しかし、これには長い時間がかかり、レコードごとに長くなります。
属性を変更するたびに SQLObject がレコードをコミットしていると思われますが、これは無駄です。レコードを追加するだけであれば、レコードが最初に作成されると同時に属性を作成でき、これはより高速になるはずですが、それでも SQLObjects はレコードを追加するのが遅いようです。