数据更改通知性能影响

时间:2018-04-04 00:48:24

标签: java oracle

我构建了一个简单的应用程序,它在一个表上监视Oracle的数据库。我尝试测试启用订阅对性能的影响,并且对于在独立事务中插入大约10000条记录时降级大约为x2感到不高兴。

  • 没有订阅10k插入~30秒
  • 订阅ROWID粒度10k插入~60秒

如果我设置:

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

然后所有的退化都消失了,但我需要获得更新的细节。 我从客户端删除了所有额外的处理,所以这都是关于订阅费用的。

我想知道它本质上是如此昂贵还是我能以某种方式调整它?

1 个答案:

答案 0 :(得分:1)

数据库更改通知在提交期间有开销。这无法调整。请注意,此功能专为读取大多数表而设计,这些表值得缓存在客户端/中间层上。一个技巧可能是在批量插入期间取消注册您的应用程序。