Trafodion 增量更新统计信息

来源:互联网 发布:对淘宝美工课的认知 编辑:程序博客网 时间:2024/06/13 17:46

在前一篇文章中,http://blog.csdn.net/post_yuan/article/details/74375294, 我们已经介绍过如何使用一个单独的样例表来更新统计信息。使用样例表进一步可以做增量数据统计信息的更新。在新的版本中,Trafodion有一套增量更新统计信息的策略,避免用户自己单独创建样例表+CQD的方式来做增量更新统计信息。关于增量更新统计信息介绍,可参考Trafodion官网:http://trafodion.incubator.apache.org/docs/sql_reference/index.html#update_statistics_incremental_update_statistics

本文在此通过实际案例介绍如何实现增量更新统计信息,主要步骤分为两步,
1 第一次更新统计信息时,选择一个适合的比例决定在多少随机数据集上面更新统计信息
备注:x的值依据目标表的数量而定,一般依据是样例数据不少于1百万,假如目标表为10亿,那么x的值可以设置为0.1,因为10亿*0.1 %=1百万

update statistics for table table_name on every column sample random <x> percent persistent;

2 之后每一次更新统计信息时,根据增量字段使用以下语法做增量更新
备注:比如表address只会在state = ‘CA’有数据更新,where后面可以添加这个条件

update statistics for table table_name on existing/necessary columns incremental where <predicate>;

下面是一个实际的测试场景,

SQL>update statistics for table eboxdata_30m on every column sample random 1 percent persistent;--- SQL operation complete.Start Time             2017/07/06 16:16:25.171142End Time               2017/07/06 16:17:24.848758Elapsed Time                      00:00:59.677616Compile Time                      00:00:00.001832Execution Time                    00:00:59.675606SQL>update statistics for table eboxdata_30m on existing column incremental where eid > 30000000;--- SQL operation complete.Start Time             2017/07/06 16:21:36.036327End Time               2017/07/06 16:23:34.924664Elapsed Time                      00:01:58.888337Compile Time                      00:00:00.001772Execution Time                    00:01:58.886391

注:update statistics …persistent对一个特定的表只在第一个更新统计信息的时候做,不可重复做,因为带persistent时会创建一个样例表,如果需要重复执行persistent,需要先删除样例表,

SQL>update statistics for table eboxdata_30m on every column sample random 1 percent persistent;*** ERROR[9251] A persistent sample table already exists. Use UPDATE STATISTICS ... REMOVE SAMPLE to drop it first if desired. [2017-07-06 16:15:30]SQL>update statistics for table eboxdata_30m remove sample;--- SQL operation complete.
原创粉丝点击