《Oracle性能优化技术内幕》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)Gaja Krishna Vaidyanatha等著;钟鸣,石永平等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2002
  • ISBN:7111101022
  • 页数:270 页
图书介绍:

第一部分 方法 3

第1章 Oracle 性能管理介绍 3

1.1 什么是优化 5

1.2 为什么需要优化 5

1.3 由谁来优化 6

1.4 优化到何种程度 6

1.5 何时停止优化 7

1.6 本章小结 8

第2章 优化方法 9

2.1 为什么要重视优化方法 11

2.2 什么是良好的优化方法 12

2.3 Oracle 性能优化的基本方法 12

2.3.1 设立合理的性能优化目标 13

2.3.2 测量并记录当前性能 14

2.3.3 确定当前 Oracle 性能瓶颈 20

2.3.4 把等待事件记入跟踪文件 29

2.3.5 确定当前 OS 瓶颈 30

2.3.6 优化必需的组件 34

2.3.7 跟踪并实施更改控制过程 35

2.3.8 测量并记录当前性能 35

2.3.9 重复步骤3到步骤7直到满足优化目标 35

2.4 本章小结 35

第二部分 应用程序优化 39

第3章 应用程序优化——与 DBA 有关的问题 39

3.1 Oracle 优化程序的故事 41

3.1.1 老伙计:基于规则的优化程序 41

3.1.2 基于规则的优化程序的不灵活性的影响 42

3.1.3 基于规则的优化程序和 C 编译器:一个专家的观点 43

3.1.4 新生儿:基于成本的优化程序 43

3.1.8 基于成本的优化程序的崛起 44

3.1.7 回到基于成本的优化程序 44

3.1.6 幸福老人:基于规则的优化程序 44

3.1.5 基于成本的优化程序的成熟过程 44

3.2 Oracle 优化程序的初始参数设置 45

3.3 什么是提示 45

3.4 运行的是哪个优化程序 46

3.5 对象统计数据的计算 47

3.5.1 为什么要计算统计数据 47

3.5.2 怎样计算统计数据 47

3.5.3 需要多少统计信息 47

3.5.4 计算对象统计数据的各种方法 48

3.5.5 间隔多久计算一次统计数据 50

3.5.6 关于计算对象统计数据的问题 51

3.6 最佳检索策略 51

3.6.1 什么是索引 51

3.6.3 怎样建立最佳索引 52

3.6.2 何时使用索引 52

3.6.4 何时需要重建索引 55

3.7 应该使用哪种连接方法,何时使用 56

3.8 怎样不编写 SQL 57

3.9 最佳 SQL 的基础 63

3.10 本章小结 66

第4章 应用程序优化——追踪不良的 SQL 语句 67

4.1 SQL 语句的优化过程 68

4.2 怎样跟踪 SQL 69

4.3 跟踪文件的位置以及如何找到它 70

4.4 在跟踪文件上运行 tkprof 72

4.5 解释 tkprof 中的输出结果 73

4.6 Oracle 的行动计划 74

4.6.1 怎样获得 Oracle 的行动计划 74

4.6.2 如何阅读计划 75

4.7 什么是 AUTOTRACE 76

4.8 本章小结 77

第5章 实例优化——共享池区 81

第三部分 实例与数据库优化 81

5.1 Oracle 体系结构 83

5.1.1 系统全局区 84

5.1.2 后台进程 86

5.1.3 另一个进程:服务器进程 88

5.1.4 程序全局区 88

5.2 分析 SQL:用户按 ENTER 时的工作 89

5.2.1 硬分析与软分析 90

5.2.2 分析或者不分析,这是一个问题 91

5.3 初始化参数和共享池 91

5.4 配置各种池子 91

5.4.1 共享池 92

5.4.2 大型池 92

5.4.3 Java 池 93

5.5 优化 SPA 93

5.6 把对象留在内存中 97

5.7 共享池碎片:主动处理 ORA-04031 98

5.7.1 导致共享池碎片的原因 98

5.7.2 Oracle 7.3及以上版本中的 ORA-04031错误 99

