🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.database.ado
Article #4060

Optimal ADO Settings ?!

#4060
From: Eike Petersen
Date: Wed, 03 Apr 2002 14:13
87 lines
5159 bytes
Hi,

I spent some hours trying to find the optimal settings accessing a local
Access-Database using ADO and it seems there are no optimal settings. It
pretty much depends on what one intends to do...

Perhaps someone could comment on my findings or even point me to important
settings I might have missed.

Thanks
Eike

====================================================================
-- snip
====================================================================

TADOConnection
==============
ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=N:\RTE\DAT\MDS\mds.mdb;Persist Security Info=False"
ConnectOptions=coConnectUnspecified
CursorLocation=clUseServer
IsolationLevel=ilCursorStability
Provider=Microsoft.Jet.OLEDB.4.0
KeepConnection=true
Mode=ReadWrite

TADOTable
=========
CacheSize=128
ReadOnly=false
LockType=ltOptimistic

I.) TableDirect = false
                                                           Benchmark                        Capabilities

#|CursorLocation | CursorType         |Loc1|Loc1R|Loc10|Ins1K|Upd100|Filter|ReadN|RdEof    Loc Cre Upd
=======================================================================================    === === ===
1 clUseServer     ctUnspecified         n.s   n.s   n.s   791    n.s   2500    10   380      n   y   n
2 clUseServer     ctOpenForwardOnly     n.s   n.s   n.s   791    n.s   2600    10   370      n   y   n
3 clUseServer     ctDynamic             n.s   n.s   n.s   861    n.s   2600    10   389      n   y   n
4 clUseServer     ctKeyset              971   990  9554  2234  57262   2700    89 20000      y   y   y
5 clUseServer     ctStatic              831   862  8433  2343  44424   2603    90 20000      y   y   y
6 clUseClient     ctUnspecified           A     A     A     A      A      A     A     A      A   A   A
7 clUseClient     ctOpenForwardOnly       A     A     A     A      A      A     A     A      A   A   A
8 clUseClient     ctDynamic               A     A     A     A      A      A     A     A      A   A   A
9 clUseClient     ctKeyset                A     A     A     A      A      A     A     A      A   A   A
A clUseClient     ctStatic              821    10    10 10025   1412     10    70 32000      y   y   y

II.) TableDirect = true

#|CursorLocation | CursorType         |Loc1|Loc1R|Loc10|Ins1K|Upd100|Filter|ReadN|RdEof    Loc Cre Upd
=======================================================================================    === === ===
1 clUseServer     ctUnspecified         n.s   n.s   n.s  1200    n.s    230    10   350      n   y   n
2 clUseServer     ctOpenForwardOnly     n.s   n.s   n.s  1500    n.s    230    10   340      n   y   n
3 clUseServer     ctDynamic             n.s   n.s   n.s  1200    n.s    240    10   320      n   y   n
4 clUseServer     ctKeyset               90    80  2200  2600  20000    230    90 20540      y   y   y
5 clUseServer     ctStatic               80    80  2200  2600  15000    230    80 20400      y   y   y
6 clUseClient     ctUnspecified           A     A     A     A      A      A     A     A      A   A   A
7 clUseClient     ctOpenForwardOnly       A     A     A     A      A      A     A     A      A   A   A
8 clUseClient     ctDynamic               A     A     A     A      A      A     A     A      A   A   A
9 clUseClient     ctKeyset                A     A     A     A      A      A     A     A      A   A   A
A clUseClient     ctStatic              841    10    10 11700   2800    120    70 31000      y   y   y

TADOCommand
===========
CursorLocation=clUseServer
CommandType=cmdText
ExecuteOptions=eoExecuteNoRecords

SQL-INSERT (1000 records) : 5100ms

Explanation:
=============
Loc1 = Locate record at end of table (using index)
Loc1R = Locate again (using index)
Loc10 = Locate 10 records (using index)
Ins1K = Insert 1000 records
Upd100 = Locate and Update 100 records (using index)
Filter = Apply Filter (on indexed string-field)
ReadN = Read 100 records (sequential)
ReadEof = Read from 'Bof' to 'Eof'

Loc = Locate possible
Cre = Create possible
Upd = Update possible

All times in miliseconds. 20000 records in the table while performing tests.
Technical Details
Message-ID: <3CAB0E1B.90007@gmx.net>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!supernews.com!news.tele.dk!small.news.tele.dk!141.201.2.63!newshunter!cosy.sbg.ac.at!fu-berlin.de!news.boerde.de!nntp.cs.uni-magdeburg.de!PeerFeed.KWeb.on.ca!dnews

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 10698b,fa0df909a3257503,start
X-Google-Attributes: gid10698b,public
X-Google-ArrivalTime: 2002-04-03 06:21:33 PST
Message-ID: <3CAB0E1B.90007@gmx.net>
Date: Wed, 03 Apr 2002 16:13:47 +0200
From: Eike Petersen <epetersen@gmx.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.9) Gecko/20020311
X-Accept-Language: de, en-us
MIME-Version: 1.0
Newsgroups: borland.public.cppbuilder.database.ado
Subject: Optimal ADO Settings ?!
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
NNTP-Posting-Host: 80.132.246.172
X-Trace: dnews 1017843229 80.132.246.172 (3 Apr 2002 06:13:49 -0800)
Lines: 88
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!supernews.com!news.tele.dk!small.news.tele.dk!141.201.2.63!newshunter!cosy.sbg.ac.at!fu-berlin.de!news.boerde.de!nntp.cs.uni-magdeburg.de!PeerFeed.KWeb.on.ca!dnews