• 性能瓶颈之Source


    数据源的瓶颈通常发生从数据库读取数据的时候,原因通常如下:
      1) 脚本的查询效率低下
      2) 数据库网络包太小

    如何判定源瓶颈
      通过在session log中读取thread statistics判定源的瓶颈
      如果read thread花费的时间大大多于write thread和transformation thread,则可说明性能瓶颈在于目标数据库

      如果session是从源文件读取数据,则性能瓶颈可能不在源


      如果session是从关系型数据库读取数据的,可通过如下方法判断源的瓶颈

        使用filter组件
          在每一个source qualifier组件后追加一个filter组件,将条件设为false(如1=2)确保没有数据通过
          如果session运行的时间还是没有变化,则可判定瓶颈在源

        创建测试用的read mapping
          创建测试用的read mapping,并将查询与其他组件隔离,创建步骤如下:
            1) 将原来mapping复制
            2) 在复制的mapping里,只保留sources, source qualifiers和任何其他custom joins或queries组件
            3) 移除所有中间数据转换处理的组件
            4) 将source qualifiers组件连接至目标文件
          如果session运行的时间还是没有变化,则可判定瓶颈在源

        使用数据库查询
          直接在数据库端运行查询脚本
          如果脚本运行的时间很长,则可判定瓶颈在于源的查询脚本

    如何解决源的性能
      1) 当Integration Service从文件读取数据,可设定读取每行数据时的最大字节数
      2) 让DBA优化查询脚本
      3) 增加数据库网络包大小
      4) 追加索引和约束
      5) 如果一个数据库查询在两个时间测量之间有很长的延迟,可以考虑使用优化器(optimizer hint)

  • 相关阅读:
    Visual Stdio VS 错误 error : 0xC00000FD: Stack overflow. 更改堆栈空间解决栈溢出问题
    OpenCV Mat 只能用静态数组定义时初始化,动态数组赋值给Mat需要逐元素进行. MATLAB,OpenCV,VS混合编程
    【转】Ubuntu 10.10升级显卡驱动后开机动画低分辨率问题
    linux 文件[名]编码
    L337 Speak及国外论坛、IRC常用缩写
    UCS2 手机SMS的PDU编码
    setuid
    【转】CentOS5.5硬盘安装
    SWT CTabFolder 简记
    [转] 程序员的十层楼
  • 原文地址:https://www.cnblogs.com/shiliye/p/10635632.html
Copyright © 2020-2023  润新知