Subject Re: [ib-support] Re: Writing data in tables!
Author Jason Wharton
If you use execute immediate you are forcing the server to have to parse the
insert each time. If you use the proper method for batch inserts you prepare
the statement once, provide input parameter values and execute for each
insert.

HTH,
Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com


----- Original Message -----
From: <simpor81@...>
To: <ib-support@yahoogroups.com>
Sent: Tuesday, January 30, 2001 3:22 AM
Subject: [ib-support] Re: Writing data in tables!


> Well the computer that I use is a Athlon800 and 256 RAM, and when I
> use the DSQL-component can I only make something like 1000 rows/sec???
>
> Maybe I'm using the wrong code or something like that.
>
> Here is the code anyway...
>
> IB_Transaction1->StartTransaction ();
> IB_Connection1->BeginBusy(true);
> IB_DSQL1->BeginBusy(true);
> IB_Transaction1->BeginBusy(true);
> IB_Transaction1->DisablePause ();
>
> for (int a = 0; a <= 5000; a++)
> {
> String aa = "INSERT INTO COUNTRY VALUES(" + IntToStr(a) + ", "
> + IntToStr(a) + ") ";
> IB_Transaction1->ExecuteImmediate(aa);
> this->Caption = IntToStr(a);
> Application->ProcessMessages ();
> }
>
> IB_Transaction1->Commit ();
> IB_DSQL1->EndBusy();
> IB_Connection1->EndBusy();
>
> IB_Transaction1->EndBusy();
> IB_Transaction1->EnablePause ();
>
>
> I must say thank you to all of you that have helped me so far. It's
> looks a bit brighter now actually. :) The program is a sort of
> simulator that needs to write 15000 rows and only the code with no
> writings to the database is taking 15 sec. The writing to the
> database is now taking 1:40 min + the 15 sec so almost 2 min.
>
> Is it possible to make Interbase run in the memory of a machine. From
> my knowledge is the writing to the harddrive the thing that takes the
> most time. So if you were able to put the hole database in the RAM
> then would it be really quick, wouldn't it.
>
> Just a little thought that I have had.
>
> Simon
> --- In ib-support@y..., "Kaputnik" <delphi@k...> wrote:
> > 15.000 inserts are not that big problem as you think.....
> >
> > With a fast machine (in my Case, Dual XEON with IB_Affinity, 6-LVD-
> disks in
> > RAID5, 2GB of RAM) and forced writes off I can go up to 12.000
> rows/sec
> > easily.
> > The trick is to disable all indizes prior to inserting and using a
> prepared
> > insert-statement with parameters.
> > With IBObjects and a DSQL-component, you will get these speeds. No
> need for
> > the API on this....
> >
> > On my home-machine, Athlon900 with IDE-raid and 768MB of Ram, I go
> up to
> > 6.000 insert per second. Note, that I have to generate the data for
> this in
> > realtime, so there is room for about another 20%, as the Interbase-
> service
> > is using roughly only 65-70% of the CPU.....
> >
> > Ah, yes, this was done on a local machine.....for remote
> connections, the
> > network is the limit, not Interbase.
> >
> > CU, Kaputnik
> > (Nick Josipovic)
> >
> > nick@k...
> > kap@k...
> > --------------------------------------------------------------------
> ---
> > superior Client/Server programming:
> > www.IBObjects.com
> > a nice Tool for Interbase:
> > www.InterbaseWorkbench.com
> > ----- Original Message -----
> > From: "Ali Gokcen" <alig@e...>
> > To: <ib-support@y...>
> > Sent: Monday, January 29, 2001 8:26 PM
> > Subject: Re: [ib-support] Re: Writing data in tables!
> >
> >
> > > 15,000 insert /second ?
> > > what about is this project ? stauroscope data? realtime image
> capturing ?
> > > you can't find any standart database system to do this.
> > > if your inserts need db for a few seconds immediatly, you can
> write them
> > > quickly to an external table file and transfer them in idle time.
> or use a
> > > special RAMDISK drive.
> > > i think using API will not improve the performance, insert
> components are
> > > allready lowest level.
> > >
>
>
>
> To unsubscribe from this group, send an email to:
> ib-support-unsubscribe@egroups.com
>
>
>