Do you like this article? Please, rate it and write review!
Rated:
by Aspin.com users
| |
| | Top messages |
| 22.3.2003 19:18:41 | |
| 4.5.2002 9:16:43 | |
| 12.6.2003 9:14:29 | |
Recordset convertor performance test | Areas>ASP / ASP.Net>Performance tests Areas>ASP / ASP.Net>Database | |
|
- 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] |
|
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>
|
|