5.8 影响共享池区的等待事件 99

5.9 本章小结 100

第6章 实例优化——数据库缓冲区高速缓存 103

6.1 什么是五分钟高速缓存规则 105

6.2 数据库缓冲区高速缓存的工作原理 105

6.2.1 Oracle8i 以前的数据库缓冲区高速缓存管理 106

6.2.2 Oracle8i 及以上版本中的数据库缓冲区高速缓存管理 107

6.3 配置缓冲池 108

6.3.1 从默认池开始 108

6.3.2 保留池 109

6.3.3 回收池 109

6.4.1 高速缓存命中率 110

6.4 分析数据库缓冲区高速缓存 110

6.3.5 使用 cache 选项 110

6.3.4 分配对象给一个池子 110

6.4.2 数据库缓冲区高速缓存中有什么 112

6.4.3 影响数据库缓冲区高速缓存的等待事件 112

6.5 解决问题 113

6.6 本章小结 114

第7章 实例优化——重做日志缓冲区及杂项优化 117

7.1 配置重做日志缓冲区 118

7.1.1 影响重做日志缓冲区的初始化参数 121

7.1.2 影响重做日志缓冲区的等待事件 121

7.1.3 解决重做日志缓冲区问题 122

7.2 实例的杂项优化 123

7.2.1 检查点 123

7.2.2 重做日志文件 124

7.2.3 怎样设置重做日志文件的尺寸 124

7.2.5 用于实例杂项优化的初始化参数 125

7.2.4 归档 125

7.3 优化 Oracle 优化程序 126

7.4 本章小结 128

第8章 数据库优化 131

8.1 选取正确的数据库块尺寸 133

8.1.1 数据库块尺寸是如何影响性能的 133

8.1.2 如何定义最佳 Oracle 数据库块的尺寸 133

8.1.3 改变数据库块尺寸:核心问题 135

8.1.5 小结 136

8.1.4 小块与大块尺寸的比较:一个有趣的观点 136

8.2 配置块级存储参数 137

8.2.1 配置 pctused 137

8.2.2 配置 pctfree 138

8.2.3 配置 initrans 138

8.2.4 配置 maxtrans 139

8.2.5 配置可用列表 139

8.3 设计、配置和优化表空间 140

8.3.1 四个桶表空间的配置方法 140

8.3.3 全局临时表和临时表空间 144

8.3.2 配置临时表空间 144

8.3.4 配置本地管理的表空间 145

8.4 改善性能的数据库分区 146

8.4.1 分区的实际好处 146

8.4.2 数据库分区的关键因素 147

8.5 配置初始化参数 148

8.6 混合型数据库的优化问题 148

8.7 数据仓库数据库的优化问题 150

8.8 本章小结 150

第四部分 特殊优化 155

第9章 并行查询优化 155

9.1 什么是并行,Oracle 如何使用并行 156

9.2 何时使用并行查询 156

9.3 怎样使用并行 157

9.4 能从并行中受益的 SQL 语句 160

9.5 影响并行性的初始化参数 161

9.6 为并行性设计数据库 164

9.7 并行 DML 的考虑 165

9.7.1 PDML 和回退段配置 165

9.7.2 PDML 和实例恢复 165

9.7.3 PDML 的限制和问题 166

9.8 并行查询监控 166

9.9 本章小节 168

第10章 争用优化 171

10.1 监控 Oracle 的争用 172

10.2 回退段 173

10.2.1 什么是多版本读取一致性 173

10.2.2 多版本的读取一致性如何工作 173

10.2.3 定义并揭穿环绕的神话 174

10.2.4 删除回退段争用 176

10.2.5 回退段的用法 178

10.2.6 怎样配置回退段 179

10.2.7 怎样避免“ORA-01555-Snapshot Too Old”错误 181

10.3 主动管理临时段的管理争用 182

10.3.1 理解临时段争用 183

10.3.2 监控临时段表空间的使用情况 184

10.4 闩锁 185

10.5 本章小结 186

第五部分 环境优化 191

第11章 I/O 优化 191

