Re: is parallel cause data lost?another Oracle Bug?
From: Vladimir M. Zakharychev <vladimir.zakharychev_at_gmail.com>
Date: Tue, 1 Sep 2009 01:43:22 -0700 (PDT)
Message-ID: <df1c3694-02cc-4793-a2f1-7223c9c79e60_at_r27g2000vbn.googlegroups.com>
On Sep 1, 11:18 am, Havel Zhang <havel.zh..._at_gmail.com> wrote:
> hi all:
> I'm using Oracle 10g 2.0.3. on Windows Server 2003 64bit
> Service Pack2. I found some strange thing.
> When I have set parameter:parallel_execution_message_size =
> 65535 and alter some table parallel degree to 8 or 4. If the table
> have huge data volumn, when I join this table with another table like
> follow:
> alter table table_a parallel 8;
> alter table table_b parallel 8;
>
> -----------------------
> insert into table_c
> select a.*,b.column_b
> from table_a inner join table_b on a.column_b = b.column b
> -----------------------
> it's a normal insert query. The strange thing is: When I just
> query :
> ----
> select a.*,b.column_b
> from table_a inner join table_b on a.column_b = b.column b
> ---
> it's no problem. but when I do insert:
> --
> insert into table_c
> select a.*,b.column_b
> from table_a inner join table_b on a.column_b = b.column b
> -----
> it will lost data! some data will missing when insert into table_c!
>
> but, when i set all these table back to no parallel:
> alter table table_a noparallel;
> alter table table_b noparallel;
>
> do the same query, we'll get right data. Why? any one have answer?
> another Oracle Bug?
Date: Tue, 1 Sep 2009 01:43:22 -0700 (PDT)
Message-ID: <df1c3694-02cc-4793-a2f1-7223c9c79e60_at_r27g2000vbn.googlegroups.com>
On Sep 1, 11:18 am, Havel Zhang <havel.zh..._at_gmail.com> wrote:
> hi all:
> I'm using Oracle 10g 2.0.3. on Windows Server 2003 64bit
> Service Pack2. I found some strange thing.
> When I have set parameter:parallel_execution_message_size =
> 65535 and alter some table parallel degree to 8 or 4. If the table
> have huge data volumn, when I join this table with another table like
> follow:
> alter table table_a parallel 8;
> alter table table_b parallel 8;
>
> -----------------------
> insert into table_c
> select a.*,b.column_b
> from table_a inner join table_b on a.column_b = b.column b
> -----------------------
> it's a normal insert query. The strange thing is: When I just
> query :
> ----
> select a.*,b.column_b
> from table_a inner join table_b on a.column_b = b.column b
> ---
> it's no problem. but when I do insert:
> --
> insert into table_c
> select a.*,b.column_b
> from table_a inner join table_b on a.column_b = b.column b
> -----
> it will lost data! some data will missing when insert into table_c!
>
> but, when i set all these table back to no parallel:
> alter table table_a noparallel;
> alter table table_b noparallel;
>
> do the same query, we'll get right data. Why? any one have answer?
> another Oracle Bug?
Try this with 10.2.0.4 - might indeed be a PQ defect fixed in third patchset. If you can reliably reproduce this issue on 10.2.0.4, you'd need to open a SR to get it fixed eventually. Since you know there is a workaround, they might not treat it as a P1/P2 issue and the fix may take, well, time to arrive.
Regards,
Vladimir M. Zakharychev
N-Networks, makers of Dynamic PSP(tm)
http://www.dynamicpsp.com
Received on Tue Sep 01 2009 - 03:43:22 CDT