Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import functools
- import os
- import sqlite3
- import timeit
- def setup():
- try:
- os.remove('test.db')
- except:
- pass
- db = sqlite3.connect('test.db')
- db.execute("CREATE TABLE Test (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, val VARCHAR)")
- db.execute("INSERT INTO Test (val) VALUES('abc')")
- db.close()
- def query1():
- db = sqlite3.connect('test.db')
- cursor = db.cursor()
- cursor.execute("SELECT * FROM Test WHERE val = 'def'")
- result = cursor.fetchall()
- db.close()
- return result
- def query2_(db):
- cursor = db.cursor()
- cursor.execute("SELECT * FROM Test WHERE val = 'def'")
- result = cursor.fetchall()
- return result
- def test(number):
- setup()
- globaldb = sqlite3.connect('test.db')
- query2 = functools.partial(query2_, globaldb)
- print('reopen: {}'.format(timeit.timeit(query1, number=number)))
- print('reuse: {}'.format(timeit.timeit(query2, number=number)))
- import sys
- number = int(sys.argv[1]) if len(sys.argv) > 1 else 100
- test(number)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement