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