《Oracle性能优化科学与艺术》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)Christopher Lawson著;谢君英,周丽琴译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:7302081883
  • 页数:335 页
图书介绍:本书介绍了Oracle性能优化过程中从“医师到魔术师”的方法,提供了各种有用的参考数据和丰富的案例研究。

目录 1

第1章 性能优化的挑战 1

1.1 为什么要进行性能优化 2

1.2 编写本书的原因 3

1.3 本书读者对象 3

1.4 读者的好消息 4

1.5 医师到魔术师的方法 4

1.5.1 可适应性的需要 5

1.5.2 理解而非技巧 6

1.5.3 避免猜测 8

1.5.4 银弹 8

1.5.5 解决错误问题 8

1.5.6 揭露一个大秘密 8

1.5.7 与Oracle保持同步更新 10

1.6 艺术还是科学 11

1.7 预优化 13

1.8 小结 14

2.1 失败的策略 15

第2章 许多优化策略失败的原因 15

2.2 不完善的性能优化方法 16

2.2.1 银弹方法 16

2.2.2 偷工减料 17

2.2.3 快速培训班 22

2.2.4 偏爱的思想 26

2.2.5 解决错误的问题 27

2.2.6 猜测法 30

2.2.7 避免责备 32

2.2.8 其他障碍 33

2.3 小结 34

第3章 Oracle医师 35

3.1 定义问题 36

3.1.1 确定需求 36

3.1.2 定义需求的艺术 36

3.1.3 切忌孤军奋战 37

3.1.4 Oracle医生的“就职誓言” 38

3.1.5 无需太多的技术 38

3.2 找到主诉症状 39

3.2.1 “数据库是坏的” 40

3.2.2 仔细倾听 41

3.2.3 适时地问一些问题 45

3.2.4 查看所展示的问题 46

3.2.5 必要时寻求帮助 46

3.3 小结 47

第4章 处理人际关系 49

4.1 性能优化问题中的人为因素 50

4.2.2 采取一个积极的方法 51

4.2 DBA的角色 51

4.2.1 集中解决客户的问题 51

4.2.3 建立相互信任的人际关系 53

4.2.4 准确地报告问题 56

4.2.5 避免傲慢的态度 57

4.2.6 承担责任 58

4.2.7 避免责备 60

4.2.8 询问问题 62

4.3 小结 63

4.2.9 接受批评 63

第5章 Oracle侦探 64

5.1 验证问题的存在 65

5.1.1 问题确实存在吗 65

5.1.2 检查基本信息 66

5.1.3 错误消息 66

5.1.4 在控制环境下重新运行应用程序 67

5.1.5 检查运行日志 68

5.1.6 查询V$SQL视图以找到SQL语句 69

5.1.7 未使用绑定变量所带来的问题 72

5.1.8 采用工具监控应用程序 75

5.1.9 监视活动和非活动会话 76

5.2 量化问题 76

5.2.1 需要关注的问题 77

5.2.2 方法 77

5.2.3 生成跟踪文件 77

5.2.4 计时信息 80

5.2.5 许可及文件大小 80

5.2.6 TKPROF 81

5.4 小结 90

5.3 注意所有异常因素 90

第6章 收集更多的线索 92

6.1 等什么 93

6.2 等待事件的类型 93

6.3 视图概述 97

6.3.1 V$EVENT NAME 97

6.3.2 V$SYSTEM_EVENT 98

6.3.3 V$SESSION EVENT 99

6.3.4 V$SESSION_WAIT 100

6.4 使用系统事件10046进行跟踪 102

6.5 等待事件的使用例子 105

6.6 重要的警告 113

6.6.1 不是数据库引起的延迟 113

6.6.2 无法监测CPU时间 113

6.6.4 时间精确度 114

6.7 小结 114

6.6.3 没有监测到的逻辑读 114

第7章 Oracle病理学家 115

7.1 隔离根本原因 116

7.2 找出性能降低的根源 117

7.2.1 找出真正的原因 117

7.2.2 性能预算 118

7.3 简化 120