11.1 RAID 是什么 192

11.2 RAID 不是什么 193

11.3 为什么应该重视 RAID 194

11.4 RAID 中的三个主要概念 195

11.4.1 什么是条带化 195

11.4.2 什么是镜像 195

11.4.3 什么是等同 196

11.4.4 本节内容提要 196

11.5 RAID 的类型 196

11.6.3 RAID 0+1 197

11.6.2 RAID 1 197

11.6.1 RAID 0 197

11.6 RAID 的级别 197

11.6.4 RAID 1+0 198

11.6.5 RAID 2 198

11.6.6 RAID 3 198

11.6.7 RAID 4 198

11.6.8 RAID 5 199

11.6.9 RAID 6 199

11.6.10 RAID 7 199

11.6.11 RAID-S 200

11.6.12 Auto RAID 200

11.7 Oracle 与 RAID 201

11.7.1 RAID 1 201

11.7.2 RAID 0+1和 RAID 1+0 201

11.7.3 RAID 3与 RAID 5 201

11.7.5 Auto RAID 202

11.7.4 RAID 7 202

11.8 配置磁盘阵列要考虑的基本问题 203

11.9 磁盘条带化要考虑的基本问题 204

11.9.1 建立条带化卷的步骤:第一部分 205

11.9.2 条带宽度配置 206

11.9.3 建立条带化卷的步骤:第二部分 207

11.10 操作系统配置 207

11.10.1 原始设备与文件系统的严谨讨论 208

11.10.2 异步 I/O 208

11.11 数据库的最佳布局 208

11.11.1 并发访问对象的分离 208

11.11.2 把数据与相应的索引分开 209

11.11.3 回退表空间与临时表空间共存 209

11.11.4 分离表空间中的热点对象 209

11.11.5 数据应该怎样条带化 209

11.12 影响 I/O 性能的初始化参数 210

11.13 RAID 和 Oracle 数据库:核心问题 210

11.14 样例 RAID 配置 211

11.15 本章小结 216

第12章 操作系统优化 217

12.1 优化 OS:一般问题 218

12.1.1 为系统配置足够的内存 219

12.1.2 合理的内存分配方法 220

12.1.3 优化文件系统缓冲区高速缓存 221

12.1.4 优化系统上的交换空间 221

12.1.5 将 Oracle SGA 锁定在内存中 222

12.2 优化 UNIX 核心 222

12.3 优化 Solaris 224

12.3.1 异步 I/O 224

12.3.2 将 SGA 锁定在内存中 225

12.3.3 优化分页新进程 225

12.4 优化 AIX 226

12.4.1 异步 I/O 226

12.4.3 优化分页新进程 228

12.4.2 在内存中锁定 SGA 228

12.5 优化 HP-UX 230

12.5.1 异步 I/O 231

12.5.2 在内存中锁定 SGA 231

12.5.3 优化文件系统缓冲区高速缓存 231

12.5.4 优化进程管理 232

12.6 优化 Windows NT 233

12.6.1 增加 Windows NT 的可用内存 233

12.6.2 降低前台应用程序的优先级 234

12.6.3 取消不使用的网络协议并重新设置绑定次序 234

12.6.4 配置 Windows NT 为一个数据库服务器 235

12.6.5 配置“非 Windows 的打扮” 235

12.6.6 什么是启动开始 235

12.6.7 优化虚拟内存和分页文件 236

12.7 本章小结 236

第13章 全书总结 239

13.3 优化方法 240

13.1 Oracle 性能管理:总结 240

13.2 什么是 Oracle 性能管理 240

13.4 无可替代的应用程序优化 241

13.5 共享池区优化 242

13.6 数据库缓冲区高速缓存优化 242

13.7 重做日志缓冲区及杂项优化 243

13.8 数据库优化 243

13.9 并行查询优化 244

13.10 争用优化 244

13.11 I/O 优化 245

13.12 操作系统优化 246

第六部分 附录 251

附录 A 词汇表 251

附录 B 更多的技巧与资源 261

附录 C 参考文献 269