- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- Doublecom方案设计参考.doc
- 数据库表连接(内外、左右连接).docx
- 一份DBA试题.docx
- Oracle面试题目2.docx
- SQLServer教案第09周 连接查询和子查询.doc
- DBA 面试题目.doc
- SQL Server DBA_名企面试问题及答案.doc
- Oracle DBA 笔试题目.doc
- 偷来的ORACLE试题.doc
- 最新2012 DBA数据库管理员面试题.doc
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)