精华内容
下载资源
问答
  • db2 load详解
    千次阅读
    2021-01-14 04:23:12

    load 是将输入的数据文件直接格式化成数据页存储到数据库中,在装载数据过程中不会触发触发器,并且除了唯一性约束以外不执行引用约束检查或表约束检查,只记录少量日志或不记录日志。因此对于大数据量装入场景下有很高的效率。

    --load 常用命令:

    db2 "load from xxx.del of del modified by codepage=1208 identityignore / identitymissing /identityoverride  insert into from tableName"

    --identityignore 忽略自增长

    --identitymissing 导入时不包含标识列的值

    --identityoverride 使用自增长,ID为空会拒绝

    --查看db2 load进度

    db2 load query table tableName

    db2 list utilities show detail

    或者通过db2top命令查看

    --终止load操作

    db2 "load from xxx.del of del terminate into from tableName"

    更多相关内容
  • db2 load选项

    2020-12-24 01:10:38
    最近有个好朋友因为load问题导致了生产故障,所以特意写篇文章总结一下load的用法及注意事项。1.load概述数据的导入方法有insert,import和load三种,其中load不需要写日志(或很少日志),不做检查约束和参照完整性...

    最近有个好朋友因为load问题导致了生产故障,所以特意写篇文章总结一下load的用法及注意事项。

    1.load概述

    数据的导入方法有insert,import和load三种,其中load不需要写日志(或很少日志),不做检查约束和参照完整性约束,不触发Trigger,锁的时间比较短,因此特别适合大数据量的导入。

    2.load的4个阶段

    load过程分为4个阶段:load/build/delete/index copy。load阶段是将源文件parser成物理数据存储的格式,直接装入到页中,而不通过db2引擎,load阶段会检查表定义,违背定义的数据不会装入到表中。build阶段建议索引(如果装入表有索引的话),会检查唯一性约束,违背了唯一性的数据会在delete阶段删除。index copy阶段将index数据从指定的临时表空间拷贝到初始的表空间里,index copy只适应于allow read access场景。load的4个阶段会记录在messages文件里。

    3.online and offline load

    缺省情况下,load过程不允许其他应用访问表,即allow no access,或叫offline load(离线加载)。Allow read access,或叫online load(在线加载),只有在load ...insert into的时候才允许使用,其他应用读到的数据是加载前的数据,load ... replace into会将数据先删除,再load,只能是离线加载。

    4.load举例

    此例中,要将calpar.del文件数据导入到表calpar中,calpar表的第一个字段是primary key,最后一个字段定义为非空的数字型。load命令如下:

    load from calpar.del of del modified by dumpfile=/dump.fil warningcount 100 messages par.msgs inser into calpar for exception calpar.exp

    此命令会产生四个输出,calpar为目标表,messages记录load的4个阶段,dumpfile记录违背表定义的数据,exception table记录违背唯一性约束的数据(exception table需要在load之前创建,表定义为目标表+timestamp type column+clob type column)。本例中,第2行和第5行违背了表定义,因此存到了dumpfile文件;第4行和第7行违背了唯一性约束,存到了exception table里;剩余正常的数据存到了目标表里。

    5. load表的状态

    load可能出现的几种状态,某一时刻可能会同时处于几种状态。只有当表是normal状态时,表才能进行正常的增删改查操作。

    normal: 正常状态

    set integrity pending: 如果目标表有check约束或reference约束,那么Load后此表处于set integrity pending,表明表有约束还未检查,稍后解释。

    load in progress:load正在数据加载过程中。

    load pending:数据提交前出现了故障,需要通过load..terminate,load..replace或load..restart解除暂挂状态

    read access only:目标表数据是可以读的,当load时指定了allow read access,那表就会处于read access only状态

    unavailable:表可能被删除了或从backup中恢复了。

    unknown:通过load..query命令无法得知表的状态。

    可以通过load..query命令查看表的状态,

    (1).当表处于load pending的时候,需要检查pending的原因,然后通过load..terminate终止load操作,或通过load..replace将表数据清空,或通过load..restart重启load操作。记住不要删除load的临时数据文件。load pending的原因很多,如表空间没有足够的空间等。

    (2).当表处于set integrity pending状态的时候,意味着要求用户去检查数据的一致性(check constraint和reference constraint)。可通过 set integrity for immediate checked将set integrity pending去掉。

    (3).load..replace会将数据先清空,再load数据。如果中间出现故障,那么通过load..terminate命令后,表里的数据会变空,因此建议load之前进行数据库备份或单表备份。

    6. load的COPY选项

    COPY可以理解为备份,主要针对前滚恢复,即当数据库处于归档日志情况下。由于load不记日志,需要备份才能进行恢复。

    Load支持三种COPY选项,COPY NO(缺省),COPY YES,和NONRECOVERABLE。

    COPY NO :此选项会导致load表所在的表空间处于backup pending状态,可以读数据,但不能对表进行增删改。load操作一旦开始,表就会处于backup pending状态,即使终止Load,也不会使表空间脱离此状态。load完成后,需要进行表空间backup。

    COPY YES: 此选项会将load变化的数据进行自动备份。在前滚恢复阶段(rollforward),会使用这个备份重建load过程产生的数据。

    NONRECOVERABLE:此选项表明此表是不能通过rollforward恢复的,当rollforward完成后,此表只能被删除或从备份介质中恢复。此选项不会使表空间处于backup pending状态,也不会产生数据的备份。

    我的朋友前几天因为在正常交易时间load数据,造成了表空间处于backup pending状态,交易系统只能查不能更新,尽管发现问题后立即终止load,但由于表空间很大,backup花了将近1个半小时,严重影响了交易的正常运行,一个失误可能会导致年终奖泡汤。他在测试系统测试过没问题,但由于测试系统使用的是循环日志,而生产中利用的是归档日志。

    7. load replace快速清空大表

    对于大表数据的清空,如果用delete,由于会产生大量的日志,导致效率很慢,而且容易出现log full。可以考虑用load from /dev/null of del replace into

    (Unix/Linux) 或者load from empty.del of del replace into(Windows,empty.del是一个空的文本文件即可)

    8. load总结

    load的步骤可以总结如下:

    (1)创建表和索引

    (2) 建异常表(exception table)

    (3) 备份db或tablespace

    (4) load ..dumpfile ..messages ..exception

    (5) 验证dumpfile,messages和异常表

    (6) backup tablespace if logretain=on and copy NO

    (7) set integrity (if table has check or reference constraints)

    (8) 更新statistics,便于优化器选择最优执行计划。

    展开全文
  • db2 load使用

    2020-12-24 01:10:44
    最近有个好朋友因为load问题导致了生产故障,所以特意写篇文章总结一下load的用法及注意事项。1.load概述数据的导入方法有insert,import和load三种,其中load不需要写日志(或很少日志),不做检查约束和参照完整性...

    最近有个好朋友因为load问题导致了生产故障,所以特意写篇文章总结一下load的用法及注意事项。

    1.load概述

    数据的导入方法有insert,import和load三种,其中load不需要写日志(或很少日志),不做检查约束和参照完整性约束,不触发Trigger,锁的时间比较短,因此特别适合大数据量的导入。

    2.load的4个阶段

    load过程分为4个阶段:load/build/delete/index copy。load阶段是将源文件parser成物理数据存储的格式,直接装入到页中,而不通过db2引擎,load阶段会检查表定义,违背定义的数据不会装入到表中。build阶段建议索引(如果装入表有索引的话),会检查唯一性约束,违背了唯一性的数据会在delete阶段删除。index copy阶段将index数据从指定的临时表空间拷贝到初始的表空间里,index copy只适应于allow read access场景。load的4个阶段会记录在messages文件里。

    3.online and offline load

    缺省情况下,load过程不允许其他应用访问表,即allow no access,或叫offline load(离线加载)。Allow read access,或叫online load(在线加载),只有在load ...insert into的时候才允许使用,其他应用读到的数据是加载前的数据,load ... replace into会将数据先删除,再load,只能是离线加载。

    4.load举例

    此例中,要将calpar.del文件数据导入到表calpar中,calpar表的第一个字段是primary key,最后一个字段定义为非空的数字型。load命令如下:

    load from calpar.del of del modified by dumpfile=/dump.fil warningcount 100 messages par.msgs inser into calpar for exception calpar.exp

    此命令会产生四个输出,calpar为目标表,messages记录load的4个阶段,dumpfile记录违背表定义的数据,exception table记录违背唯一性约束的数据(exception table需要在load之前创建,表定义为目标表+timestamp type column+clob type column)。本例中,第2行和第5行违背了表定义,因此存到了dumpfile文件;第4行和第7行违背了唯一性约束,存到了exception table里;剩余正常的数据存到了目标表里。

    5. load表的状态

    load可能出现的几种状态,某一时刻可能会同时处于几种状态。只有当表是normal状态时,表才能进行正常的增删改查操作。

    normal: 正常状态

    set integrity pending: 如果目标表有check约束或reference约束,那么Load后此表处于set integrity pending,表明表有约束还未检查,稍后解释。

    load in progress:load正在数据加载过程中。

    load pending:数据提交前出现了故障,需要通过load..terminate,load..replace或load..restart解除暂挂状态

    read access only:目标表数据是可以读的,当load时指定了allow read access,那表就会处于read access only状态

    unavailable:表可能被删除了或从backup中恢复了。

    unknown:通过load..query命令无法得知表的状态。

    可以通过load..query命令查看表的状态,

    (1).当表处于load pending的时候,需要检查pending的原因,然后通过load..terminate终止load操作,或通过load..replace将表数据清空,或通过load..restart重启load操作。记住不要删除load的临时数据文件。load pending的原因很多,如表空间没有足够的空间等。

    (2).当表处于set integrity pending状态的时候,意味着要求用户去检查数据的一致性(check constraint和reference constraint)。可通过 set integrity for immediate checked将set integrity pending去掉。

    (3).load..replace会将数据先清空,再load数据。如果中间出现故障,那么通过load..terminate命令后,表里的数据会变空,因此建议load之前进行数据库备份或单表备份。

    6. load的COPY选项

    COPY可以理解为备份,主要针对前滚恢复,即当数据库处于归档日志情况下。由于load不记日志,需要备份才能进行恢复。

    Load支持三种COPY选项,COPY NO(缺省),COPY YES,和NONRECOVERABLE。

    COPY NO :此选项会导致load表所在的表空间处于backup pending状态,可以读数据,但不能对表进行增删改。load操作一旦开始,表就会处于backup pending状态,即使终止Load,也不会使表空间脱离此状态。load完成后,需要进行表空间backup。

    COPY YES: 此选项会将load变化的数据进行自动备份。在前滚恢复阶段(rollforward),会使用这个备份重建load过程产生的数据。

    NONRECOVERABLE:此选项表明此表是不能通过rollforward恢复的,当rollforward完成后,此表只能被删除或从备份介质中恢复。此选项不会使表空间处于backup pending状态,也不会产生数据的备份。

    我的朋友前几天因为在正常交易时间load数据,造成了表空间处于backup pending状态,交易系统只能查不能更新,尽管发现问题后立即终止load,但由于表空间很大,backup花了将近1个半小时,严重影响了交易的正常运行,一个失误可能会导致年终奖泡汤。他在测试系统测试过没问题,但由于测试系统使用的是循环日志,而生产中利用的是归档日志。

    7. load replace快速清空大表

    对于大表数据的清空,如果用delete,由于会产生大量的日志,导致效率很慢,而且容易出现log full。可以考虑用load from /dev/null of del replace into (Unix/Linux) 或者load from empty.del of del replace into (Windows,empty.del是一个空的文本文件即可)

    8. load总结

    load的步骤可以总结如下:

    (1)创建表和索引

    (2) 建异常表(exception table)

    (3) 备份db或tablespace

    (4) load ..dumpfile ..messages ..exception

    (5) 验证dumpfile,messages和异常表

    (6) backup tablespace if logretain=on and copy NO

    (7) set integrity (if table has check or reference constraints)

    (8) 更新statistics,便于优化器选择最优执行计划。

    阅读(16772) | 评论(0) | 转发(0) |

    给主人留下些什么吧!~~

    评论热议

    请登录后评论。

    关于我们 | 关于IT168 | 联系方式 | 广告合作 | 法律声明 | 免费注册

    Copyright 2001-2010 ChinaUnix.net All Rights Reserved 北京皓辰网域网络信息技术有限公司. 版权所有

    感谢所有关心和支持过ChinaUnix的朋友们

    展开全文
  • 级别: 初级2009 年 2 月 23 日在 DB2 数据库的日常使用中,很重要的一项工作就是移动数据,那么在此时就经常会用到 LOAD 工具。DB2LOAD 工具的功能非常强大,而且在很多方面与其他工具比较起来有着突出的优点,...

    级别: 初级

    2009 年 2 月 23 日

    在 DB2 数据库的日常使用中,很重要的一项工作就是移动数据,那么在此时就经常会用到 LOAD 工具。DB2 的 LOAD 工具的功能非常强大,而且在很多方面与其他工具比较起来有着突出的优点,这使得 LOAD 工具在 DB2 数据移动方面有着不可替代的作用,尤其是在需要处理大规模数据的情况下表现尤其抢眼。下面结合本人的实践经验介绍一下在使用 LOAD 工具的过程中比较有帮助的一些技巧。

    LOAD 工具与其他数据移动工具比较起来的一大优势就是提供卓越的性能,这主要是由于 LOAD 对数据的加载时采取数据页级别的处理,这绕过了数据库管理系统的多个处理层次,因此可以极大的提高性能。除了 LOAD 工具本身的这一特点之外,我们还可以通过合理的设置 LOAD 的一些选项来进一步提高其性能。下面列出一些影响 LOAD 性能的选项及其合理设置的建议。

    此选项用于指定一个 LOAD 同时使用 n 个 CPU 来并发的处理 LOAD,在 LOAD 处理的数据量较大并且操作系统的负载不高的情况下,可以通过此参数指定多个 CPU 并发的执行构建表过程中的解析、转换、格式化等内容来提高效率。如果同时启动了多个 LOAD 工具要注意所有 LOAD 工具指定的此参数最好不要超过操作系统中逻辑 CPU 的总数(在此指定的 CPU 是 LCPU- 即逻辑 CPU)。

    此选项不设置,则 DB2 会根据当前操作系统中 CPU 的数量自动的分配 CPU 数量。

    此选项用于指定 LOAD 工具能够使用的数据缓存的最大值,单位是 4k 。我们可以想象,在处理的数据量很大,且在不超过操作系统空闲物理内存的情况下,我们为 LOAD 分配越多的数据缓存那么 LOAD 的性能将会越好。但是此值设置受到数据库的参数 UTIL_HEAP_SZ 限制。 由于使用 UTIL_HEAP_SZ 的工具有多个,所以为某个 LOAD 分配的数据缓存一般建议不要超过 UTIL_HEAP_SZ 的 50%,在实际设置时,最好根据 UTIL_HEAP_SZ 的实际情况来确定,这可以通过观察数据库快照中工具堆使用的大小和高水位大小来判断。

    另外,此选项并非单纯的设置的越大越好,因为在数据缓存设置的最够大以后即使再增加其大小也不会有利于性能的提升,因为性能的瓶颈已经不在是缓存了。所以需要在实际生产中做多次的测试以找到一个最适合的值。

    此选项用于指定 LOAD 工具可以利用向表空间中多个容器执行并发 I/O 的能力来提高性能。根据表空间中容器的数量做适当设置即可。

    此文件修饰符,可以使用输入文件中预设好的排序结果来提高性能。如果输入的文件来自于 export 工具中使用一定排序谓词到处的数据,那么性能会得到较大提升(可以提升几倍到几十倍)。且此文件修饰符可以用于各种输入的文件格式。

    此文件修饰符通过降低对输入数据的检查来提升性能,如果输入的数据与目标表的结构、类型上并无差别,那么可以通过设置此选项来提升性能。此文件修饰符只能用于 ASC 或 DEL 格式的文件。

    如果预期在 LOAD 过程会有大量的 warning 出现,那么可以使用此文件修饰符来提升性能。

    此选项可以降低 LOAD 在设置一致性恢复点上面的负载,在处理大数据量的情况下可以使用此选项来提升性能,根据处理数据量的情况来合理的设置此值。如需要加载的数据为 1000 万行,那么可以将此值设置为 10000 。此文件修饰符不能与 anrorder 文件修饰符同时使用。

    当需要 LOAD 的表中存在大量索引需要构建时,且表或索引本身所在的表空间不不是很大的情况下,使用此选项制定一个系统临时表空间,来提高其数据构建的性能。

    LOAD 工具在加载数据的时候,输入的数据除了可以是 ixf、asc 和 del 类型的文件之外,还可以是游标(curosr)。如果需要将一个表中的数据保存到另外一张表中,且对应的列的类型是一致的,那么我们就可以使用游标的方式来实现数据的移动。游标方式之所以能提高数据加载的效率是因为数据不需要以文件的方式保存到磁盘上,而是直接从源数据表到达目标数据表中,这样就可以节省了两次 I/O 过程(导出的数据以文件保存到磁盘的过程和加载数据时从磁盘上读取数据文件的过程),从而大大提高数据处理的效率。

    创建 sql 文件 test.sql, 其内容如下:

    清单 1. SQL 语句 —— test.sql

    declare cursor mycur for select * from tab1name;

    load from mycur of cursor insert into tab2name;

    注:在游标声明中的 SQL 语句根据应用的需要自主确定其内容,load 的选项也可以根据各种需求自主确定。

    在 DB2 环境下执行如下命令:

    清单 2. 执行 SQL 语句

    db2 connect to dbname

    db2 – tvf test.sql

    在不同的数据库间移动数据经常会出现代码页不一致的情况,这就需要根据不同的情况分别处理。如果保存数据的文件是 asc 或 del 格式,那么需要使用文件修饰符:codepage,此选项指定数据的源数据库的代码页的值。

    清单 3. 示例 1 —— DEL 文件

    LOAD from test of del modified by codepage=819 insert into tabname

    如果保存数据的文件是 ixf 格式,那么不需要 load 工具使用任何选项,且在数据加载的过程中会自动的完成代码页的转换。如果在执行代码页转换的工程中造成数据格式的变化而导致了加载无法成功,则使用 forcein 的文件修饰符,实例如下:

    清单 4. 示例 2 —— IXF 文件

    LOAD from test of ixf modified by forcein insert into tabname

    注:当加载的数据在表结构完全相同的情况下还出现了一些非空字符或字符被截断错误,可以选择使用 ixf 格式并指定 forcein 文件修饰符来避免这种问题。

    在 DB2 V8 及 DB2 V9.1 环境下,执行 load 加载数据的过程中可能会出现某些行的部分列的数据不符合目标表类型或格式的要求,从而导致其被截断或被拒绝,那么找到源数据库中的故障行和故障列分析其故障原因就比较重要。但是在这种故障情况下输出的错误信息可能如下:

    表单 5. 执行错误信息

    SQL3125W 因为数据比目标数据库列长,所以第 "F4-6" 行第 "5"

    列中的字符数据被截断。

    SQL3110N 实用程序已完成处理。从输入文件读了 "13" 行。

    SQL3519W 开始装入一致点。输入记录数 = "13" 。

    SQL3520W “装入一致点”成功。

    SQL3515W 在时间 "2009-01-04 11:18:53.301919",实用程序已经完成了 "LOAD" 。

    SQL3107W 消息文件中至少有一条警告消息。

    其中故障的行的标识为“ F4-6 ”,这表示 id 为 4 的 CPU 处理的第 6 行的数据出现了故障,那么通过这个信息我们是无法从源文件中找到故障行的,我们只能通过总的行号标识来找到故障行,所以在这种情况下只能通过单 CPU 的处理来找到故障行。

    这就需要将 load 工具的 CPU_PARALLELISM 选项设置为 1,保证 load 在加载数据的过程中始终只适用一颗 CPU,那么此时行标识中 CPU 部分始终会是“ F0 ”,而行部分则就是总的行数了。

    在 DB2 V9.5 中会同时输出 SQL3227W 的消息来帮助定位总的行数,避免了上述问题, 示例如下。

    表单 6. 执行错误详细信息

    SQL3125W 因为数据比目标数据库列长,所以第 "F4-6" 行第 "5"

    列中的字符数据被截断。

    SQL3227W 记录标记 "F4-6" 指的是用户记录号 "16" 。

    SQL3110N 实用程序已完成处理。从输入文件读了 "53" 行。

    SQL3519W 开始装入一致点。输入记录数 = "53" 。

    SQL3520W “装入一致点”成功。

    SQL3515W 在时间 "2009-01-04 11:18:53.301919",实用程序已经完成了 "LOAD" 。

    SQL3107W 消息文件中至少有一条警告消息。

    在执行 LOAD 的同时,一般情况下不能对 LOAD 工具的目标表执行任何的访问。但有如下的特殊情况。

    如果针对目标表的查询是先执行的,那么不论指定了什么选项,LOAD 工具总是不能执行的。直到针对目标表的查询结束,LOAD 工具才能执行。

    如果针对目标表的查询是后执行的,也就是首先执行了 LOAD 工具,在 LOAD 工具的运行期间再执行查询,那么只要 LOAD 工具指定了 allow read access 选项,查询语句就可以后续的执行了。

    所以在无法准确的确定 LOAD 工具与查询语句的执行顺序的情况下,而且又需要并发的执行查询,那么 LOAD 工具不是一个好的工具,最好的方式是使用 import 工具替代 LOAD 工具,此时并行查询可以随时启动。

    当一个或多个 LOAD 工具正在执行的情况下,如果需要详细的观察这些工具的执行情况,那么使用命令“ list utilities ”可以实现。示例如下。

    清单 7. LOAD 命令执行状态

    >db2 list utilities show detail

    标识 = 5

    类型 = LOAD

    数据库名称 = SAMPLE

    分区号 = 0

    描述 = OFFLINE LOAD DEL AUTOMATIC INDEXING INSERT COPY NO YUAN .T1

    开始时间 = 2009-01-05 10:44:57.203583

    状态 = 执行

    调用类型 = 用户

    进度监视: 阶段号 = 1 描述 = SETUP 总计工作 = 0 bytes 已完成的工作 = 0 bytes

    开始时间 = 2009-01-05 10:44:57.203592

    阶段号 [ 当前 ] = 2 描述 = LOAD 总计工作 = 2174631 rows

    已完成的工作 = 1106547 rows 开始时间 = 2009-01-05 10:44:57.248663

    上面的输出中只有两个阶段,如果有目标表有索引存在的话还会有第三个阶段 -BUILD 阶段。评估正在执行着的 LOAD 工具的剩余时间主要通过比较“总计工作”和“已完成的工作”这个两个值大小和比例。

    我们知道,观察数据库的状态可以通过快照或 list db 命令,观察表空间的状态可以通过快照或 list tablespace 命令,而观察表的状态我们通常只知道快照可以反映表被访问的一些情况,而当表不可用的时候,需要获得表的故障状态时候却没有对应的 list 命令可以使用。

    那么这种情况下,我们可以使用 LOAD QUERY 工具来实现。示例如下:

    清单 8. 观察表的状态

    C:\Program Files\IBM\SQLLIB\BIN>db2 "select * from t1"

    DEPTNUMB DEPTNAME MANAGER DIVISION LOCATION

    -------- -------------- ------- ---------- -------------

    SQL0668N 不允许对表 "YUAN.T1" 执行操作,原因码为 "3" 。 SQLSTATE=57016

    C:\Program Files\IBM\SQLLIB\BIN>db2 load query table t1

    SQL3501W 由于禁用数据库正向恢复,因此表所驻留的表空间将不被置于备份暂挂状态。

    SQL3109N 实用程序正在开始从文件 "e:\t1.out" 装入数据。

    SQL3500W 在时间 "2009-01-05 10:52:56.661277",实用程序在开始 "LOAD" 。

    SQL3519W 开始装入一致点。输入记录数 = "0" 。

    SQL3520W “装入一致点”成功。

    SQL3005N 处理被中断。

    SQL3532I Load 实用程序当前正处于 "LOAD" 阶段。

    读取行数 = 0

    跳过行数 = 0

    装入行数 = 0

    拒绝行数 = 0

    删除行数 = 0

    落实行数 = 0

    警告数 = 0

    表状态: 装入暂挂

    由此,我们可以判断,当前的表不能被访问,是由于处于“装入暂挂”的状态,那么我们可以通过 LOAD 工具将 LOAD 执行完 (restart) 或终止 (terminate) 将这个故障处理掉再访问这个表。

    在不需要一张表中的数据的时候,我需要将其清空。而做这个工作我们可以选择多种办法:

    删除表中数据:delete from tablename

    不记 log 删除表中数据: alter table tabname activate not logged initially;delete from tablename

    修改表不记录 log 方式:alter table tabname activate not logged with empty table

    LOAD 的 replace 方式:load from empfile of del replace into tabname

    注:文件 empfile 为空

    “ 1 ”的方式可用性非常差,会消耗大量的时间和 log 空间,一般不使用。除非需要有选择的删除数据的时候。

    “ 2 ”的方式可以使用,但是过于麻烦,尤其还要注意两条语句必须在同一事务中执行。

    “ 3 ”的方式是一种较好的快速清空数据表的方式。

    “ 4 ”的方式也是一种较好的快速清空数据表的方式,而且对于“ 3 ”来说,过程更加可控,因为 load 支持 restart 和 terminate 等故障控制选项。

    所以推荐使用“ 4 ”的方式来快速的清空一张表。

    学习

    通过访问 DB2 9 技术资源中心,查看更多有关 DB2 9 的文章、教程和多媒体课堂等技术资源。

    通过访问 DB2 Express-C 资源中心,查看免费数据库 DB2 Express-C 的相关技术资源。

    参考 DB2 信息中心首页,查看更多有关 DB2 9 的信息。

    获得产品和技术

    讨论

    袁春光是 IBM 官方高级培训讲师,于 2006 年获得“首届中国杰出数据库工程师奖”,作为庄梁科技公司的高级技术专家,长期为多个客户提供数据库、操作系统、中间件等产品的技术咨询和技术支持服务,积累了丰富的经验。获得了 IBM 的 DB2 高级管理员认证、AIX 高级技术专家认证、以及 SUN 的技术认证。

    展开全文
  • db2 load的用法

    2021-01-14 04:22:32
    首先贴一个db2官网的语法图:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0808khatri/sidefile1.html.-,----------...-LOAD--+--------+--FROM----+-filename---+-+--OF--filetype----->...
  • 因为Load数据没有事务日志记录支撑,在Load数据后可能会照成表锁现象。 通过文档中的表述可解决该问题。
  • 某银行east报送数据18年12月份交易流水表(JYLS)某个字段编码转换错误。交易流水表整个月的数据5个亿。...db2 export to jyls.ixf of ixf select 字段很多,case when xxx='1' then '中文' when xxx=...
  • DB2 LOAD的4个阶段

    2019-05-04 11:29:45
    数据的导入方法有insert,import和load三种,其中load不需要写日志(或很少日志),不做检查约束和参照完整性约束,不触发Trigger,锁的时间比较短,因此特别适合大数据量的导入。 2.load的4个阶段 load过程分为4个阶段...
  • 我们有一个每月的Java批处理过程,该过程使用“load Replace”sql命令.在此批处理过程中,每月将更新大约数百万条记录.该批处理运行良好,在DB2 9.5版中没有任何问题.最近,数据库已更新为DB2版本V10.5.升级后,我们在...
  • DB2数据库导入DEL文件出现了表空间备份暂挂的情况,表现为表空间状态变为了 0X0020 ,出现此问题的解决方法: 1.解决暂挂问题,需备份表空间(以userspace1为例) ...db2 "load client from /data/test.del o
  • 正常情况下,db2 load操作只占很少的日志,但目前已知道有两种情况可能会导致日志满,第一种情况是build阶段,创建索引的时候,如果数据库参数LOGINDEXBUILD开启了,那么可能会导致日志慢。 今天又发现一种情况,...
  • db2 load 导入自动截取

    2017-05-16 07:18:42
    我在使用db2 load 命令导入文件时,文件中超长的字段在导入过程中给默认截取掉了,而且数据类型不一致的字段,导入到目标表中默认为null,而且最终导入完成后的统计信息也没有报错,显示全部导入成功,很费解,求...
  • db2 load 表空间暂挂

    2020-06-10 09:47:53
    项目实施过程中,表的数据导入都是 用import方法导入,后来新增的表由于导出数据时查询语句过于复杂无法import进入数据库,选择使用load方法,但是结尾没有用nonrecoverable 导致表空间处于backup-pending状态,需要...
  • db2 load 用法及日志归档

    千次阅读 2018-07-07 18:37:13
    存储过程 load 的用法load from (database TSISSDB select * from TD_ENUMVALUETEST) of cursor warningcount 1 INSERT INTO TD_ENUMVALUE (S_TYPECODE, S_VALUE, S_VALUECMT, C_ISAVAILABLE, S_REMARK) COPY YES TO...
  • [db2inst1@onekey :~/load 7]$ db2 "create table test(id int not null primary key,name char(10))" DB200...
  • DB2 Load 性能大提升

    千次阅读 2016-11-04 17:05:08
    在工作中,有天突然发现数据量到达1000W条数据,使用DB2 Load From 命令进行导入时,相当缓慢,需要36分中,而且导入时会锁表,导致用户登入不了,由于之前写的Load From很简单,就类似 db2 load from /app/temp/...
  • SQL27966W The DB2_LOAD_COPY_NO_OVERRIDE registry variable value value overrides the COPY NO parameter specified in the Load.SQL27966W DB2_LOAD_COPY_NO_OVERRIDE 注册表变量值 值 将覆盖在 Load 中指定的 ...
  • db2 load 加载时报错3107w

    千次阅读 2020-05-06 02:23:27
    db2执行load装载数据文件时发现数据都可以装进去,但是提示 at least one warnning message during load process 错误码3107w,经分析发现是字段超长,即字段定义为varchar(20),但数据文件中该字段的长度超出了20,...
  • 在使用load terminate解除一张处于load pending状态的表时,报错 SQL2437N The data movement command failed because the utility was unable to resolve how implicitly hidden columns should be processed....
  • db2 load命令学习

    千次阅读 2014-02-13 14:53:40
    db2 load命令学习 获得LOAD权限:数据库级别权限,可以授予组和用户。在填充具有大量数据的表时可以使用LOAD命令。根据执行的LOAD类型不同,可能还需要其他特权  LOAD权限的内容:  db2 quiesce ...
  • db2用户appuser(非实例用户)在做load操作的时候失败了,报错SQL2061N/SQL1652N。 数据文件是appuser生成的,appuser对该文件有读写权限,怎么还会失败呢? 经过测试发现,是因为DB2实例用户对该文件无读取权限。 ...
  • DB2 Load数据装入

    2021-01-14 04:22:32
    DB2Load数据装入1.引言这段时间一直在忙一个基于DB2的项目,其中一部分工作涉及到DB2数据的导入。我们知道oracle提供了sqlloader程序完成大数据量的快速导入,DB2是和oracle最相似的数据库,所以DB2也提供了数据导入...
  • DB2数据库中,由于LOAD操作不会记录日志,那么对于采用了归档日志模式的数据库,LOAD的时候就会有一个问题:如果日后数据库出现问题,需要通过restore+rollforward操作来恢复数据的话,rollforward读取日志的时候...
  • DB2 Load的用法

    千次阅读 2014-08-17 21:24:56
    db2 load使用 最近有个好朋友因为load问题导致了生产故障,所以特意写篇文章总结一下load的用法及注意事项。 1.load概述 数据的导入方法有insert,import和load三种,其中load不需要写日志(或很少...
  • I have this txt file, formatted with the '|' character between columns, and this script generated by the db2 LOAD wizard:LOAD FROM "" OF DEL MODIFIED BY ANYORDER COLDEL|METHOD P (1, 2, 3) MESSAGES ""R...
  • DB2 load显示乱码/关于codepage

    千次阅读 2019-01-09 17:40:50
    通常而言,db2的输出显示乱码,都是字符编码的问题。 查看数据库的编码集: [test@demo ~]$ db2 get db cfg for testdb|grep -i code Database code page = 1208  Database code set ...
  • Monitor DB2 Load & Import

    2019-04-26 22:09:05
    Monitor DB2 Load & Import 在DB2UDB中,通过使用IMPORT和LOAD工具,用户可将一个符合DB2所支持的导入文件格式(包括ASC,DEL,PC/IXF和WS...
  • Db2 load 导致表空间pengding 0.查看表空间状态 db2 list tablespace show detail load表没有加nonrecoverable导致表空间出现了pengding状态,这时需要把表空间备份下 1. db2 connect to sample db2 quiesce ...
  • db2 load 用法

    2020-12-24 01:11:28
    由于数据量非常大,放弃了INSERT,SELECT方法.db2的实现有两种方法一个是EXPORT及LOAD,import也可以只是他不形成日志.所以不成功的数据不能进行回滚,所以采用LOAD,这种方法适用于两不同的数据库,但是因为EXPORT要导出...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,373
精华内容 8,149
关键字:

db2 load

友情链接: jquery-easyui-1.6.7.zip