Re: Poll: How fast is YOUR database in rows per second, on a full bore table scan???

From: DA Morgan <damorgan_at_psoug.org>
Date: Fri, 04 Jan 2008 13:04:18 -0800
Message-ID: <1199480641.197377@bubbleator.drizzle.com>


Frank van Bortel wrote:
> DA Morgan wrote:
>

>> SQL>
>> SQL> SELECT COUNT(*) FROM parent;
>>
>>   COUNT(*)
>> ----------
>>     200000
>>
>> SQL> SELECT COUNT(*) FROM child;
>>
>>   COUNT(*)
>> ----------
>>          0
>>
>> SQL> CREATE OR REPLACE PROCEDURE fast_way IS
>>   2
>>   3  TYPE myarray IS TABLE OF parent%ROWTYPE;
>>   4  l_data myarray;
>>   5
>>   6  CURSOR r IS
>>   7  SELECT part_num, part_name
>>   8  FROM parent;
>>   9
>>  10  BEGIN
>>  11    OPEN r;
>>  12    LOOP
>>  13      FETCH r BULK COLLECT INTO l_data LIMIT 1000;
>>  14
>>  15      FOR j IN 1 .. l_data.COUNT
>>  16      LOOP
>>  17        l_data(1).part_num := l_data(1).part_num * 10;
>>  18      END LOOP;
>>  19
>>  20      FORALL i IN 1..l_data.COUNT
>>  21      INSERT INTO child VALUES l_data(i);
>>  22
>>  23      EXIT WHEN r%NOTFOUND;
>>  24    END LOOP;
>>  25    COMMIT;
>>  26    CLOSE r;
>>  27  END fast_way;
>>  28  /
>>
>> Procedure created.
>>
>> SQL> set timing on
>> SQL> exec fast_way
>>
>> PL/SQL procedure successfully completed.
>>
>> Elapsed: 00:00:00.65
>> SQL> set timing off
>> SQL>
>>
>> Only 85,000 rows per second?
>>

>
> Err... 200k rows inserted in .65 secs is
> 200k/.065 = 307692.30769230769230769230769231 rows/sec
> in my calc. I'll go for 307692 :)
>
> And those are inserts - no asked for.
> But nice to know; my home-brew Intel E6600 PC with SATA drive:
>
> Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
> With the Partitioning, OLAP and Data Mining options
>
> SQL> set timing on
> SQL> exec fast_way
>
> PL/SQL procedure successfully completed.
>
> Elapsed: 00:00:00.26
> SQL> select count(*) from child;
>
> COUNT(*)
> ----------
> 200000
>
> 769230 inserts/sec

Part of the reason I was so amazed anyone would throw out the number 58K rows per second for an FTE. I can scan, process, and insert ten times that number of rows on a production system with decent code.

-- 
Daniel A. Morgan
Oracle Ace Director & Instructor
University of Washington
damorgan_at_x.washington.edu (replace x with u to respond)
Puget Sound Oracle Users Group
www.psoug.org
Received on Fri Jan 04 2008 - 15:04:18 CST

Original text of this message