智能基数估计

可获得性

本特性自openGauss 3.1.0版本开始引入。

特性简介

智能基数估计利用库内轻量级算法进行多列数据分布建模,并且提供多列等值基数估计的能力。在数据分布倾斜并且列之间相关性强的数据场景下能够提供更准确的估计结果,从而给优化器提供准确的代价参考,提高计划生成准确率,提高数据库查询执行效率。

客户价值

通过本功能,用户可以通过创建智能统计信息改善多列统计的准确率,从而提升查询优化性能。

特性描述

智能估计基数首先利用数据库内数据样本进行数据分布建模,并且将模型压缩存储在数据库中。优化器在执行计划生成阶段触发智能估计,实现对代价更精确的估计,并且生成更优的计划。

特性增强

特性约束

  • 数据库运行状态良好,无资源紧张状况。
  • 仅支持FLOAT8,Double Precision,FlOAT4,REAL,INT16,BIGINT,INTEGER,VARCHAR,CHARACTER VARYING,CHAR,CHARACTER,NUMERIC数据类型。
  • 仅支持不超过64列的查询基数估计。
  • 为了保证系统性能,模型创建只利用一定量的数据样本(最多200,000),如果数据过于稀疏,估计结果可能不准确。
  • 为了能够充分利用有限的内存进行模型访问加速,建议创建AI统计列数量不超过30个,否则可能会触发内存替换。
  • 如果出现过长的变长字符串类型数据,可能会影响基数估计模型创建和估计的性能。
  • 当前版本同时创建MCV和贝叶斯网络情况下,基数估计性能较低,不建议统计创建。

依赖关系

依赖于数据库内的多列统计信息创建语法和数据采样算法。