构筑高速运行的SQL语句.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
构筑高速运行的SQL语句

构筑高速运行的SQL语句 本章重点介绍SQL语句的性能调整,在此之前,我们将先对数据库性能调整进行概述。 17.1 数据库性能调整简介数据库性能调整是DBA必备的技能之一,也是开发人员最关注的话题。Oracle从诞生的那天起,以其高性能赢得大家的青睐。但是,早期的Oracle性能调整比较复杂,许多工作需要DBA手工完成。伴随着Oracle新版本的推出,数据库的性能调整越来越智能化。 数据库性能调整包括实例调整(Instance Tuning)和SQL语句调整(SQL Tuning)。两者相互联系和相互影响。如果实例出现性能问题,无论你如何优化SQL语句,也不能使SQL语句高速运行;反之,即使实例的调整已经到位,一条效率低下的SQL语句也足以使整个数据库性能大大降低。 17.2 实例调整 实例调整的重点应该放在数据库的设计上。一旦数据库设计付诸实施,我们将很难在生产环境中改变数据库的设计。数据库的设计能够避免日后的性能瓶颈。实例调整涉及内存调整、I/O分布和操作系统调整等。实例调整针对的是整个实例的表现,而不是针对单条SQL语句。 实例调整的过程如图17-1所示。 图17-1 实例调整的过程 17.2.1 自动工作负载库(Automatic Workload Repository,AWR) 自动工作负载库是Oracle公司提供的一个工具,其自动收集、处理、维护性能相关的统计信息。这些统计信息可以协助我们找出Oracle的性能瓶颈。 1.AWR的启用 在默认情况下,Oracle启用数据库统计收集这项功能(即启用AWR)。是否启用AWR由初始化参数STATISTICS_LEVEL控制。通过SHOW PARAMETER命令可以显示STATISTICS_LEVEL的当前值: SQL SHOW PARAMETER STATISTICS_LEVEL SQL语句的执行结果是: NAME TYPE VALUE statistics_level string TYPICAL 如果STATISTICS_LEVEL的值为TYPICAL或者ALL,表示启用AWR;如果STATISTICS_LEVEL的值为BASIC,表示禁用AWR。 2.快照(SNAPSHOT) 每隔一小时,内存监控进程(MMON)自动地采集一次统计信息,并把这些信息存放到负载库中,一次采样就是一个快照。为了节省空间,采集的数据在7天后自动清除。快照的频率和保留时间可以由用户修改。 用户也可以使用下面的命令手工采样(手工生成快照): BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); END; 通过查询视图DBA_HIST_SNAPSHOT,可以知道系统中产生了哪些快照。 3.产生AWR报告 Oracle可以产生两种类型的AWR报告:文本格式和HTML格式。HTML格式的报告界面更加友好。AWR报告用于显示两个快照或者两个时间点之间捕捉到的数据。AWR报告其实就是一张数据库健康体检表,它显示了数据库健康的各项指标。 有针对整个数据库的AWR报告,有针对某个实例的AWR报告(在集群环境),有针对单条SQL语句的AWR报告。通过运行Oracle自带的SQL脚本产生AWR报告,只是产生不同的AWR报告,需要运行不同的脚本。 (产生整个数据库的AWR报告,运行脚本awrrpt.sql。 @$ORACLE_HOME/rdbms/admin/awrrpt.sql (产生某个实例的AWR报告,运行脚本awrrpti.sql。 @$ORACLE_HOME/rdbms/admin/awrrpti.sql (产生某条SQL语句的AWR报告,运行脚本awrsqrpt.sql。 @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql 注:$ORACLE_HOME代表Oracle的主目录。 示例:产生整个数据库的AWR报告。本例中,Oracle的主目录是C:\app\Administrator\ product\11.1.0\db_3。 运行脚本awrrpt.sql。 SQL @C:\app\Administrator\product\11.1.0\db_3\rdbms\admin\awrrpt.sql 选择报告的类型。 输入report_type的值: html 本例中选择HTML。 列出最近两天产生的快照(主要是获得快照ID) 输入num_days的值: 2 Instance DB Name Snap Id Snap Started Level zdb ZD

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档