Trafodion 增量更新统计信息
2017-07-06 16:39
525 查看
在前一篇文章中,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百万
2 之后每一次更新统计信息时,根据增量字段使用以下语法做增量更新
备注:比如表address只会在state = ‘CA’有数据更新,where后面可以添加这个条件
下面是一个实际的测试场景,
注:update statistics …persistent对一个特定的表只在第一个更新统计信息的时候做,不可重复做,因为带persistent时会创建一个样例表,如果需要重复执行persistent,需要先删除样例表,
本文在此通过实际案例介绍如何实现增量更新统计信息,主要步骤分为两步,
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.171142 End Time 2017/07/06 16:17:24.848758 Elapsed Time 00:00:59.677616 Compile Time 00:00:00.001832 Execution Time 00:00:59.675606 SQL>update statistics for table eboxdata_30m on existing column incremental where eid > 30000000; --- SQL operation complete. Start Time 2017/07/06 16:21:36.036327 End Time 2017/07/06 16:23:34.924664 Elapsed Time 00:01:58.888337 Compile Time 00:00:00.001772 Execution 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.
相关文章推荐
- Trafodion性能优化之更新统计信息
- Trafodion 更新统计信息数据收集
- Trafodion 更新统计信息
- Trafodion 使用样例表更新统计信息
- 第十二章——SQLServer统计信息(1)——创建和更新统计信息
- oracle 更新统计信息
- SQL Server 自动更新统计信息的基本算法
- 性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项
- oracle查看和更新统计表的信息【转】
- oracle重建、更新索引、索引统计信息命令
- 第十二章——SQLServer统计信息(1)——创建和更新统计信息
- [SQL Server] 统计信息创建后不再更新
- 应用oracle job进行定时统计信息更新
- sqlserver 统计信息自动更新 ----trace flag 2371
- hdu 4705 dfs统计更新节点信息
- SQL Server 2005/2008遍历所有表更新统计信息
- SQL Server自动更新统计信息的基本算法
- 更新所有数据库统计信息
- 性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项
- SQL Server 数据库表的统计信息的更新