Re: Do you use ASSM (Automatic Segment Space Management)?
From: kevin <majunyue_at_hotmail.com>
Date: Wed, 5 Aug 2009 06:19:59 -0700 (PDT)
Message-ID: <9260ad16-05b7-4c26-888e-3e7ebd777149_at_13g2000prl.googlegroups.com>
On Aug 5, 12:32 pm, Noons <wizofo..._at_gmail.com> wrote:
> On Aug 4, 5:43 pm, ca111026 <ca111..._at_gmail.com> wrote:
>
> > Would you be able to do a simple test? Create average-size table in
> > ASSM tablespace, let's say 1,000,000 rows with
> > row size approx 100 bytes. Then insert additional 10,000 rows into the
> > table using singe-row insert, record how long it takes.
> > Then delete all rows from the table, don't commit.
> > Then repeat insert of 10,000 rows from another session. Check how long
> > it takes.
>
> > In my tests second insert takes much, much longer - an hour instead of
> > several seconds.
>
> Something is definitely different in your system.
>
> Here are my results:
> SQL> select count(1) from zot;
>
> COUNT(1)
> --------------
> 1339456
>
> Elapsed: 00:00:00.24
> SQL> desc zot;
> Name Null? Type
> ----------------------------------------- --------
> ----------------------------
> OWNER NOT NULL VARCHAR2(30)
> TABLE_NAME NOT NULL VARCHAR2(30)
> COLUMN_NAME NOT NULL VARCHAR2(30)
> DATA_TYPE VARCHAR2(106)
> DATA_TYPE_MOD VARCHAR2(3)
> DATA_TYPE_OWNER VARCHAR2(30)
> DATA_LENGTH NOT NULL NUMBER
> DATA_PRECISION NUMBER
> DATA_SCALE NUMBER
> NULLABLE VARCHAR2(1)
> COLUMN_ID NUMBER
> DEFAULT_LENGTH NUMBER
> NUM_DISTINCT NUMBER
> LOW_VALUE RAW(32)
> HIGH_VALUE RAW(32)
> DENSITY NUMBER
> NUM_NULLS NUMBER
> NUM_BUCKETS NUMBER
> LAST_ANALYZED DATE
> SAMPLE_SIZE NUMBER
> CHARACTER_SET_NAME VARCHAR2(44)
> CHAR_COL_DECL_LENGTH NUMBER
> GLOBAL_STATS VARCHAR2(3)
> USER_STATS VARCHAR2(3)
> AVG_COL_LEN NUMBER
> CHAR_LENGTH NUMBER
> CHAR_USED VARCHAR2(1)
> V80_FMT_IMAGE VARCHAR2(3)
> DATA_UPGRADED VARCHAR2(3)
> HISTOGRAM VARCHAR2(15)
>
> (came from dba_tab_columns. zot1 is a subset)
>
> SQL> insert into zot select * from zot1;
>
> 13214 rows created.
>
> Elapsed: 00:00:00.21
> SQL> delete from zot;
>
> 1352670 rows deleted.
>
> Elapsed: 00:01:45.35
> SQL> insert into zot select * from zot1;
>
> 13214 rows created.
>
> Elapsed: 00:00:00.08
> SQL> commit;
>
> Commit complete.
>
> Elapsed: 00:00:00.06
> SQL> select count(1) from zot;
>
> COUNT(1)
> --------------
> 13214
>
> Elapsed: 00:00:00.14
>
> In simple terms: bugger all difference between first insert and second
> insert.
> If anything, second was faster.
9iSQL> create table t as select * from fb6 where rownum < 100000;
Date: Wed, 5 Aug 2009 06:19:59 -0700 (PDT)
Message-ID: <9260ad16-05b7-4c26-888e-3e7ebd777149_at_13g2000prl.googlegroups.com>
On Aug 5, 12:32 pm, Noons <wizofo..._at_gmail.com> wrote:
> On Aug 4, 5:43 pm, ca111026 <ca111..._at_gmail.com> wrote:
>
> > Would you be able to do a simple test? Create average-size table in
> > ASSM tablespace, let's say 1,000,000 rows with
> > row size approx 100 bytes. Then insert additional 10,000 rows into the
> > table using singe-row insert, record how long it takes.
> > Then delete all rows from the table, don't commit.
> > Then repeat insert of 10,000 rows from another session. Check how long
> > it takes.
>
> > In my tests second insert takes much, much longer - an hour instead of
> > several seconds.
>
> Something is definitely different in your system.
>
> Here are my results:
> SQL> select count(1) from zot;
>
> COUNT(1)
> --------------
> 1339456
>
> Elapsed: 00:00:00.24
> SQL> desc zot;
> Name Null? Type
> ----------------------------------------- --------
> ----------------------------
> OWNER NOT NULL VARCHAR2(30)
> TABLE_NAME NOT NULL VARCHAR2(30)
> COLUMN_NAME NOT NULL VARCHAR2(30)
> DATA_TYPE VARCHAR2(106)
> DATA_TYPE_MOD VARCHAR2(3)
> DATA_TYPE_OWNER VARCHAR2(30)
> DATA_LENGTH NOT NULL NUMBER
> DATA_PRECISION NUMBER
> DATA_SCALE NUMBER
> NULLABLE VARCHAR2(1)
> COLUMN_ID NUMBER
> DEFAULT_LENGTH NUMBER
> NUM_DISTINCT NUMBER
> LOW_VALUE RAW(32)
> HIGH_VALUE RAW(32)
> DENSITY NUMBER
> NUM_NULLS NUMBER
> NUM_BUCKETS NUMBER
> LAST_ANALYZED DATE
> SAMPLE_SIZE NUMBER
> CHARACTER_SET_NAME VARCHAR2(44)
> CHAR_COL_DECL_LENGTH NUMBER
> GLOBAL_STATS VARCHAR2(3)
> USER_STATS VARCHAR2(3)
> AVG_COL_LEN NUMBER
> CHAR_LENGTH NUMBER
> CHAR_USED VARCHAR2(1)
> V80_FMT_IMAGE VARCHAR2(3)
> DATA_UPGRADED VARCHAR2(3)
> HISTOGRAM VARCHAR2(15)
>
> (came from dba_tab_columns. zot1 is a subset)
>
> SQL> insert into zot select * from zot1;
>
> 13214 rows created.
>
> Elapsed: 00:00:00.21
> SQL> delete from zot;
>
> 1352670 rows deleted.
>
> Elapsed: 00:01:45.35
> SQL> insert into zot select * from zot1;
>
> 13214 rows created.
>
> Elapsed: 00:00:00.08
> SQL> commit;
>
> Commit complete.
>
> Elapsed: 00:00:00.06
> SQL> select count(1) from zot;
>
> COUNT(1)
> --------------
> 13214
>
> Elapsed: 00:00:00.14
>
> In simple terms: bugger all difference between first insert and second
> insert.
> If anything, second was faster.
Let me show you something:
9iSQL> create table t as select * from fb6 where rownum < 100000;
Table created.
Elapsed: 00:00:00.03
9iSQL> insert into t select * from t;
99999 rows created.
Elapsed: 00:00:01.00
Execution Plan
0 INSERT STATEMENT Optimizer=CHOOSE 1 0 TABLE ACCESS (FULL) OF 'T' Statistics
182 recursive calls 11122 db block gets 3136 consistent gets 1104 physical reads 9007392 redo size 793 bytes sent via SQL*Net to client 802 bytes received via SQL*Net from client 4 SQL*Net roundtrips to/from client 2 sorts (memory) 0 sorts (disk) 99999 rows processed
9iSQL> delete t;
199998 rows deleted.
Elapsed: 00:00:05.03
Execution Plan
0 DELETE STATEMENT Optimizer=CHOOSE
1 0 DELETE OF 'T'
2 1 TABLE ACCESS (FULL) OF 'T'
Statistics
305 recursive calls 219083 db block gets 2422 consistent gets 1104 physical reads 63639616 redo size 793 bytes sent via SQL*Net to client 781 bytes received via SQL*Net from client 4 SQL*Net roundtrips to/from client 1 sorts (memory) 0 sorts (disk) 199998 rows processed ------------------------------------------------------------------------------------------
when you delete rows before commit, the redo size is very big. So the problem is not regarding ASSM, it's redo size. Received on Wed Aug 05 2009 - 08:19:59 CDT