varbinary-huge.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. var tedious = require("../../lib/tedious");
  2. var Request = tedious.Request;
  3. var TYPES = tedious.TYPES;
  4. var common = require("../common");
  5. var connection;
  6. common.createBenchmark({
  7. name: "inserting varbinary(max) with 50 MiB",
  8. profileIterations: 20,
  9. setup: function(cb) {
  10. common.createConnection(function(_connection) {
  11. connection = _connection;
  12. var request = new Request("CREATE TABLE #benchmark ([value] varbinary(max))", function(err) {
  13. if (err) return cb(err);
  14. var request = new Request("INSERT INTO #benchmark ([value]) VALUES (@value)", cb);
  15. var buf = Buffer.alloc(50 * 1024 * 1024);
  16. buf.fill("x");
  17. request.addParameter("value", TYPES.VarBinary, buf);
  18. connection.execSql(request);
  19. });
  20. connection.execSqlBatch(request);
  21. });
  22. },
  23. exec: function(cb) {
  24. var request = new Request("SELECT * FROM #benchmark", cb);
  25. connection.execSql(request);
  26. },
  27. teardown: function(cb) {
  28. var request = new Request("DROP TABLE #benchmark", function(err) {
  29. if (err) {
  30. return cb(err);
  31. }
  32. connection.close();
  33. });
  34. connection.execSqlBatch(request);
  35. }
  36. });