var sqlite3 = require('../lib/sqlite3'); var fs = require('fs'); var iterations = 10000; exports.compare = { 'insert literal file': function(finished) { var db = new sqlite3.Database(''); var file = fs.readFileSync('benchmark/insert-transaction.sql', 'utf8'); db.exec(file); db.close(finished); }, 'insert with transaction and two statements': function(finished) { var db = new sqlite3.Database(''); db.serialize(function() { db.run("CREATE TABLE foo (id INT, txt TEXT)"); db.run("BEGIN"); db.parallelize(function() { var stmt1 = db.prepare("INSERT INTO foo VALUES (?, ?)"); var stmt2 = db.prepare("INSERT INTO foo VALUES (?, ?)"); for (var i = 0; i < iterations; i++) { stmt1.run(i, 'Row ' + i); i++; stmt2.run(i, 'Row ' + i); } stmt1.finalize(); stmt2.finalize(); }); db.run("COMMIT"); }); db.close(finished); }, 'insert with transaction': function(finished) { var db = new sqlite3.Database(''); db.serialize(function() { db.run("CREATE TABLE foo (id INT, txt TEXT)"); db.run("BEGIN"); var stmt = db.prepare("INSERT INTO foo VALUES (?, ?)"); for (var i = 0; i < iterations; i++) { stmt.run(i, 'Row ' + i); } stmt.finalize(); db.run("COMMIT"); }); db.close(finished); }, 'insert without transaction': function(finished) { var db = new sqlite3.Database(''); db.serialize(function() { db.run("CREATE TABLE foo (id INT, txt TEXT)"); var stmt = db.prepare("INSERT INTO foo VALUES (?, ?)"); for (var i = 0; i < iterations; i++) { stmt.run(i, 'Row ' + i); } stmt.finalize(); }); db.close(finished); } };