many-result-rows.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. var tedious = require("../../lib/tedious");
  2. var Request = tedious.Request;
  3. var TYPES = tedious.TYPES;
  4. var async = require("async");
  5. var common = require("../common");
  6. var connection;
  7. common.createBenchmark({
  8. name: "Many result rows",
  9. profileIterations: 10,
  10. setup: function(cb) {
  11. common.createConnection(function(_connection) {
  12. connection = _connection;
  13. var request = new Request("CREATE TABLE #benchmark ([id] int IDENTITY(1,1), [name] nvarchar(100), [description] nvarchar(max))", function(err) {
  14. if (err) return cb(err);
  15. async.timesSeries(10000, function(n, next) {
  16. var request = new Request("INSERT INTO #benchmark ([name], [description]) VALUES (@name, @description)", next);
  17. request.addParameter("name", TYPES.NVarChar, "Row " + n);
  18. request.addParameter("description", TYPES.NVarChar, "Example Test Description for Row " + n);
  19. connection.execSql(request);
  20. }, cb);
  21. });
  22. connection.execSqlBatch(request);
  23. });
  24. },
  25. exec: function(cb) {
  26. var request = new Request("SELECT * FROM #benchmark", cb);
  27. connection.execSql(request);
  28. },
  29. teardown: function(cb) {
  30. var request = new Request("DROP TABLE #benchmark", function(err) {
  31. if (err) {
  32. return cb(err);
  33. }
  34. connection.close();
  35. });
  36. connection.execSqlBatch(request);
  37. }
  38. });