zoukankan      html  css  js  c++  java
  • Kylin查询性能低下原因分析

    在处理指数行情数据时(IDXD),我遇到一个KYLIN性能查询低下的问题,非常奇怪。经过一番研究发现了其中的原因并顺利解决:

    症状:

    select count(*) from sensitop.idxd where ticker = ‘000300’ and tradedate between ‘2016-01-01’ and ‘2016-07-01'
    很快,不到一秒

    select * from sensitop.idxd where ticker = ‘000300’ and tradedate between ‘2016-01-01’ and ‘2016-07-01'
    很慢,要50多秒,有时候还会超时。

    分析:

    既然count很快,说明检索cube本身是很快的,问题可能出在获取数据上,可能是读取数据的存在问题,需要检查cube的设置

    解决:

    发现默认情况下,cube中的TRADEDATE字段是dict,当改成date时,性能问题得到解决。

    NewImage

     

    结论:

    这应该是一个反序列化的问题。当检索cube完成之后,得到索引,之后需要从磁盘读取数据并反序列化成对象。针对TRADEDATE,显然dict的encoding和date的encoding存在巨大的性能差异。这一点值得我们注意!

  • 相关阅读:
    $NOIP2012$ 题解报告
    $NOIP2011$ 题解报告
    $NOIP2007$ 题解报告
    $NOIP2006$ 题解报告
    $NOIP2005$ 题解报告
    $NOIP2003$ 题解报告
    $NOIP2002$ 题解报告
    $NOIP2001$ 题解报告
    $NOIP2000$ 题解报告
    $NOIP1999$ 题解报告
  • 原文地址:https://www.cnblogs.com/fengwenit/p/6012673.html
Copyright © 2011-2022 走看看