简体   繁体   中英

Data Change Notification performance impact

I built a simple application that is monitoring Oracle's DB on a single table. I tried to test performance impact of enabled subscription and was unpleased surprised that degradation is about x2 for inserting about 10000 records each in standalone transaction.

  • without subscription 10k insert ~ 30 sec
  • with subscription ROWID granularity 10k insert ~ 60 sec

If I set:

OracleConnection.DCN_NOTIFY_ROWIDS, "false" OracleConnection.DCN_QUERY_CHANGE_NOTIFICATION, "false"

then all degradation is vanishing but I need to get details of updates. I removed all extra processing from client side so this is all about subscription overhead.

I am wondering is it so expensive by nature or I can tune this somehow?

Database change notification has an overhead during commit. This can't be tuned. Note that this feature is designed for read-mostly tables that are worth being cached on the client/mid-tier. One trick might be to unregister your app during batch inserts.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM