Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Oracle much slower than MS SQL Server on NT?!
Apart from the other sugestions you have gotten, how about just reducing the number of commits. Just commit once every 100 or 1000 rows. And also, perform a proper multiuser test. Run your insert routine on multiple clients and then check performance between the two.
-sm
On 5 Sep 1997 03:25:22 GMT, lesliet_at_u.washington.edu (L. Tseng) wrote:
>I recently did a testing to see the performance difference
>between Oracle 7.3 and MS SQL 6.5.
>
>The test simply does 5000 and 10000 rows insert to a table, to my
>surprise, Oracle is 2-3 times slower and gets even slower when inserting
>more rows. This seems to contradict to Oracle's claim as the fastest
>database engine.
>
>The environment for testing is on the same NT 4.0 box. Two server were
>configured to use about same amount of memory. The results are:
>
> insert
> 5000 recs Oracle: 2 min. 20 sec.
> MS SQL: 58 sec.
>
> 10000 recs Oracle: 4 min. 55 sec.
> MS SQL: 1 min. 42 sec.
>
>I was wondering if anyone experience the same thing or
>anyone know some tips to speed up the Oracle.
>
>Thanks for your help in advance.
>
>Leslie
>
>I here include the table structure below for reference.
>
>CREATE TABLE Employee
>(
> EmployeeID int NOT NULL ,
> FirstName VARCHAR2 (50) NULL ,
> LastName VARCHAR2 (50) NULL ,
> MiddleInitial char (2) NULL ,
> DefaultLoginName VARCHAR2 (30) NULL ,
> DefaultDomainName VARCHAR2 (50) NULL ,
> EmailAddress VARCHAR2 (75) NULL ,
> SetupDate DATE DEFAULT SYSDATE ,
> SetupBy VARCHAR2 (30) DEFAULT USER ,
> LastModifiedDate DATE NULL ,
> LastModifiedBy VARCHAR2 (30) NULL ,
> ServerFlag NUMBER(3) NULL,
> RecordInputType NUMBER(3) NULL
>)
>;
>
>CREATE UNIQUE INDEX PKEmployee ON Employee(EmployeeID)
>;
>
>CREATE UNIQUE INDEX AK1Employee ON Employee(DefaultLoginName)
>;
>
>drop sequence emp_seq;
>create sequence emp_seq;
>
>CREATE OR REPLACE TRIGGER EmpID_TR
>BEFORE INSERT ON employee
>FOR EACH ROW
>WHEN (NEW.EmployeeID IS NULL)
>BEGIN
>SELECT emp_seq.NEXTVAL INTO :NEW.EmployeeID FROM DUAL;
>END;
>
>/
>
>declare
>y int;
>begin
>for y in 1..5000 loop
> INSERT INTO Employee
> (
> FirstName,
> LastName,
> MiddleInitial,
> DefaultLoginName,
> EmailAddress,
> ServerFlag,
> RecordInputType
> )
> VALUES
> (
> 'User'||y,
> 'User'||y,
> null,
> 'User'||y,
> null,
> 1,
> 2
> );
>commit;
>end loop;
>commit;
>end;
>
>/
>
>
Received on Tue Sep 09 1997 - 00:00:00 CDT