Recordset convertor performance test
ActiveX RegEdit.   ActiveX User account Manager   Pure-ASP Upload
Export MDB/DBF from ASP   Active LogFile   WebChecker   ActiveX/ASP Multi Dictionary object
 See 
 also 
 IISTracer, real-time IIS monitor and logging tool.
 Huge ASP file upload with progress bar. 



Do you like this article?
Please, rate it
and write review!
Rated:
by Aspin.com users
What do you think?
 Top messages
 22.3.2003 19:18:41 
 Read and write SQL image data, store binary file to sql table. (nbsp;WSHDatabaseConversionVBScript)
 4.5.2002 9:16:43 
 Send an email from ASP (WSH) using VBSscript, CDONTS and Outlook. (nbsp;ASP / ASP.NetWSHVBScriptEmail)
 12.6.2003 9:14:29 
 Download multiple files in one http request (nbsp;File & data transferVBScript)

 Recordset convertor performance test 

 Areas>ASP / ASP.Net>Performance tests
 Areas>ASP / ASP.Net>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 decided 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' article:

     Best way to get HTML page from a recordset Performance tests of six different VBS codes, each of them generates the same HTML table.
     ASP/VBS database performance test and comparison. ADO, DAO, RDO, MDB, SQL, OLEDB and ODBC comparison, performance test of objects that can be used for database access on server-side in ASP.

If you like this page, please include next link on your pages:
<A
 Href="http://www.motobit.com/tips/detpg_rsctest/"
 Title="Recordset convertor is great object which
  enables direct output of binary
  database data from ASP page
  as DBF/MDB."
>Recordset convertor performance test</A>

     IISTracer - IIS ISAPI real-time monitor IISTracer is a real-time monitoring tool for Microsoft IIS, which will show/log you what is happenning on IIS server right now. It let's you reveal problems with long-running scripts (.asp, .cgi, cfm...), hang-up states and low resource situations and lets you stop long-running requests (uploads/downloads).      ActiveX User account Manager - Set of simple objects for creating, deleting, and managing user accounts, groups, servers and domains in the Windows NT environment.
     Active log file - Hi-performance text file logging for ASP/VBS/VBA applications. Lets you create daily/weekly/monthly log files with variable number of logged values and extra timing and performance info.      ActiveX windows registry editor - Intuitive, easy to use COM interface to windows registry. Set of classes to read/enumerate/modify windows registry keys and values from ASP, VBS and T-SQL.
     ActiveX/ASP Multi Dictionary object - Free-threaded hi-speed dictionary algorithm with unique/nonunique keys (map/multimap). Connect to another dictionary object in the same process. Lock and Unlock methods to synchronize tasks (application scope). Share ASP Application/Session objects.      Export DBF/MDB from ASP - Conversion from recordset to MDB/DBF. Direct binary output of MDB or DBF files from ASP pages with one row of code.
     Pure-ASP upload - lets you upload files using Pure ASP VBS code (using multipart/form-data and input type=file).      ByteArray - Works with safearray binary data (VT_UI1 | VT_ARRAY) - save/restore binary data from disk, find, work with code pages, convert to string/hexstring(SQL).
     WebChecker - Checks http, https, ftp and gopher internet connections in regular intervals. Lets you monitor web site functionality (uptime). Enables restart or notification on problems.      HTTPLog ISAPI filter - Lets you log incomming/outgoing http header and document data to separate files. Monitor of IIS service input/output.

© 1996 – 2010 Antonin Foller, PSTRUH Software, e-mail help@pstruh.cz