优化目标主要包括以下几方面:

1 优化平面文件
  如果目标平面文件在某机器的共享目录下,则该机器最好是专门用于文件存储的,如果还应用于其他非文件存储任务,则会降低加载效率
  如果Integration service运行在单节点,则可将该平面文件放置在该单节点所在本地,这样的话,本地数据加载会大大提升效率

2 删除索引及主键约束
  如果目标表包含索引或主键约束,则会降低其加载效率,可暂时将它们删除,待加载结束后再重建还原
  如果需定期进行索引及主键约束的删除和重建还原,每次运行session时可将该操作封装至以下地方:
    1)  pre-load和post-load的存储过程
    2)  pre-session和post-session的SQL脚本
  如果必要的话,可使用基于约束的加载(constraint-based loading)

3 增加数据库检查点间隔
  每当数据库执行Check Point时,session都会进行等待,因此可通过以下两种方式减少检查点的频率:
    1) 加大数据库检查点的间隔
    2) 减少数据库检查点的数量

4 使用大容量负载(bulk load)
  当insert大量数据时,使用bulk load会提升效率(可通过session的target的Target load type中配置)
  bulk load时, Integration Service会忽略记录log信息,从而提高了加载速度。但也可能因此导致数据库无法回滚而无法还原数据
  所以,在使用bulk load时,需事先权衡性能和数据还原的利害关系
  bulk load时,可增大commit间隔来减少bulk load处理的次数,这样可提升性能,因为数据库每次commit之后都会开始一个新的bulk load

5 使用外部加载器
  不同目标数据库可以采用不同的外部加载器
  当目标表是Oracle时, 如果session使用多分区管道加载时,可使用相同分区数创建目标表提升性能

6 避免死锁
  如果Integration Service在尝试写入目标时遇到死锁,则死锁只影响同一目标连接组中的目标。Integration Service 仍然写入其他目标连接组中的目标
  增加Integration Service用于写入会话中目标的目标连接组的数量
  为会话中的每个目标表使用不同的目标连接组,为每个目标实例使用不同的数据库连接名称
  可为每个连接名称指定相同的连接信息

7 增加数据库网络包大小
  增加网络包大小,以允许较大的数据包一次通过网络
  不同数据库,增加数据库网络包大小的方式也不同
  Oracle: 可在listener.ora和tnsnames.ora中设置增加数据库服务器网络包大小

8 优化oracle目标数据库
  当优化数据库时,可检查数据库的存储子句, 空间分配, 回滚区间以及撤回区间
  主要为以下几点:
    1) 检查数据库对象的存储子句,确保数据库表有足够的initial和next值
    2) 将表和索引数据存储在不同的表空间中,最好存储在不同的磁盘上
    3) 确保回滚区间和撤回区间在合适的表空间中,它们最好在不同的磁盘
     因为加载数据时,数据库会使用回滚和撤回区间,同时回滚和撤回区间也要有合适的存储字句
    4) 优化Oracle redo log,该log用于记录数据加载操作的,确保该log文件及其缓冲有足够的大小(可通过init.ora查看相关属性)
    5) 当Integration Service运行在单节点且oracle数据库实例安装在与该节点相同机器上时,可使用IPC协议连接数据库(通过在listener.ora and tnsnames.ora设置)
     使用该协议可提高连接效率

Target优化的更多相关文章

  1. 利用jquery操作dom时,用event.target优化dom操作

    html: <ul id="contents"> <li data-link="#part1">Part 1</li> &l ...

  2. Centos 04 基础系统优化命令

    在Linux这个系统当中,几乎所有的硬件设备文件都在/dev这个目录内.举例来说,IDE介面的硬盘的文件名称即为/dev/hd[a-d],其中, 括号内的字母为a-d当中的任意一个,亦即有/dev/h ...

  3. 富文本编辑器直接从 word 中复制粘贴公式

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  4. ckeditor不能粘贴word的问题

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  5. 自动上传本地图片和word图片(word图片需使用从word粘贴功能)

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  6. word粘贴图片到ckeitor

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  7. ckeditor如何能实现直接粘贴把图片上传到服务器中?

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  8. Fckeditor实现WORD粘贴图片自动上传

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  9. PHPcms编辑器如何粘贴带格式的word文档

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

随机推荐

  1. Linux内核基本装载卸载

    Linux由两部分组成:内核核心+内核模块核心的命名通常是vmlinuz-VERSION-release,模块的放置于/lib/modules/VERSION-release/ 一旦系统运行起来,内核 ...

  2. Python 数据可视化 -- pillow 处理图像

    Python 图像库(Python Image Library,PIL)为 Python 提供了图像处理能力. PIL 官网:http://www.pythonware.com/products/pi ...

  3. Python批量执行oracle中的insert语句

    从oracle导出一个表的数据,导出的格式是insert语句,数据量30万. 直接在PL/SQL Developer中执行,速度非常慢,脚本中也是100条数据提交一次.因为需要的时间太长,每次中断后, ...

  4. 感觉还是要学点c才牛逼

    2019-04-06 $gcc -o hello hello.c  //-o选项用来指定输出文件的文件名. gcc *.c -o hello  //使用通配符编译当前目录下的所有c文件 $ gcc - ...

  5. mac 下 tomcat7的安装

    1.到 apache官方主页 下载 tomcat7 版本的完整 tar.gz 安装包 解压拷贝到 /Library目录下,并命名为Tomcat.   2.修改目录权限,终端输入 sudo chmod ...

  6. 从零开始学java(二)类与对象

    面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为. 类是对象的抽象,对象是类的具体实例. 1.构造一个类,让其拥有属性和方法 ...

  7. JSP:getOutputStream() has already been called for this response

    JSP页面,用小脚本显示一张图片 <%@page import="java.io.OutputStream"%> <%@page import="jav ...

  8. node-sass 不能正常安装解决办法

    web前端在安装node包时,总是报错,究其原因是node-sass没有被正常安装. 根本原因是国内网络的原因. 最终的解决方法是通过淘宝的npm镜像安装node-sass 首先安装cnpm npm ...

  9. mysql自定义时间段分组

    说明:一下是自定义7天为一个时间段的分组统计 select datediff(ms_time, '开始时间') div 7 as time , count(*) count,sum(money) mo ...

  10. C语言字符串和十六进制的相互转换方式

    C语言的字符串操作并不像java,Csharp那样提供直接的方法,简单粗暴.所以,在转换的时候往往费力费时,近日做项目正好用到和java程序通讯,java发送过来的数据是十六进制数字组成的字符串,解析 ...