Delayed SQL Executor. #SQL queries #SQL executor #SQL #Queries #Executor #Database
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.
import sqlite3 # for testing purposes
from dse import DelayedSqlExecutor
conn = 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-instance d.addItem('filedata', {'filepath': '/tmp/', 'filename': 'test%s.txt' % i, 'filesize': i})
# Adding some records to update d.addItem('filedata', {'id': 1, 'filepath': '/tmp/', 'filename': 'testmore%s.txt' % i, 'filesize': 100})
# calling close will execute any remaining SQLs d.close()
# you might be required to call commit on the cursor to commit the data. Depends on how you set up the cursor/connection.
System requirements
dse 4.0.0 RC1
add to watchlist add to download basket send us an update REPORT- runs on:
- Linux
- filename:
- dse-4.0.0-RC1.zip
- main category:
- Database
- developer:
- visit homepage
ShareX 16.0.1
Windows Sandbox Launcher 1.0.0
Zoom Client 6.0.3.37634
4k Video Downloader 1.5.3.0080 Plus / 4.30.0.5655
7-Zip 23.01 / 24.04 Beta
Bitdefender Antivirus Free 27.0.35.146
Microsoft Teams 24060.3102.2733.5911 Home / 1.7.00.7956 Work
calibre 7.9.0
Context Menu Manager 3.3.3.1
IrfanView 4.67
- calibre
- Context Menu Manager
- IrfanView
- ShareX
- Windows Sandbox Launcher
- Zoom Client
- 4k Video Downloader
- 7-Zip
- Bitdefender Antivirus Free
- Microsoft Teams