MOTOBIT.COM - ASP upload, IIS utility Performance tests Article

Member of  RSConvert | Changes | Purchase | Download

Performance tests

Brief overview of Recordset convertor performance.

 Recordset convertor performance test 
 Areas>ASP>Performance tests
 Areas>ASP>Database

Recordset converter performance test - configuration

- P200, 128MB RAM
- Win NT 4.0 SP5
- SQL 6.5 SP5
- IIS 4

- MDAC 2.1 SP2
- SQL server on the same machine as IIS

Tested objects.

      Data Source for all of the tests was ADODB recordset, data from ODBC connection to SQL 6.5. The connection was created by DSN :

  Set Conn = CreateObject("ADODB.Connection")
  Conn.Open "DSN=TestDSN(ODBC To SQL6.5);", "uid", "pwd"

  SQL = "Set rowcount ... Select * From TestTable(Nolock) Set rowcount 0"
  Set ADORS = Conn.execute(SQL)
      Three source VBS codes were tested to get consumed procesor time and script time. All of these three codes (DBF, MDB and CSV) create output file in one row of source code :
1. Recordset converter, DBF object :
  Set DBF = CreateObject("RSConvert.DBF")
  Response.BinaryWrite DBF.GetFile(ADORS)

2. Recordset converter, MDB object :
  Set MDB = CreateObject("RSConvert.MDB")
  Response.BinaryWrite MDB.GetFile(ADORS)
3. GetString method of ADO recordset to see reference time (or minimal time to retrieve data from database) :
  Response.Write ADORS.GetString

Script time and consumed times

      Next tables contain measured script and processor time for different kind of source data structure and different number of rows. Table header contains brief characterization of source data table structure.
Mixed data (Tables with object properties, ...)
2*Int, 8*char(2), 6*char(10), 2*char(255),
1*money, 1*datetime, 1*smallint
 Code 
 type 
 Rows  Script 
 Time [ms] 4)
 Kernel+User 
 Time [ms] 5)
 File 
 length [B] 
 GetString.   100  63.00  54.00  19 912 
 DBF.   100  637.00  629.00  45 842 
 MDB.   100  651.00  634.00  59 392 
 GetString.   2 000  2 674.00  2 253.00  393 586 
 DBF.   2 000  11 417.00  11 256.00  904 642 
 MDB.   2 000  10 186.00  9 994.00  299 008 

Large text data (News, description, dictionary, ...)
6*Int, 5*datetime, 3*varchar(255),
1*LONGTEXT(100B-50kB), 6*char(1), not null
 Code 
 type 
 Rows  Script 
 Time [ms] 4)
 Kernel+User 
 Time [ms] 5)
 File 
 length [B] 
 GetString.   10  177.00  152.00  180 308 
 MDB.   10  439.00  374.00  251 904 
 GetString.   100  2 464.00  2 323.00  876 118 
 MDB.   100  1 933.00  1 673.00  1 157 120 
 GetString.   1 000  16 000.00  6 319.00  1 158 876 
 MDB.   1 000  20 800.00  9 569.00  5 675 008 
 GetString.   2 000  29 042.00  11 897.00  1 410 370 
 MDB.   2 000  41 229.00  18 016.00  10 199 040 

Numeric data (accounting, quotes, ...)
12*Int, 10*money, 1*datetime, 1*char(12)
Large number of Null values
 Code 
 type 
 Rows  Script 
 Time [ms] 4)
 Kernel+User 
 Time [ms] 5)
 File 
 length [B] 
 GetString.   10  19.40  16.00  1 612 
 DBF.   10  136.00  131.00  3 268 
 MDB.   10  202.00  197.00  49 152 
 GetString.   100  70.00  62.00  16 452 
 DBF.   100  811.00  796.00  24 598 
 MDB.   100  814.00  796.00  102 400 
 GetString.   1 000  757.00  708.00  155 030 
 DBF.   1 000  7 358.00  7 250.00  237 898 
 MDB.   1 000  6 717.00  6 637.00  268 288 

Numeric data (relation, numbers, etc.)
4*Int, 2*DateTime
Not null
 Code 
 type 
 Rows  Script 
 Time [ms] 4)
 Kernel+User 
 Time [ms] 5)
 File 
 length [B] 
 GetString.   10  8.60  6.20  1 072 
 DBF.   10  67.00  58.00  716 
 MDB.   10  88.00  83.00  49 152 
 GetString.   100  30.00  27.00  10 612 
 DBF.   100  291.00  278.00  5 126 
 MDB.   100  275.00  264.00  51 200 
 GetString.   7 000  6 018.00  5 809.00  742 388 
 DBF.   7 000  17 295.00  17 104.00  343 226 
 MDB.   7 000  14 441.00  14 170.00  337 920 

Results.

      The times give you a small overview of Recordset converter performance. The test configuration was poor, so real times (for example on PIII/600 instead of P/200) will be up to 5 times better.
      The consumed time depends linearly on number of rows/columns. The number of rows is limited only by time dedicated to the file generation. But there is no good idea to generate binary files greater than 50MB in ASP. You can use Recordset converter to distribute DBF and MDB data with up to 10 000 rows or up to 1MB of output binary data in real-time (time of second).

      DBF does not support large text data - you can use MDB to do the work. MDB has good performance to distribute large text data.


4) Script time - TickCount [ms] of the operation. The time has two parts - Kernel+User time of calling thread and execution time of all other processes.
   Script Time contains also Kernel+User time of SQL server and Kernel+User time of IIS.

5) Kernel+User time - times of calling thread in [ms] 
 See also for:Recordset convertor performance test
 17.12.1999 14:29:55 
 ASP/VBS database performance test and comparison. (Performance testsDatabase)

Other links for Performance tests article

RSConvert

      Recordset converter is a library for converting DAO or ADO recordsets to MDB or DBF files. It enables direct binary output of MDB or DBF files from ASP pages with one row of code. The object also supports on-the-fly compression by zip/arj.

© 1996 - 2009 Antonin Foller, Motobit Software | About, Contacts | e-mail: info@pstruh.cz