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."