replicate minimal columns Clause and Dynamic SQL

Replication processing uses dynamic SQL when the replication definition contains replicate minimal columns or, when you set replicate_minimal_columns on for a connection.

You can use replicate_minimal_columns for physical connections and warm standby environments. DSI can use the parameter to determine whether to use minimal columns when there is no replication definition, or when the replication definition does not contain the replicate minimal columns clause.

By default, replicate_minimal_columns is on for all connections. The replicate_minimal_columns setting for a connection overrides replication definitions set with the replicate all columns clause.

With custom function strings, the behavior of the current replication environment may change when you set replicate_minimal_columns on for a connection. If the application is relying on a command to be sent to the replicate database for trigger processing, the default replicate_minimal_columns setting of on does not send the command when there are no changes to any columns in the row. To restore the original behavior, set replicate_minimal_columns off for the connection.

For example, to enable replicate_minimal_columns for the connection to the pubs2 database in the SYDNEY_DS data server:

alter connection to SYDNEY_DS.pubs2
set replicate_minimal_columns to ‘on’

replicate_minimal_columns can affect trigger processing if you expect triggers to fire even if there is no change in values to any columns in the row.

You can use admin config to display the replicate_minimal_columns setting.

Note: When you set dsi_compile_enable ‘on’, Replication Server ignores the replicate_minimal_columns setting.