Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2566
  • 博文数量: 1
  • 博客积分: 45
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-06 12:38
文章分类
文章存档

2012年(1)

我的朋友

分类: DB2/Informix

2012-08-22 22:08:08

问题
在向表里load数据的时候,由于数据量太大,老是报事务太大,无法load
处理方法
1、用文件的切分工具split把一个文件拆分为长度或体积相等的若干文件;
   split [参数选项] infile [outfile]
   split 把输入的文件拆分为若干体积或长度相等的文件,输入文件保持不变,只是把结果拆分结果写到outfileaa、outfileab ... ... 等文件中。如果我们不指定outfile,被拆分后的文件会写到 xaa、xab ... ...。
   参数
   -l n 把infile拆分为具有n行的段,默认值为1000
   -b n[bkm] 以体积为单位的拆分,约定每拆分后每个文件的大小 ,b代表512B,k代表1KB,m代表1MB。
   -C bytes[bkm] 把bytes的最大值放入文件,坚持增加完整的行;
   - 从标准输入读取;
   --help 帮助;
   例:split -l 100000 linuxdoc.txt linuxdocsp 注:切分linuxdoc.txt文件,被切分后的文件名linuxdocsp开头
2、用循环读取的方式将linuxdocsp开头导入数据库中
  
   例:
       load_linuxdocsp()
       {
         echo "导入文件开始...\c"
         INFORMIXDIR=/usr/informix
         INFORMIXSERVER=$servername
        
         export DBDATE INFORMIXDIR INFORMIXSERVER
         /usr/informix/bin/dbaccess  $dbname - <         load   from $line insert into linuxdocsp;
         !
         echo "\n导入文件结束...\c"
       }
      
       ls linuxdocsp* > list.txt
       while read line
       do
         echo "\n"
         echo $line
         load_linuxdocsp
       done < list.txt
       echo "\n"
阅读(1589) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

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