如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
[ORACLE]数据库维护统计信息对SQL语句的性能影响巨大,优化器将使用统计信息来设计有效的执行计划。可以采用手工或自动方式来收集统计信息。如果在收集了统计信息后,性能问题依然存在,那么可以使用各种指标来探究问题的根源。监视性能的方法:“反应式(reactive)”-某个问题已经发生时或之后执行某些操作;“前瞻式(proactive)”-在问题发生前识别迫近的问题。为了识别和诊断问题,可以使用随同11g数据库安装的警报系统和诊断顾问标准功能。1使用和管理优化器统计信息可用多种不同的方法执行任何一条SQL语句。执行计划的选择将对性能产生至关重要的影响。在Oracle数据库中,优化器会动态开发执行计划。优化器严重依赖于统计信息来评估很多执行计划的有效性,并选择要使用的计划。为获得优异性能,这些统计信息必须准确无误。重要的统计信息是对象统计信息。[提示]统计与PL/SQL无关,而只与SQL有关,因此统计信息分析不能改善PL/SQL的性能。大多数PL/SQL代码都包含对SQL语句的调用,对于这些语句来说,统计信息同样非常重要。1.1对象统计信息对某个表进行分析可以收集优化器能够使用的、与这个表相关的统计信息。这些信息显示在DBA_TABLES视图内,包括以下内容:①表中的行数;②为这个表分配的块数(无论是否曾经被使用过);③正在使用的块内的空闲空间数;④每行的平均长度;⑤“链接”行数(被分割在两个或多个块内的行,其原因可能是行过长,也可能是存储设置不当);除整体统计信息外,还可以分析该表的每一列。列统计信息显示在DBA_TAB_COLUMNS视图内,包括以下内容:①不同值的数目;②最大值和最小值;③NULL值得数目;④平均列长度;分析某个表时,同时也会查看这个表的索引。索引的统计信息显示在DBA_INDEXES视图内,包括以下内容:①索引数的深度;②不同键值的数目;③聚合因子(行的自然顺序与索引建顺序之间的接近程度);还可以收集与索引相关的统计信息,这些信息显示在INDEX_STATS视图内,包括以下内容:①引用现有行的索引数;②引用被删除行的索引数;[提示]除了DBA_TABLES中的表统计信息外,分析某个表时还要收集DBA_INDEXES以及DBA_COLUMNS中的索引和列统计信息。对索引的分析将填充INDEX_STATS。1.2手动收集统计信息对象统计信息不是实时的,而是静态的,这意味着对表应用DML操作时统计信息已经过时。因此必须定期收集统计信息,确保优化器访问的统计信息始终能够相对准确地反映数据库的前状态。统计信息的收集可以使自动的,也可以是手动完成。使用ANALYZE命令或执行DBMS_STATS程序包中的过程能够手动地收集统计信息,通过DatabaseControl也能够实现同样功能,如下图所示。上图中首先使用ANALYZE命令对REGIONS表进行分析。关键字COMPUTESTATISTICS指示Oracle分析整个表。接下来的查询说明这表有四行数据,随后插入一条新行,但是统计信息没有被实时更新,也就是说行数是不正确的。上述情况会一直持续到对表的在次分析。下面使用了DBMS_STATS.GATHER_TABLE_STATS过程。可以为GATHER_TABLE_STATS过程提供控制其具体操作的许多参数,这也是该过程最简单的使用方式。[提示]虽然ANALYZE命令使用起来很简单,但它的功能有限。DBMS_STATS具有更多的选项,建议使用该工具。[提示]对象统计信息不是实时的,并且在新分析对其进行刷新之前是静态的。如果没有足够频繁地进行对象统计,统计信息将严重过期,从而使优化器选择不当的执行计划。收集统计信息能够改善性能,但统计信息收集操作可能对数据库造成压力,进行分析期间会对性能造成显著影响。那么应当如何解决下面两个问题:①收集统计信息的频率应当是怎样的;收集统计信息操作越频繁,数据库性能就越佳,但如果超过了必要的频繁程度,数据库性能就会受到影响。②为了得到对象的准确信息,需要分析对象的哪些部分?分析大型表示一个漫长且耗用资源的过程,分析对象有代表性的样例就完全可以为优化器提供足够的信息,同时不会给数据库带来性能压力。[提示]与原有的ANALYZE命令相比,能够接受许多参数的DBMS_STATS过程更能影响统计信息分析的深入程度。通过DatabaseControl来手动收集统计信息。如果数据库是使用DatabaseConfigurationAssistant创建的,则已配置了自动统计信息收集。下图说明了GATHER_SCHEMA_STATS过程的用法,这个过程将分析属于一个用户的所有对象,参数如下:OWNNAME:指定了要分析的模式。CASCADE:将分析索引和表。利用给定