7.4.1 分化SQL代码 124

7.4 分治法 124

7.4.2 简化表连接 126

7.5 活动时间表方法 128

7.6 性能问题的常见原因 129

7.6.1 应用程序设计 129

7.6.2 数据库设计 132

7.6.3 init.ora参数 133

7.6.4 批处理任务的干扰 133

7.6.5 硬件 134

7.7.1 简单的计时测试 136

7.7.2 大的结果集 136

7.7 寻找根本原因的其他建议 136

7.8 小结 137

第8章 分析SQL瓶颈 138

8.1 SQL优化的作用 139

8.1.1 SQL分析人员的好消息 139

8.1.2 SQL分析的其他好处 140

8.2 使用新的数据库功能 141

8.2.1 需要重新学习一些内容 142

8.2.2 更改过程中的稳定性 142

8.3 从哪儿开始 143

8.2.3 工具集中的新工具 143

8.3.1 查看统计数字 144

8.3.2 产生新的统计数字 144

8.3.3 确保运行的SQL可实现预期的功能 146

8.3.4 查看结果集的大小 146

8.3.5 各种优化过程入口的汇总 147

8.4 Oracle执行计划 147

8.4.1 获得执行计划 148

8.4.3 运行EXPLAN PLAN语句 150

8.4.2 准备使用EXPLAIN PLAN功能 150

8.4.4 执行计划的内容 151

8.4.5 Oracle提供的其他脚本 152

8.4.6 使用SQL*Plus AUTOTRACE获得执行计划 153

8.4.7 解释执行计划 155

8.5 视图和过滤 159

8.6 子查询 160

8.7 SQL优化的其他技巧 160

8.7.1 对象浏览工具 160

8.7.3 注意全表扫描 161

8.7.2 索引浏览工具 161

8.7.4 不要忽略逻辑读 162

8.7.5 指导开发人员 163

8.7.6 考虑缓存效果 164

8.8 计划表更为高级的功能 164

8.9 小结 167

第9章 分析SQL连接 168

9.1 什么是连接 169

9.1.1 等值连接和θ连接 169

9.1.3 外连接 170

9.1.2 内连接 170

9.2 连接技巧 171

9.2.1 嵌套循环 172

9.2.2 排序合并 174

9.2.3 哈希连接 176

9.2.4 群集连接 178

9.3 连接优化 179

9.3.1 选择合适的连接 179

9.3.2 SQL提示 180

9.4 分析连接的图形化方法 182

9.4.1 显示表和连接条件 182

9.4.2 列出过滤统计数字 183

9.4.3 开始连接 184

9.4.4 继续连接 186

9.4.5 多个条件 188

9.4.6 处理到大表的连接 188

9.5 影响连接的init.ora参数 189

9.6.1 连接远程表 193

9.6 其他连接主题 193

9.6.2 笛卡尔积 194

9.6.3 数据仓库的特殊连接 195

9.7 小结 201

第10章 病理学家的工具箱:其他策略 202

10.1 分析缓慢的数据库 202

10.1.1 是否每个人都觉得性能很慢 203

10.1.2 是否能够将问题归结于一部分原因 203

10.2 找出最差的症状 203

10.2.1 监视活动会话 204

10.2.2 确保没有阻塞会话 205

10.2.3 彻底检查网络 207

10.2.4 查看资源消耗大户 208

10.2.5 磁盘等待时间 210

10.2.6 查看参数极值的设置 210

10.2.7 留心分布式查询 211

10.3 操作系统工具 212

10.3.1 top 212

10.3.3 sar 213

10.3.2 uptime 213

10.3.4 sar选项 214

10.3.5 使用sar查找历史记录 215

10.3.6 iostat 215

10.3.7 vmstat 217

10.3.8 Windows操作系统中的工具 218

10.4 Oracle Statspack 222

10.4.1 安装Statspack 222

10.4.2 使用PERFSTAT快照 224

10.4.3 运行Statspack报告 225

10.4.4 报告示例 226

10.4.5 基础信息 227

10.4.6 缓存大小 227

10.4.7 加载简档 227

