Informix IDS 11零碎治理(918考试)认证指南,第8局部:面向治理员的SQL特征(6)

加强的统计信息维护

什么是 UPDATE STATISTICS?

要制定优秀的盘问方案,优化器需要获得有关索引和数据分布的信息。当建立新的表或索引时,systemtable 没有提供可用的分布信息。要获得这些信息,必需运转 UPDATE STATISTICSUPDATE STATISTICS 建立并更新分布信息,并利用优化盘问所需的信息更新零碎编目表。它还从新优化存储过程,并在晋级效力器时对索引进行转换。

UPDATE STATISTICS 的利用范畴

您可以针对整个数据库、单个表、单个列或一个过程运转 UPDATE STATISTICS

UPDATE STATISTICS 有三种运转形式:

  • LOW
  • MEDIUM
  • HIGH

UPDATE STATISTICS LOW

UPDATE STATISTICS LOW 建立盘问优化所需的最少信息。它将更新 systable 中的表、行和页面数信息,以及 sysindex 和 syscolumn 中的索引和列信息。并不建立分布信息。要是已经存在分布信息,则这些信息不会被重写。要删除现有的分布信息,可利用 DROP DISTRIBUTIONS

UPDATE STATISTICS MEDIUM

UPDATE STATISTICS MEDIUM 建立与 low 形式相反的信息,以及一些糊口糊口生计在零碎编目标 sysdistrib 表中的分布动静。分布信息的打定经由议定对一定比例的数据行进行取样完成。

UPDATE STATISTICS HIGH

UPDATE STATISTICS HIGH 除建立与 low 形式相反的信息外,还将打定 sysdistrib 每行中糊口糊口生计的分布动静。是以,high 形式打定出的分布信息特殊十分精确。因而实在行速率也远远慢于 low 或 medium 形式。

RESOLUTION 的感染是什么?

枢纽字 RESOLUTION 可以使您调整分布 bin 的大小。在 medium 形式中,您还可以利用 RESOLUTION 指定更低的抽样大小鸿沟并调整置信度。

什么是 DISTRIBUTIONS ONLY?

利用枢纽字 DISTRIBUTIONS ONLY,您可以避免打定索引信息。而只打定分布信息,这将减速实施 UPDATE STATISTICS 语句的速率。

什么是 SAMPLING SIZE?

枢纽字 SAMPLING SIZE 是 Version 11 中的新特征,使您可以在 UPDATE STATISTICS MEDIUM 中设置抽样大小。SAMPLING SIZE 的值糊口糊口生计在 sysdistrib.smlsize 中。进行抽样的现实行数糊口糊口生计在 sysdistrib.rowssmpld 列中。

清单 12. SAMPLING SIZE 示例

                    
UPDATE STATISTICS MEDIUM FOR TABLE customer SAMPLING SIZE <number>



表 3. 抽样大小的值和声名
抽样值 声名
number <= 1 表现抽样行数所占的百分比。也便是说,0.6 表现对 60% 的行进行抽样来打定分布动静。
number > 1 表现将进行抽样的行的绝对数目。也便是说,数字 10 表现将对表中的 10 行数据进行抽样来打定分布信息。









Version 11 中的新刷新

从 Version 11 开端,CREATE INDEX 可以主动调用 UPDATE STATISTICS。这样做的甜头是,事后为优化器提供所需的分布信息。在 Version 11 之前,要为优化器建立所需的信息,必需在每次建立新索引之后调用 UPDATE STATISTICS

塞责临时表,不用要利用 UPDATE STATISTICS LOW。每次会晤临时表时,将主动更新数据字典中的条款。安全凡表一样,在为临时表建立索引时将主动生成统计信息。

利用 SET EXPLAIN 表现盘问方案

利用 SET EXPLAIN 选项可以表现优化器的盘问方案,以及估量前往的行数目和盘问的绝对成本。

SET EXPLAIN ON 将启用这个特征并将盘问方案写入到名为 sqexplain.out 的文件中。从 Version 11 开端,您将可以指定应该将输入写入到哪个文件中。您可以利用枢纽字 FILE TO 设定文件的导向。

清单 13. SET EXPLAIN ON 和 FILE TO 示例

                    
SET EXPLAIN ON ;
SET EXPLAIN FILE TO <filename> ;
				


利用 AVOID EXECUTE 枢纽字,您无需实施盘问便可打定盘问方案,从而节省光阴。

清单 14. AVOID EXECUTE 示例

                    
SET EXPLAIN ON AVOID EXECUTE;


SET EXPLAIN OFF 为默许设置,用来封锁这个特征。



版权声明: 原创作品,准许转载,转载时请务必以超链接方法标明文章 原始原因 、作者信息和本声明。不然将追究执法责任。

原文地址:https://www.cnblogs.com/zgqjymx/p/1972982.html