现象描述
一个表2GB ,数据量1kw ,导入的时候,为什么要将近2h ?
这里只是针对一个一般疑惑,来协助大家认识达梦数据库使用下,dimp 的一个参数,能够帮助大家把2h 导入,在5min 内完成。
处理方法
Dimp 导入时,加上参数 FAST_LOAD=Y
数据比对:
在不加 fast_load=y 时,导入是普通模式,dmserver 的io 速度在 2-3 MBps
在加上fast_load=y 时,导入为快速加载,dmserver 的io 速度在 90-120MBps
背景:
其实关于dimp 在早期有段时间,fast_load 默认值为Y ,但是现在默认值改为N 了,
1. 本身 fast_load 如果在表含有大字段的时候,快速加载模式反而会更慢
2. 而且如果fast_load 需要的内存资源比较大
3. 在启用了快速加载时,索引之类的默认是滞后处理(也有参数设置),可能会导入重复数据,而且在导入完成后,索引重建失败(违反唯一性冲突等)
关于参数设置,大家使用命令前,可以养成学习了解help 的习惯:
|
TASK_THREAD_NUMBER 用于设置 dmfldr 处理用户数据的线程数目 BUFFER_NODE_SIZE 用于设置 dmfldr 读入文件缓冲区大小 TASK_SEND_NODE_NUMBER 用于设置 dmfldr 发送节点个数 [16,65535] LOB_NOT_FAST_LOAD 如果一个表含有大字段,那么不使用 dmfldr ,因为 dmfldr 是一行一行提交的 PRIMARY_CONFLICT 主键冲突的处理方式 [IGNORE|OVERWRITE], 默认报错 |
完成的参数介绍如下:
|
PS E:\OneDrive - business\DM_DBMS\DBMS_20190917-v8\bin> dimp help dimp V8 格式 : dimp.exe KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
例程 : dimp.exe SYSDBA/SYSDBA IGNORE=Y ROWS=Y FULL=Y
USERID 必须是命令行中的第一个参数
关键字 说明(默认值) -------------------------------------------------------------------------------- USERID 用户名 / 口令 格式 :USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD FILE 导入文件名称 (dexp.dmp) DIRECTORY 导入文件所在目录 FULL 整库导入 (N) OWNER 以用户方式导入 格式 (user1,user2,...) SCHEMAS 以模式方式导入 格式 (schema1,schema2,...) TABLES 以表名方式导入 格式 (table1,table2,...) PARALLEL 用于指定导入的过程中所使用的线程数目 TABLE_PARALLEL 用于指定导入的过程中每个表所使用的子线程数目 , 在 FAST_LOAD 为 Y 时有效 IGNORE 忽略创建错误 (N) TABLE_EXISTS_ACTION 需要的导入表在目标库中存在时采取的操作 [SKIP | APPEND | TRUNCATE | REPLACE] FAST_LOAD 是否使用 dmfldr 来导数据 (N) FLDR_ORDER 使用 dmfldr 是否需要严格按顺序来导数据 (Y) COMMIT_ROWS 批量提交的行数 (5000) EXCLUDE 忽略指定的对象 格式 格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) GRANTS 导入权限 (Y) CONSTRAINTS 导入约束 (Y) INDEXES 导入索引 (Y) TRIGGERS 导入触发器 (Y) ROWS 导入数据行 (Y) LOG 指定日志文件 NOLOGFILE 不使用日志文件 (N) NOLOG 屏幕上不显示日志信息 (N) LOG_WRITE 日志信息实时写入文件 (N): 是 (Y), 否 (N) DUMMY 交互信息处理 (P): 打印 (P), 所有交互都按 YES 处理 (Y),NO(N) PARFILE 参数文件名 FEEDBACK 每 x 行显示进度 (0) COMPILE 编译过程 , 程序包和函数 ... (Y) INDEXFILE 将表的索引 / 约束信息写入指定的文件 INDEXFIRST 导入时先建索引 (N) REMAP_SCHEMA 格式 (SOURCE_SCHEMA:TARGET_SCHEMA) 将 SOURCE_SCHEMA 中的数据导入到 TARGET_SCHEMA 中 ENCRYPT_PASSWORD 数据的加密密钥 ENCRYPT_NAME 加密算法的名称 SHOW/DESCRIBE 打印出指定文件的信息 (N) LOCAL MPP 模式下登录使用 MPP_LOCAL 方式 (N) TASK_THREAD_NUMBER 用于设置 dmfldr 处理用户数据的线程数目 BUFFER_NODE_SIZE 用于设置 dmfldr 读入文件缓冲区大小 TASK_SEND_NODE_NUMBER 用于设置 dmfldr 发送节点个数 [16,65535] LOB_NOT_FAST_LOAD 如果一个表含有大字段,那么不使用 dmfldr ,因为 dmfldr 是一行一行提交的 PRIMARY_CONFLICT 主键冲突的处理方式 [IGNORE|OVERWRITE], 默认报错 TABLE_FIRST 是否先导入表 (N): 是 (Y), 否 (N) HELP 打印帮助信息
PS E:\OneDrive - business\DM_DBMS\DBMS_20190917-v8\bin> |