对INFORMIX进行Update Statistics

本文详细介绍了INFORMIX数据库中UpdateStatistics的作用、语法及其执行方式,旨在通过定期更新统计信息来优化数据库性能。通过执行不同级别的UpdateStatistics(low, medium, high),可以确保查询优化器选择最佳执行路径,从而显著提升数据库效率。
一、Update Statistics的作用
  为了提高数据库的效率,INFORMIX提供了一个基于成本的查询优化器,执行update statistics语句的作用就是将您创建的数据库表的有关统计信息更新到系统sysmaster的相关表中(如systables、syscolumns、sysindexes、sysdistrib、sysprocplan等),以便查询优化器选择最佳的执行路径。当sysmaster库中没有相应的统计信息,或者统计信息不十分准确时,优化器便无法制定一个行之有效的查询策略,其结果必然是进行大量极其可怕的顺序扫描,产生严重的性能问题。
  
  因此,当您重新装载数据或者对数据库表进行了大量的更新操作后,应该及时执行update statistics。也许您会发现,数据库一些参数配置的不合理可能使数据库效率降低百分之几,但如果您没有定期执行update statistics的话。数据库的性能则可能降低几到十几倍。
  
  二、Update Statistics的语法
  执行update statistics共有三个级别,即:update statisticslow、updates tatistics medium、update statistics high。
  1 update statistics[low]for table[{table-name|synonym-name}[(column-list)]]][drop distributions]
  update statistics low只更新表、字段、记录数、页数及索引等的最基本信息,对字段的分布情况不做统计。其语法说明如下:
  
  (1)update statistics或update statisticslow,对当前数据库中所有表(包括系统表)及过程进行更新统计。
  (2)update statistics low for table,对当前数据库中所有表(包括临时表,但不包括系统表)进行更新统计。
  (3)update statistics low for table tablename,对指定的表所有字段进行更新统计。
  (4)update statistics low for table tablename(column-list),对指定表的指定字段进行更新统计。
  (5)如果不带drop distributions,原有字段分布情况依然保留;否则,原有字段分布情况将被删除。
  2 update statistics medium[for table[{table-name|synonym-name}[(column-list)]]][resolution percent[conf]][distributions only]
  update statistics medium除了更新表、字段、记录数、页数及索引等的最基本信息外,对字段的分布情况会采取抽样的办法来统计,因此与update statistics low相比需要花费更多的时间。其语法说明如下:
  
  (1)resolution percent是指分布统计的详细程序,percent定义的是一个百分数,如resolution2意思是指按照字段的值分布统计成50段,如果不指定resolution percent,缺省值为2.5。
  (2)conf是指分布统计时取样的比例,conf参数的取值范围为0.80—0.99,缺省值为0.95。
  (3)如果指定了distributions only,则对索引的信息不做更新统计。
  3 update statistics high[for table[{table-name|synonym-name}[(column-list]]][resolutionpercent][distributions only]
  update statistics high与update statistics medium的区别是在统计字段的分布情况时,后者采用了取样的办法,而前者进行全部统计,因此update statistics high更新统计最全面,执行时间也最长。其语法说明如下:
  
  (1)如果不指定resolution percent,缺省值为0.5。
  (2)如果指定了distributions only,则对索引的信息不做更新统计。
  4 update statistics for procedure[procedure-name],只对指定的过程进行更新统计,对表不做更新统计
  
  三、如何执行Update Statistics
  通常执行update statistics的方法是:
  
  1 对表中不带索引的字段执行update statistics medium,每个表执行一次。一般情况下,缺省参数就足够了。对于特别大的表(执行update statistics时,通常把超过26570条记录的表定义为特别大的表),可以带参数resolution1.00.99。
  2 对表中带有索引的字段执行update statistics high,每个字段执行一次。
  3 对表中带有复合索引的字段执行update statistics low,每个表执行一次。
  4 对每一个小表执行update statistic shigh。
  
  四、注意事项
  1 数据库本身不会自动更新sysmaster库中有关statistics统计信息,只有执行update statistics语句后,才能得到更新。
  2 执行update statistics语句时,必须具有DBA权限或者为表的属主。
  3 由于update statistics通常为单线程运行,不能利用PDQ等并发功能,对于一个较大的数据库,执行update statistics语句一般需要几个小时。为提高效率,可以将update statistics分为多个shell程序同时执行,并充分考虑数据空间分布情况,在并发执行时减少磁盘读写的冲突。
  4 执行update statistics语句会占用一些临时空间,当临时空间不够时,数据库将提示错误。您可以通过设置DBUPSPACE环境变量,使update statistics在遇到临时空间不够时分步来执行排序统计。
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 ### Home Bus 协议概述 Home Bus协议,亦被称为家庭总线协议,是由日本研发的一种专门应用于家庭自动化领域的通信标准。该协议在商用空调及其他家用电器的远程操控方面具备广泛的应用范围。借助Home Bus协议,设备之间能够达成高效的通信,使用户能够更加便利地监管家庭中的各类智能设备。 ### ECHONET协议及其背景 Home Bus协议与ECHONET协议存在紧密的联系,实际上,ECHONET代表了一种更为具体的技术规范,其目的在于为家庭自动化领域构建一个开放且统一的通信标准。ECHONET由ECHONET财团负责维护与支持,该组织致力于推动该协议的进步与标准化进程。ECHONET协议的应用范围不仅限于家庭环境,还包括了楼宇自动化以及工业自动化等多个领域。 #### ECHONET的历史版本及修订记录 - **Version 1.0**:发布于2000年3月18日,同年7月对联盟成员公开,最终于同年对公众发布。 - **Version 1.01**:在2001年5月23日,向联盟成员发布,主要进行了补充和勘误工作。 - **Version 2.00**:2001年8月7日,针对联盟成员发布。此版本中将电源线A和电源线B两种方式合并为单一电源线方式(基于电源线A),并对相关描述进行了调整。 - **Version 2.01**:2001年11月9日,进行了一些必要的修正,包括排版错误的修正、术语的标准化等。 - **Version 2.10**:经历预览版和草案阶段后,于2002年3月7日正式对联盟成员开放。此次更新主要涉及第3部分关于状态转换的描述修改。 -...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值