Re: Oracle much slower than MS SQL Server on NT?!

From: sm <sm_at_nowhere.com>
Date: 1997/09/09
Message-ID: <341492b5.1359514_at_newshost.us.oracle.com>#1/1


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 CEST

Original text of this message