dse

Delayed SQL Executor
Download

dse Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL v3
  • Price:
  • FREE
  • Publisher Name:
  • Thomas Weholt
  • Publisher web site:
  • http://weholt.org

dse Tags


dse Description

Delayed SQL Executor dse is a simple and crude way of not executing SQL queries in sequence, but caching values until a given max value has been met and then execute them using the executemany-method. The result can be huge speed gains.dse was only tested on SQLite3 but intended for use in django as well.Example usage:import sqlite3 # for testing purposesfrom dse import DelayedSqlExecutorconn = sqlite3.connect(':memory:')cursor = conn.cursor()cursor.execute('create table filedata (id INTEGER PRIMARY KEY, filepath TEXT, filename TEXT, filesize INTEGER)')d = DelayedSqlExecutor(cursor, paramtoken= '?') # using the ? paramtoken here for sqlite3. Leave it blank and it`ll use %s as support by Django etc.d.addObject('filedata', ('id', 'filepath', 'filename', 'filesize'))for i in range(0, 999): # adding some dummy data. Notice the absence of the id-field. This will trigger inserts. #Adding the id-field would trigger an update for data not yet in the db d.addItem('filedata', {'filepath': '/tmp/', 'filename': 'test%s.txt' % i, 'filesize': i})# No SQL has been executed yet, the default limit is 1000 items# Adding another item will trigger the execution of SQLs and reset the d-instanced.addItem('filedata', {'filepath': '/tmp/', 'filename': 'test%s.txt' % i, 'filesize': i})# Adding some records to updated.addItem('filedata', {'id': 1, 'filepath': '/tmp/', 'filename': 'testmore%s.txt' % i, 'filesize': 100})# calling close will execute any remaining SQLsd.close()# you might be required to call commit on the cursor to commit the data. Depends on how you set up the cursor/connection. Requirements: · Python


dse Related Software