Subject Re: [IBO] IBO seems slower for some things compared with the BDE
Author Helen Borrie
At 08:23 AM 27/06/2003 +1000, you wrote:
> > I have an application which I have just ported from the BDE to IBO. I
> then noticed that the application took longer to load compared with the
> same application using the BDE (48 seconds compared to 6 seconds).
> >
> > In order to quantify where the differences were, I then used Sleuth
> stopwatch to time the two programs. During this time I noticed that IBO
> seemed to be slow as it was retrieving information about the database
> (according to Codewatch the time differences coudld be attributable to
> the functions/procedures SchemaIndexDefinitions, SchemaDefaultedCols and
> SchemaProcedureInfo, SchemaPrimaryKeyInfo from IB_Schema.pas, and
> SysGetBlobData from IB_Session).
> >
> > On the whole examing the time taken for other processes was faster than
> using the BDE, it was the retrieval of the database information which
> slowed the whole thing down.
> >
> > Also I have attached the IBO monitor log to this e-mail which details
> the application running with IBO. Does anyone know why IBO needs to
> retrieve this information, or could it be in the porting I have a BDE
> setting which is causing things to slow down?
> >
> > Any assistance would be greatly appreciated.
> >
> > Regards
> >
> >
> > Peter Mc Leod
> >
> >
> > > <<Monitor Report.TXT>>

This list doesn't accept attachments - but it looks as if your mail reader
inserted it anyway. Please do us a favour by sending **relevant snippets**
of monitor output. This was a mega-message!!

Look at the SchemaCacheDir property of the connection object (TIBODatabase
or TIB_Connection). If this isn't nil, and it is a valid path, then IBO
creates a local schema cache for you on the very first connection to the
database and, thereafter, will update the cache when the application
initially connects.

You might or might not want this. It has benefits for clients on slow
connections, because it will avoid some metadata queries being done during
the session. You don't want it on a fast network nor where your client is

Something you might want to focus on as you bring IBO to bear on your
BDE-architected app is *not* connecting with a gazillion active
datasets. This is very un-client-serverisch. You will get a much faster
user interface and reduce bandwidth consumption if you open datasets as