首先通过查看统计信息,分析慢在哪一块,再根据具体情况进行调优
DMHS参数调优主要包括以下参数:
目的地端:
exec_thr
含义:EXEC 模块用来数据入库的工作线程数,取值范围在 1-1024,默认值 4。
说明:数据入库是由工作线程来完成的,每个工作线程对应一个事务,单个工作线程时,事务按提交顺序先后入库,如果配置了多个工作线程,那么需要按照提交策略来决定事务之间如何并行入库。DDL不支持并行。
exec_rows
含义:数据入库时允许的最大批量行数,取值范围在 1-2000,默认值 1000.
说明:工作线程在对事务进行入库时,采取的是参数批量绑定的方式,这个参数指定了批量的最大行数,该参数对性能会有一定影响。取值小时,可以减少 EXEC 模块对内存的占用,但是会降低入库性能;取值大时虽然有助于提升入库性能,但是会加剧 EXEC 模块对内存的消耗
direct_exec
含义:执行入库操作时,是否采用直接执行的方式入库,有效值:0 或 1,默认值 0。
说明:数据入库目前有两种实现方式,第一种,先准备语句,然后再执行;第二种,不准备语句,直接执行。由于准备语句会和数据库服务器有一次交互,在小事务同步的环境中,对同步性能有影响,采用直接执行的方式会有更好的同步效果。
commit_wait
含义:提交事务时是否需要等待数据库刷盘,有效值:0 或 1,默认值 1。
说明:DM6,DM7 和 ORACLE 支持提交操作的异步操作,把普通的提交操作拆分来COMMIT NOWAIT 和 COMMIT FLUSH 两步。当该参数配置为 0 时,执行端在事务提交时会使用异步提交的特性,来提升同步的性能。
源端:
parse_thr
含义:日志分析线程数,取值范围在 1-16,默认值 1。
说明:该参数仅对源端数据为 DM7、DM8 和 Oracle 时有效。CPT 允许使用多线程对日志进行解析,从而提升日志解析的速度。
io_threads
含义: 并行读日志时的线程数,默认取值为 0。
说明: 该参数适用于源为 ORACLE 或 DM RAC 使用,表示读取 RAC 归档日志的线程数。当该参数取值为 0 时,不开启并行读日志功能,使用单线程读取归档日志文件,可能存在性能瓶颈。配置大于 0 时,开启多个并行读日志线程,加快日志读取分析的效率,提高同步性能。