SQLite を使用するには connect() と cursor() を使用します
self.connector = sqlite3.connect(self.dbFile) self.cursor = self.connector.cursor()
使用をやめるには close() を使用します。
self.cursor.close()
それらは(処理時間の観点から)どれくらい高価ですか?絶対に必要なものだけを使う必要があるほど高価ですか?それとも、関数内で複数回使用しても問題ありませんか?
追加した
次の簡単なコードでテストしました。proc1() は、クエリを実行するときに常に開いたり閉じたりするコードを使用し、proc2() は 1 回だけ実行します。
from sqlite import *
import timeit
import math
def proc1():
db = SQLiteDB("./example.db", False)
db.getOpenRunClose("SELECT * from Benchmark")
db.getOpenRunClose("SELECT * from Benchmark")
db.getOpenRunClose("SELECT * from Benchmark")
db.getOpenRunClose("SELECT * from Benchmark")
db.getOpenRunClose("SELECT * from Benchmark")
db.getOpenRunClose("SELECT * from Benchmark")
def proc2():
db = SQLiteDB("./example.db")
res = db.runSQLToGetResult("SELECT * from Benchmark")
res = db.runSQLToGetResult("SELECT * from Benchmark")
res = db.runSQLToGetResult("SELECT * from Benchmark")
res = db.runSQLToGetResult("SELECT * from Benchmark")
res = db.runSQLToGetResult("SELECT * from Benchmark")
res = db.runSQLToGetResult("SELECT * from Benchmark")
db.close()
if __name__ == '__main__':
t = timeit.Timer(proc1)
count = 5000
print t.timeit(count) / count
t = timeit.Timer(proc2)
count = 5000
print t.timeit(count) / count
結果は次のとおりです。
0.00157478599548
0.000539195966721