| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: Advanced Replication Performance problems
I'm sorry about my previous posting...
There are more details about this problem:
CREATE TABLE catalogpage
(
pageid NUMBER(9) NOT NULL, catalogid NUMBER(9) NOT NULL, image VARCHAR2(100) NOT NULL, ocrtext VARCHAR2(100) NOT NULL)
ALTER TABLE catalogpage
ADD CONSTRAINT pk_catalogpage PRIMARY KEY (pageid,catalogid)
Oracle generate those statements to perform replication:
delete from "CATALOGPAGE"
where (
decode(substr(column_sent$_varchar2, 1, 1),
'N', 'Y',
decode("CATALOGID1_o", "CATALOGID", 'Y', 'N')) = 'Y'
and
decode(substr(column_sent$_varchar2, 2, 1),
'N', 'Y',
decode("IMAGE2_o", "IMAGE", 'Y', 'N')) = 'Y'
and
decode(substr(column_sent$_varchar2, 3, 1),
'N', 'Y',
decode("OCRTEXT3_o", "OCRTEXT", 'Y', 'N')) = 'Y'
and
decode(substr(column_sent$_varchar2, 4, 1),
'N', 'Y',
decode("PAGEID4_o", "PAGEID", 'Y', 'N')) = 'Y'
);
(Look at last 2 rows)
update "CATALOGPAGE" set
"CATALOGID" =
decode(substr(column_changed$_varchar2, 1, 1),
'N', "CATALOGID",
'Y', "CATALOGID1_n",
NULL, decode("CATALOGID1_o",
"CATALOGID1_n","CATALOGID",
"CATALOGID1_n")),
"IMAGE" =
decode(substr(column_changed$_varchar2, 2, 1),
'N', "IMAGE",
'Y', "IMAGE2_n",
NULL, decode("IMAGE2_o",
"IMAGE2_n","IMAGE",
"IMAGE2_n")),
"OCRTEXT" =
decode(substr(column_changed$_varchar2, 3, 1),
'N', "OCRTEXT",
'Y', "OCRTEXT3_n",
NULL, decode("OCRTEXT3_o",
"OCRTEXT3_n","OCRTEXT",
"OCRTEXT3_n")),
"PAGEID" =
decode(substr(column_changed$_varchar2, 4, 1),
'N', "PAGEID",
'Y', "PAGEID4_n",
NULL, decode("PAGEID4_o",
"PAGEID4_n","PAGEID",
"PAGEID4_n"))
where (((1 = 1 and
decode(substr(column_changed$_varchar2, 2, 1),
'N', 'Y',
'Y', 'N',
decode("IMAGE2_o", "IMAGE2_n", 'Y', 'N')) = 'Y' and
decode(substr(column_changed$_varchar2, 3, 1),
'N', 'Y',
'Y', 'N',
decode("OCRTEXT3_o", "OCRTEXT3_n", 'Y', 'N')) = 'Y'
and
1 = 1)) or
(1 = 1 and
decode(substr(column_sent$_varchar2, 2, 1),
'N', 'Y',
decode("IMAGE2_o", "IMAGE", 'Y', 'N')) = 'Y' and
decode(substr(column_sent$_varchar2, 3, 1),
'N', 'Y',
decode("OCRTEXT3_o", "OCRTEXT", 'Y', 'N')) = 'Y' and
1 = 1))
and "CATALOGID1_o" = "CATALOGID"
and "PAGEID4_o" = "PAGEID";
I.e. it does use PRIMARY KEY to update
Is there any way to force Oracle Replication to use PRIMARY KEY to perform delete?
OK
Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.
Received on Tue Jun 22 1999 - 14:25:56 CDT
![]() |
![]() |