Oracle Change Data Capture: Unsubscribed column results in change set record 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?
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;