Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I am using Oracle 11g's Change Data Capture to track changes on a database table. I am using synchronous mode to minimize latency. Here's an example to illustrate my problem:

Published_Table

  • important_column_a
  • important_column_b
  • useless_column_c

Now, both important_column_a and important_column_b are included in the PUBLICATION and SUBSCRIPTION. The third column, useless_column_c, is of no consequence and is not included in either PUBLICATION or SUBSCRIPTION.

My problem is that any time a change is made to the unpublished column (useless_column_c), a record is written to both the CDC table and the resultant CDC View on the subscription. This happens even if no other change is made to the table aside from the unpublished column.

The Published_Table experiences a significant number of transactions, but only changes to the subscribed columns require additional processing. As Oracle is sending every change across to the subscription, the result is an extensive amount of overhead as the subscriber sifts through what amounts to extra "noise."

Is there any way around this?

share|improve this question
add comment

1 Answer 1

I imagine you've enabled suplemental logging for the table on all columns, instead of just the ones that you require to be tracked.

eg:

ALTER TABLE philtest ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

vs:

ALTER TABLE philtest
ADD SUPPLEMENTAL LOG GROUP log_group_philtest
    (PHIL_COLA, PHIL_COLB) ALWAYS;
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.