实例介绍
【实例简介】ORACLE优化实践
ORACLE优化
ORACLE数据库的优化是一门很大的学问,对于大数据量,访问频繁的系统,优化工作显的尤其重要。
随着主机和数据库系统的发展,ORACLE数据库故障的可能性越来越低。尽管DBA手册上要求DBA每天检查系统日志、备份情况等,实际上很少有DBA能做到这一点,至少我本人就没有做到^_^。在这种情况下,DBA最可能遇到性能问题,比如用户反映操作执行很慢,经常出现等待等。
由于ORACLE系统的灵活性、复杂性、性能问题的原因多样性以及ORACLE数据库的动态特性,优化成为ORACLE数据库管理中最困难的领域。我主要从优化的概念及手段方面讲一下如何使用工具对数据库系统进行优化
【实例截图】
【核心代码】
目录
ORACLE优化 PAGEREF _Toc25546 \h 4
1.1 优化方向 PAGEREF _Toc16029 \h 4
1.2 调整方法 PAGEREF _Toc8346 \h 5
1.3 题外话 PAGEREF _Toc23162 \h 5
2 SQL性能优化 PAGEREF _Toc27973 \h 6
2.1 ORACLE优化器 PAGEREF _Toc5076 \h 6
2.1.1 优化器的优化方式 PAGEREF _Toc25284 \h 6
2.1.2 优化器的优化模式(Optermizer Mode) PAGEREF _Toc20429 \h 6
2.1.3 设定优化模式 PAGEREF _Toc22036 \h 7
2.2 AUTOTRACE功能 PAGEREF _Toc2633 \h 7
2.3 使用索引 PAGEREF _Toc19198 \h 8
2.4 SQL优化方式 PAGEREF _Toc6551 \h 11
2.4.1 选择合理的表名顺序 PAGEREF _Toc16784 \h 11
2.4.2 WHERE子句中的连接顺序 PAGEREF _Toc31877 \h 12
2.4.3 避免使用SELECT * PAGEREF _Toc10362 \h 12
2.4.4 删除重复记录 PAGEREF _Toc28110 \h 12
2.4.5 减少对表的查询 PAGEREF _Toc25385 \h 12
2.4.6 使用存储函数提高效率 PAGEREF _Toc4166 \h 13
2.4.7 使用表的别名 PAGEREF _Toc2513 \h 13
2.4.8 用EXISTS替代IN PAGEREF _Toc24891 \h 13
2.4.9 用NOT EXISTS替代NOT IN PAGEREF _Toc31438 \h 13
2.4.10 用表连接替换EXISTS PAGEREF _Toc19154 \h 14
2.4.11 用EXISTS替换DISTINCT PAGEREF _Toc20479 \h 14
2.4.12 用索引提高效率 PAGEREF _Toc15989 \h 14
2.4.13 强制索引失效 PAGEREF _Toc8205 \h 15
2.4.14 用>=替代> PAGEREF _Toc16268 \h 16
2.4.15 用UNION替换OR PAGEREF _Toc29359 \h 16
2.4.16 IN和OR PAGEREF _Toc18704 \h 16
2.4.17 避免在索引列上使用IS NULL和IS NOT NULL PAGEREF _Toc18555 \h 17
2.4.18 用UNION-ALL 替换UNION PAGEREF _Toc3269 \h 17
2.4.19 其他需注意的问题 PAGEREF _Toc22970 \h 17
3 OEM优化包 PAGEREF _Toc16658 \h 18
3.1 SQL Analyze PAGEREF _Toc3414 \h 18
3.1.1 初始化参数 PAGEREF _Toc6868 \h 18
3.1.2 查看TopSQL PAGEREF _Toc28650 \h 19
3.1.3 SQL优化功能 PAGEREF _Toc15014 \h 20
3.1.4 查看SQL历史记录 PAGEREF _Toc29801 \h 27
3.2 Oracle Expert PAGEREF _Toc20841 \h 29
3.2.1 创建优化会话 PAGEREF _Toc21251 \h 29
3.2.2 SQL历史记录会话 PAGEREF _Toc7701 \h 30
3.2.3 使用优化会话 PAGEREF _Toc16432 \h 31
3.2.4 自动优化功能 PAGEREF _Toc14110 \h 44
3.2.5 使用总结 PAGEREF _Toc17668 \h 45
3.3 Outline Management PAGEREF _Toc25585 \h 45
3.3.1 主界面 PAGEREF _Toc2877 \h 45
3.3.2 创建大纲 PAGEREF _Toc12111 \h 46
3.3.3 绑定变量 PAGEREF _Toc17066 \h 47
3.3.4 执行大纲 PAGEREF _Toc24980 \h 48
3.3.5 编辑大纲 PAGEREF _Toc13018 \h 49
3.3.6 总结 PAGEREF _Toc18988 \h 55
3.4 Index Tuning Wizard PAGEREF _Toc25398 \h 55
3.5 Reorg Wizard PAGEREF _Toc14793 \h 60
3.5.1 重组整个表空间 PAGEREF _Toc21744 \h 63
3.5.2 重组方案对象 PAGEREF _Toc23308 \h 67
3.5.3 修复移植行 PAGEREF _Toc25968 \h 69
4 STATSPACK PAGEREF _Toc17864 \h 70
4.1 简介 PAGEREF _Toc25895 \h 70
4.2 安装配置 PAGEREF _Toc18693 \h 70
4.2.1 系统参数设置 PAGEREF _Toc3564 \h 70
4.2.2 安装 PAGEREF _Toc2664 \h 71
4.2.3 测试 PAGEREF _Toc7503 \h 71
4.2.4 规划自动任务 PAGEREF _Toc19897 \h 71
4.2.5 调整收集阀值 PAGEREF _Toc14988 \h 73
4.2.6 删除历史数据 PAGEREF _Toc3472 \h 74
4.3 STATSPACK表结构 PAGEREF _Toc19711 \h 74
4.3.1 前言 PAGEREF _Toc5746 \h 74
4.3.2 STATSPACK基础表 PAGEREF _Toc20294 \h 75
4.3.3 系统级统计表 PAGEREF _Toc8174 \h 77
4.3.4 LATCH系列表 PAGEREF _Toc19579 \h 81
4.3.5 EVENT系列表 PAGEREF _Toc31602 \h 82
4.3.6 SQL系列表 PAGEREF _Toc24615 \h 84
4.3.7 段统计表 PAGEREF _Toc28396 \h 87
4.3.8 内存建议表 PAGEREF _Toc5851 \h 88
4.3.9 RAC系列表 PAGEREF _Toc16772 \h 88
4.4 收集服务器信息 PAGEREF _Toc15512 \h 88
4.4.1 vmstat工具概述 PAGEREF _Toc29408 \h 89
4.4.2 查看CPU数量 PAGEREF _Toc20330 \h 90
4.4.3 识别内存问题 PAGEREF _Toc6615 \h 91
4.4.4 获取服务器性能数据 PAGEREF _Toc16353 \h 91
4.5 调整服务器环境 PAGEREF _Toc3459 \h 94
4.5.1 调整责任人 PAGEREF _Toc13901 \h 94
4.5.2 性能监视工具 PAGEREF _Toc21516 \h 94
4.5.3 处理CPU问题 PAGEREF _Toc2795 \h 95
4.5.4 生成服务器报告 PAGEREF _Toc27813 \h 96
4.6 调整网络环境 PAGEREF _Toc20581 \h 97
4.6.1 通过Statspack监视网络性能 PAGEREF _Toc30350 \h 97
4.7 调整磁盘I/O PAGEREF _Toc2890 \h 98
4.7.1 影响磁盘I/O的因素 PAGEREF _Toc1311 \h 98
4.7.2 寻找热点磁盘 PAGEREF _Toc18038 \h 98
4.7.3 寻找热点数据文件 PAGEREF _Toc12578 \h 101
4.7.4 寻找热点段对象 PAGEREF _Toc29562 \h 102
4.8 调整数据库实例 PAGEREF _Toc14856 \h 102
4.8.1 识别等待事件 PAGEREF _Toc16264 \h 102
4.8.2 调整数据高速缓存 PAGEREF _Toc23999 \h 103
4.8.3 调整库高速缓存 PAGEREF _Toc2153 \h 104
4.8.4 调整数据字典高速缓存 PAGEREF _Toc1068 \h 105
4.8.5 调整PGA PAGEREF _Toc14989 \h 105
4.8.6 调整回滚表空间 PAGEREF _Toc927 \h 106
4.8.7 动态调整内存参数 PAGEREF _Toc26678 \h 106
4.9 调整表和索引 PAGEREF _Toc11705 \h 107
4.9.1 使用Statspack进行调整 PAGEREF _Toc11077 \h 107
4.9.2 使用系统视图进行调整 PAGEREF _Toc4246 \h 109
4.10 调整SQL PAGEREF _Toc11833 \h 110
4.11 使用并行特性 PAGEREF _Toc30268 \h 111
4.11.1 并行查询 PAGEREF _Toc24159 \h 111
4.11.2 并行DML PAGEREF _Toc15523 \h 112
4.12 解读Statspack报告 PAGEREF _Toc6211 \h 113
4.12.1 报告头信息 PAGEREF _Toc13004 \h 113
4.12.2 资源消耗情况 PAGEREF _Toc26849 \h 113
4.12.3 SGA命中率 PAGEREF _Toc19397 \h 114
4.12.4 共享池总体情况 PAGEREF _Toc4391 \h 114
4.12.5 首要等待事件 PAGEREF _Toc16005 \h 115
4.12.6 所有等待事件 PAGEREF _Toc9929 \h 115
4.12.7 后台进程等待事件 PAGEREF _Toc8719 \h 115
4.12.8 SQL部分 PAGEREF _Toc17529 \h 116
4.12.9 实例活动数据 PAGEREF _Toc20281 \h 120
4.12.10 表空间I/O统计 PAGEREF _Toc3316 \h 121
4.12.11 数据文件I/O统计 PAGEREF _Toc24063 \h 122
4.12.12 数据缓冲区统计 PAGEREF _Toc8085 \h 123
4.12.13 实例恢复统计 PAGEREF _Toc609 \h 124
4.12.14 数据缓冲区建议 PAGEREF _Toc21056 \h 124
4.12.15 缓冲区等待统计 PAGEREF _Toc27916 \h 125
4.12.16 PGA总体统计 PAGEREF _Toc25571 \h 125
4.12.17 PGA柱状图统计 PAGEREF _Toc13914 \h 126
4.12.18 PGA建议 PAGEREF _Toc13294 \h 126
4.12.19 回滚段性能统计 PAGEREF _Toc20094 \h 127
4.12.20 回滚段存储统计 PAGEREF _Toc11866 \h 128
4.12.21 回滚段总体情况 PAGEREF _Toc974 \h 129
4.12.22 回滚段时间统计 PAGEREF _Toc22858 \h 130
4.12.23 锁存器统计 PAGEREF _Toc30850 \h 130
4.12.24 锁存休眠统计 PAGEREF _Toc27504 \h 131
4.12.25 锁存丢失统计 PAGEREF _Toc6797 \h 132
4.12.26 段逻辑读统计 PAGEREF _Toc4990 \h 133
4.12.27 段物理读统计 PAGEREF _Toc21824 \h 134
4.12.28 数据字典缓存状态 PAGEREF _Toc3052 \h 134
4.12.29 库高速缓存状态 PAGEREF _Toc12034 \h 135
4.12.30 共享池建议 PAGEREF _Toc32674 \h 135
4.12.31 SGA总体情况 PAGEREF _Toc29324 \h 136
4.12.32 SGA各部分情况 PAGEREF _Toc29725 \h 137
4.12.33 初始化参数 PAGEREF _Toc1640 \h 137
4.12.34 总结 PAGEREF _Toc22720 \h 138
4.13 使用图形观看趋势报告 PAGEREF _Toc7044 \h 138
1. 在TOAD中运行相应的SQL语句,得到结果。 PAGEREF _Toc25985 \h 138
2. 在数据区点右健,选择“SaveAs”,则弹出窗口如下: PAGEREF _Toc20888 \h 138
3. 用EXCEL打开文件后,选择要制表的整个数据列(如命中率),界面如下: PAGEREF _Toc27741 \h 139
4. 然后在菜单中选择“插入-图表”,在弹出窗口中选择想要的图形: PAGEREF _Toc1895 \h 139
5. 我们还可以增加趋势分析,点击菜单“图表-添加趋势线”,则弹出窗口如下: PAGEREF _Toc6891 \h 140
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论