Advertisement
Guest User

Untitled

a guest
Jan 24th, 2013
759
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.07 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. import functools
  4. import os
  5. import sqlite3
  6. import timeit
  7.  
  8. def setup():
  9.     try:
  10.         os.remove('test.db')
  11.     except:
  12.         pass
  13.     db = sqlite3.connect('test.db')
  14.     db.execute("CREATE TABLE Test (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, val VARCHAR)")
  15.     db.execute("INSERT INTO Test (val) VALUES('abc')")
  16.     db.close()
  17.    
  18. def query1():
  19.     db = sqlite3.connect('test.db')
  20.     cursor = db.cursor()
  21.     cursor.execute("SELECT * FROM Test WHERE val = 'def'")
  22.     result = cursor.fetchall()
  23.     db.close()
  24.     return result
  25.  
  26. def query2_(db):
  27.     cursor = db.cursor()
  28.     cursor.execute("SELECT * FROM Test WHERE val = 'def'")
  29.     result = cursor.fetchall()
  30.     return result
  31.  
  32. def test(number):
  33.     setup()
  34.     globaldb = sqlite3.connect('test.db')
  35.     query2 = functools.partial(query2_, globaldb)
  36.     print('reopen: {}'.format(timeit.timeit(query1, number=number)))
  37.     print('reuse:  {}'.format(timeit.timeit(query2, number=number)))
  38.  
  39. import sys
  40. number = int(sys.argv[1]) if len(sys.argv) > 1 else 100
  41. test(number)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement