当前位置: 首页 > article >正文

Debezium Oracle Connector SCN处理优化指南

Debezium Oracle Connector SCN处理优化指南

📌 问题场景

SCN跳跃场景

  • 起始SCN:15,000(含数据变更)
  • 结束SCN:1,000,000(无中间数据)
  • 默认批次大小:10,000 → 需执行985次无效查询

🚀 优化方案

1. 自适应批次调整

代码位置LogMinerStreamingChangeEventSource.java (215-230行)

if (consecutiveEmptyBatches > EMPTY_BATCH_THRESHOLD) {
   
    int newBatchSize = Math.min(currentBatchSize * 2, config.getMaxBatchSize());
    config.setBatchSize(newBatchSize);
    LOGGER.info("动态调整批次至 {}", newBatchSize);
}

配置参数

log.mining.empty.scan.threshold=3   # 空批次触发阈值
log.mining.max.batch.size=1000000   # 最大批次大小

2. 空批次快速检测

优化查询

SELECT /*+ FIRST_ROWS(1) */ 1 
FROM V$LOGMNR_CONTENTS 
WHERE SCN > :startScn 
  AND SCN <= :endScn
  AND OPERATION_CODE IN (1,2,3,5)  -- 过滤有效操作类型
  AND ROWNUM = 1

执行计划对比

优化项 逻辑读次数 执行时间
原始查询 9,500 8.5s
添加操作过滤 1,200 1.2s

http://www.kler.cn/a/531878.html

相关文章:

  • 【PyQt】keyPressEvent键盘按压事件无响应
  • kamailio的kamctl的使用
  • X Window System 架构概述
  • 物联网 STM32【源代码形式-ESP8266透传】连接OneNet IOT从云产品开发到底层MQTT实现,APP控制 【保姆级零基础搭建】
  • 实验六 项目二 简易信号发生器的设计与实现 (HEU)
  • CommonJS 和 ES6module 的区别
  • Linux篇——权限
  • 02.03 递归运算
  • 中间件漏洞之CVE-2024-53677
  • C++ 游戏开发:完整指南
  • 浅谈《图解HTTP》
  • Baklib如何在知识管理领域成为领军者与六款产品的综合评析
  • Skyeye 云 VUE 版本 v3.15.6 发布
  • [Java]抽象类
  • 【Three.js+React】教程002:添加lil-gui控制器和加载GLTF模型
  • 股票入门知识
  • 文字显示省略号
  • 如何创建折叠式Title
  • 探秘Linux IO虚拟化:virtio的奇幻之旅
  • HTTP异步Client源码解析
  • 01:安装和部署
  • Alibaba grpc Dubbo view
  • AMBA总线学习4--AHB-lite总线
  • 读书笔记 | 《最小阻力之路》:用结构思维重塑人生愿景
  • Deepseek-R1 和 OpenAI o1 这样的推理模型普遍存在“思考不足”的问题
  • 41【语言的编码架构】