Subject Re: [IBO] IBO speed vs BDE?
Author Chuck Belanger
Svein:

Actually, I'm not using any form of Client/Server at all. It is all local data.
Its for a medical device which is mostly used on a single computer.

The stored procedure sounds interesting, but I suspect this was not done because
of the proprietary nature of the process that is run, but maybe we should look at
that. The particular procedure that I'm commenting on, did a query with a one
record result set at least 35K times (it was moving up a child-parent hierarchal
structure, as in tree-view, not child-parent as in table relationships.

I'm definitely new to IB and have much to learn about using it to its full
advantage


> IBO won't help you at all if you want the IB server to run faster.

No, I'm just interested in the overhead effect of using BDE to access IB.

> And if
> you're saying that you transfer 40K+ records to do some modifications on
> the client this is severely wrong if done interactively with users waiting
> (but I guess IBO could be a great help in 'hiding' your design problems).

Actually, this specific program is an admin utility, but we're thinking of making
its function real-time. BTW, this is most definitely not MY program. We've
inherited it and are in the process of modifying it. My background is
FoxPro/dBase, etc and my Delphi is limited to a few small modifications to other's
programs and day 3 of "Learn Delphi in 21 days", so I hope you get the picture.
The programmer is someone else, I'm in charge of actually cleaning and adding to
the database. In the process, I'm learning about IB and Delphi (so far its fun! I
really like Delphi and after using FoxPro with a 1000 free tables everywhere, IB
is really fun to experience.)

Thanks,

Chuck

>
>
> If you need to do modifications to all records, do it in one UPDATE query
> or write a stored procedure. I don't know how familiar you are with
> client/server databases and maybe you know this already, but unless you're
> dealing with a very small table where speed is not an issue you should
> always retrieve only a small subset of the records of the table to the client.
>
> >Recently worked on a portion of the code that goes through the file to
> >do this and to do all 35K items, it took 5-10 minutes, depending what
> >other applications were using memory.
>
> The IB server can be pretty fast - unless each record is big, it should be
> able to process several thousand records per second (on the server,
> transfering to a client takes longer).
>
> >My experience has been with Visual FoxPro which would easily be 100x faster
> >than this.
>
> I must admit not knowing FoxPro, but isn't that a desktop database? If so,
> I'm not surprised - if working directly on a table as a single user and
> transferring that approach to InterBase. But add multiple users and/or
> transactions, large tables and a properly designed program with narrow
> select criteria (the main pitfall for desktop database developers) to a
> well-defined database and no desktop database can compare to IB.
>
> >Does anyone have experience in comparing a IBO vs a BDE access speeds to
> >give me a broad idea of what kind of speed increases we can get by
> >replacing the BDE components with IBO?
>
> IBO is a lot better than the BDE in almost every area. The BDE is designed
> for desktop databases, whereas IBO takes advantage of IB's capabilities.
> I'd say the greatest benefit is there being a lot less unexplainable errors
> with IBO and that program development is a lot faster using the native
> components. You do get a speed benefit as well, but I guess your main
> problem probably is your design which you probably should improve
> regardless of whether you use IBO/BDE/IBX/FIB.
>
> HTH,
> Set
>
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/