[ORACLE]数据库维护.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[ORACLE]数据库维护

[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程序包中的过程能够手动地收集统计信息,通过Database Control也能够实现同样功能,如下图所示。上 图中首先使用ANALYZE命令对REGIONS表进行分析。关键字COMPUTE STATISTICS指示Oracle分析整个表。接下来的查询说明这表有四行数据,随后插入一条新行,但是统计信息没有被实时更新,也就是说行数是不正 确的。上述情况会一直持续到对表的在次分析。下面使用了DBMS_STATS.GATHER_TABLE_STATS过程。可以为 GATHER_TABLE_STATS过程提供控制其具体操作的许多参数,这也是该过程最简单的使用方式。[提示]虽然ANALYZE命令使用起来很简单,但它的功能有限。DBMS_STATS具有更多的选项,建议使用该工具。[提示]对象统计信息不是实时的,并且在新分析对其进行刷新之前是静态的。如果没有足够频繁地进行对象统计,统计信息将严重过期,从而使优化器选择不当的执行计划。收集统计信息能够改善性能,但统计信息收集操作可能对数据库造成压力,进行分析期间会对性能造成显著影响。那么应当如何解决下面两个问题:①收集统计信息的频率应当是怎样的;收集统计信息操作越频繁,数据库性能就越佳,但如果超过了必要的频繁程度,数据库性能就会受到影响。②为了得到对象的准确信息,需要分析对象的哪些部分?分析大型表示一个漫长且耗用资源的过程,分析对象有代表性的样例就完全可以为优化器提供足够的信息,同时不会给数据库带来性能压力。[提示]与原有的ANALYZE命令相比,能够接受许多参数的DBMS_STATS过程更能影响统计信息分析的深入程度。通 过Database Control来手动收集统计信息。如果数据库是使用Database Configuration Assistant创建的,则已配置了自动统计信息收集。下图说明了GATHER_SCHEMA_STATS过程的用法,这个过程将分析属于一个用户的所 有对象,参数如下:OWNNAME:指定了要分析的模式。CASCADE:将分析索引和表。利用给定的位置,Oracl

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档