互联网服务数据库

HANA里面有统计信息的概念吗?

HANA里面的SQL的执行计划是如何生成的,统计信息又是怎么维护的呢?
参与1

1同行回答

新数科技新数科技IT顾问北京新数科技有限公司
HANA里也是有统计信息的,并且是自动收集的。HANA查询计划生成也是基于CBO的。 由于HANA是基于内存的数据库,因此许多统计信息是在数据加注到内存后计算的,有的统计信息是加注过程中通过采样获得的。这些统计信息不像其他传统数据库那样需要很多人为干预,内存计算的主要特点是...显示全部
HANA里也是有统计信息的,并且是自动收集的。HANA查询计划生成也是基于CBO的。 由于HANA是基于内存的数据库,因此许多统计信息是在数据加注到内存后计算的,有的统计信息是加注过程中通过采样获得的。这些统计信息不像其他传统数据库那样需要很多人为干预,内存计算的主要特点是列式存储+多核并行计算,因此查询计划优化的工作量要小很多,也不需要复杂索引就能达到很快的速度。因此统计信息的概念也相对弱化一点。
HANA的统计信息主要有以下一些:

1. 列表:
表大小:从运行时的内存信息获得,可以从M_CS_TABLES视图中获得。


每列的不同取值数量:从每列的字典中获得,存储在M_CS_COLUMNS视图中的DISTINCT_COUNT列中,或者从唯一性约束,比如主键获得。


过滤选择性信息: 主要是估计值,一般通过采样获得, 可以得到每列不同取值的分布, 取值越分散, 选择能力越强。


键值连接选择性信息: 主要提供键值连接时的过滤能力信息, 通过采样获得.取值越分散, 选择能力越强。


每列频率最高的取值:从字典里获得。

2. 行表:
表大小:通过数据页的数量进行估计。

每列的不同取值数量:通过对表和索引记录采样获得,或者从唯一或主键约束中获得。

过滤选择性信息:  主要是估计值,一般通过采样获得, 可以得到每列不同取值的分布, 取值越分散, 选择能力越强。

3. 内部表(中间结果):
表大小:表大小直接可从内存获得。

每列的不同取值数量:从每列的字典中获得

过滤选择性信息:  主要是估计值,一般通过采样获得, 可以得到每列不同取值的分布, 取值越分散, 选择能力越强。收起
IT咨询服务 · 2014-11-21
浏览783

提问者

top448zhaoyan
数据库管理员联想
擅长领域: 数据库内存数据库hana

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2014-11-21
  • 关注会员:0 人
  • 问题浏览:2086
  • 最近回答:2014-11-21
  • X社区推广