zoukankan      html  css  js  c++  java
  • 性能瓶颈之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)

  • 相关阅读:
    在Centos 7下编译openwrt+njit-client
    开博随笔
    Chapter 6. Statements
    Chapter 4. Arrays and Pointers
    Chapter 3. Library Types
    Chapter 2.  Variables and Basic Types
    关于stm32不常用的中断,如何添加, 比如timer10 timer11等
    keil 报错 expected an identifier
    案例分析 串口的地不要接到电源上 会烧掉
    案例分析 CAN OPEN 调试记录 进度
  • 原文地址:https://www.cnblogs.com/shiliye/p/10635632.html
Copyright © 2011-2022 走看看