10.4.8 实例效率 228

10.4.9 前五个等待事件 229

10.4.10 与前台进程相关的所有等待事件 229

10.4.11 与后台进程相关的所有等待事件 229

10.4.13 表空间统计数字 230

10.4.12 实例统计 230

10.4.14 文件I/O统计数字 231

10.4.15 缓冲池统计数字 232

10.4.16 实例恢复统计数字 232

10.4.17 PGA聚集内存统计数字 233

10.4.18 PGA内存统计数字 233

10.4.19 回滚段统计数字 233

10.4.20 回滚段存储 234

10.4.22 闩锁活动 235

10.4.21 撤销段摘要 235

10.4.23 SGA内存摘要 236

10.4.24 init.ora参数 236

10.4.25 删除过时的快照数据 237

10.4.26 使用Statspack的建议 239

10.5 其他技巧 240

10.5.1 Oracle 9i对Statspack的改进 241

10.5.2 后台揭密:快照的实际工作 242

10.6 小结 242

第11章 Oracle艺术家 243

11.1 绘制解决方案 244

11.1.1 常规解决方案 245

11.1.2 更为复杂问题的解决方案:特殊的性能策略 248

11.2 Oracle Bug 256

11.2.1 难道处处都有Bug 257

11.2.2 找出大Bug:报警 257

11.2.3 TAR的麻烦世界 258

11.2.4 其他排除Bug的方法 259

11.3.1 DatabaseResourceManager 260

11.3 新的优化选项 260

11.3.2 物化视图 269

11.3.3 查询改写 270

11.4 “不可能”的问题 271

11.4.1 与其他Oracle专业人员联系 271

11.4.2 咨询系统管理员 272

11.4.3 Metalink 272

11.4.5 白皮书 273

11.4.6 有用的Web网站 273

11.4.4 Oracle论坛 273

11.5 小结 274

第12章 艺术家的调色板 275

12.1 SQL提示 276

12.1.1 何时使用SQL提示 276

12.1.2 如何使用提示 277

12.1.3 优化器模式提示 277

12.1.4 表和索引提示 279

12.1.5 连接提示 280

12.1.6 特殊的SQL提示 281

12.1.7 SQL提示疑难解分析 283

12.1.8 语法注意事项 283

12.2 PGA自动内存管理 283

12.2.1 设置PGA目标 284

12.2.2 PGA目标的优势 284

12.2.3 使用新的PGA参数 285

12.2.4 估算PGA需求 285

12.2.5 特殊的PGA视图 286

12.2.6 特殊的PGA术语 286

12.2.7 监视PGA内存优化 287

12.2.8 计算新的PGA内存目标 288

12.3 柱状图 290

12.3.1 柱状图需求 291

12.3.2 柱状图的样式 292

12.3.3 Oracle风格的柱状图 292

12.3.4 生成柱状图的传统方法 293

12.3.5 生成柱状图的新方法 294

12.3.6 查看柱状图 295

12.3.7 柱状图的局限性 297

12.4 小结 298

第13章 Oracle魔术师 299

13.1 设置舞台 300

13.1.1 测试解决方案 300

13.1.2 考虑对产品系统的影响 301

13.1.3 保存现有系统 303

13.2 挥动魔棒 304

13.2.1 念动咒语!让所有不满意的用户消失 304

13.2.2 确定性能变化 305

13.2.4 观察意外出现的结果 306

13.2.3 检查统计数据 306

13.3 如果犯了错 307

13.3.1 是否是正确的修正 307

13.3.2 系统如何不同 307

13.3.3 捕获相关的SQL 310

13.4 做好收尾工作 310

13.4.1 将解决方案记录入档 310

13.4.2 性能改进日志 311

13.5 下一步操作 312

13.4.3 结束与客户的交流 312

13.5.1 公布所学的内容 313

13.5.2 创建性能公文夹 313

13.6 小结 314

第14章 案例分析 316

14.1 为什么要花时间进行案例分析 316

14.2 使用案例分析 317

14.3 小结 329

附录A 有用的V$视图定义 330