简体   繁体   English

数据更改通知性能影响

[英]Data Change Notification performance impact

I built a simple application that is monitoring Oracle's DB on a single table. 我构建了一个简单的应用程序,该应用程序在单个表上监视Oracle的数据库。 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. 我试图测试启用的订阅对性能的影响,但对于在独立事务中每个插入约10000条记录的降级大约是x2,我感到很惊讶。

  • without subscription 10k insert ~ 30 sec 无订阅10k插入〜30秒
  • with subscription ROWID granularity 10k insert ~ 60 sec 订阅ROWID粒度为10k插入〜60秒

If I set: 如果我设置:

OracleConnection.DCN_NOTIFY_ROWIDS, "false" OracleConnection.DCN_QUERY_CHANGE_NOTIFICATION, "false" OracleConnection.DCN_NOTIFY_ROWIDS,“假” OracleConnection.DCN_QUERY_CHANGE_NOTIFICATION,“假”

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. 一种技巧可能是在批量插入过程中注销您的应用程序。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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