Subject RE: [IBDI] SPEED-- Product Comparisons
Author Alan McDonald
I agree Paul,
I haven't even done such a simple test as you have but after several years
of working with IB, I know that if I get my indexes right I can do some
pretty damn quick stuff. I've done some similar things with SQL server
(e.g.) and there's no comparison.
At the moment I've written a few pretty complex procedures which ripple thru
six tables in school, building, room relationship (2000 schools, 40000
buildings and 250000 rooms) updating IDs from one set of tables into the
other set after making sure of an asset match between the tables (match on
other than the ID). It takes about 25 secs to do it's thing and log every
update into a separate table! At first I couldn't believe that it had done
it properly and I had to waste about an hour of my time trying to convince
myself that all records had been checked and that there wasn't a bug in my
code.
Bottom line - these real simple tests are a shamm on the real ability of
IB - put one of these other DB's thru a real world test and there's no
comparison. Complex comparisons are difficult though since you start to have
to make structural/data type diferences between the DBs since they don't all
see real world problems in the same way.
Alan McDonald

>-----Original Message-----
>From: Paul Gallagher [mailto:paul@...]
>Sent: Monday, 4 September 2000 4:21
>To: IBDI@egroups.com
>Subject: Re: [IBDI] SPEED-- Product Comparisons
>
>
>
>I really don't know how to do a proper benchmark, but I did some testing
>anyway. <g>
>
>Machine:
>dual celeron 466mhz with 328 meg ram. WD 27gig HD with ultraDMA66,
>Windows2000 Pro, running IB6 production release.
>
>Basically, I just inserted 10,000 records with a TIB_DSQL component, with
>one user, and checked for time.
>
>The time averaged about 2.95, with a best of 2.85 seconds to insert the
>10,000 rows. Thats 207,000 rows per minute. Using IBAffinity surprisingly
>made little difference. It was slightly faster(maybe 5-10%) when using
>processor 2 only. Using processor 1 was slightly slower. I suspect that
>Win2k is better at processor management than NT4 was. Page size set to 4096
>made a very slight improvement. Changing buffers to 5000, made no
>difference.
>
>I realize I have a fairly fast machine, but it is a CELERON, not a P3. The
>time of 2.9 seconds beats anything I have seen out of MYSQL or PostgreSQL.
>
>When I committed after every row, the time jumped to about 6.5 seconds. But
>thats 1538 transactions per second!
>
>Not very meaningful, because I could not do a side by side with
>other DBM's,
>but it shows that Interbase is capable of some very impressive numbers.
>
>Paul Gallagher
>__________________
>
>The Database:
>CREATE DATABASE 'Benchmark.gdb'
> USER 'SYSDBA'
> PASSWORD 'masterkey'
> PAGE_SIZE=4096;
>create table TABLE1(
> FIELD1 integer not null,
> FIELD2 varchar(100) not null);
>
>commit work;
>alter table TABLE1 add constraint PK_TABLE1 primary key (FIELD1);
>
>The DSQL:
>INSERT INTO TABLE1 (FIELD1, FIELD2) VALUES
>(?ONE, ?TWO);
>
>And the code:
>procedure TForm1.Button2Click(Sender: TObject);
>var
>i:integer;
>starttime,endtime,ElapTime:TDateTime;
>s:string;
>begin
> IB_Transaction1.Commit;
>
>s:='elsdksdflkjalialfdjlkaeru,skdflasidfualkjrlkaudflkjsdfljas;fusk
>ljfslk;al
>ksjfkasj';
> StartTime:=now;
> IB_Transaction1.BeginBusy(true);
> IB_DSQL1.Prepare;
> for i:=1 to 10000 do
> begin
> IB_DSQL1.ParamByName('ONE').Value:=i;
> IB_DSQL1.ParamByName('TWO').Value:=s;
> IB_DSQL1.ExecSQL;
> end;
> IB_Transaction1.Commit;
> IB_Transaction1.EndBusy;
> EndTime:=now;
> ElapTime:=EndTime-StartTime;
> Label1.Caption:=FloatToStr(ElapTime*86400)+' seconds';
> IB_Connection1.Disconnect;
>end;
>
>
>
>Community email addresses:
> Post message: IBDI@onelist.com
> Subscribe: IBDI-subscribe@onelist.com
> Unsubscribe: IBDI-unsubscribe@onelist.com
> List owner: IBDI-owner@onelist.com
>
>Shortcut URL to this page:
> http://www.onelist.com/community/IBDI