第一部分 初始化参数 2
第1章 在文档中部分说明的参数 2
1.1 AUDITSYSLOG LEVEL 2
1.1.1 syslog设备 2
1.1.2审计简介 3
1.1.3使用AUDIT SYSLOG LEVEL参数 4
1.1.4审计非特权用户 5
1.1.5小结 6
1.2 PGA AGGREGATE TARGET 6
1.2.1自动PGA内存管理介绍 7
1.2.2对PGA AGGREGATE TARGET的误解 8
1.2.3研究PGA AGGREGATE TARGET 9
1.2.4使用管道表函数创建一个大表 9
1.2.5 V$SQL WORKAREA ACTIVE 10
1.2.6 PGA MAX SIZE 14
1.2.7 SMM MAX SIZE 15
1.2.8 SMM PX MAX SIZE 15
1.2.9共享服务器 15
1.2.10并行执行 16
1.2.11小结 17
1.3 EVENT 18
1.3.1语法 18
1.3.2在实例级别均衡事件 19
1.3.3案例研究 19
1.4 OS AUTHENTPREFIX 19
1.4.1 OPS$数据库用户及密码文件身份认证 20
1.4.2案例研究 20
1.4.3小结 23
1.5源代码库 23
第2章 隐藏的初始化参数 24
2.1跟踪文件权限与_TRACE_FILES_ PUBLIC参数 24
2.2 ASM测试环境与ASM ALLOW ONLY RAW DISKS参数 26
2.2.1 ASM隐藏参数 26
2.2.2为ASM配置Oracle集群件 27
2.2.3 ASM实例设置 28
2.2.4磁盘失效模拟 31
2.3源代码库 31
第二部分 数据字典基表 34
第3章 数据字典基表介绍 34
第4章IND$、 V$OBJECT USAGE和索引监控 38
4.1模式限制 38
4.2索引使用监控案例研究 39
4.2.1 MONITOR SCHEMA INDEXES函数 40
4.2.2为HR模式启动索引监控 40
4.2.3小结 44
4.3源代码库 45
第三部分 事件 48
第5章10027事件和死锁诊断 48
5.1死锁 48
5.2 10027事件 49
第6章10046事件和扩展SQL跟踪 52
第7章10053事件和基于成本的优化器 54
7.1跟踪文件的内容 57
7.2案例研究 57
7.2.1查询块和对象标识符 58
7.2.2考虑的查询转换 58
7.2.3说明 60
7.2.4绑定变量窥视的结果 61
7.2.5优化器参数 61
7.2.6系统统计信息 66
7.2.7表和索引的对象统计信息 67
7.2.8单表访问路径和成本 68
7.2.9联结顺序 70
7.2.10执行计划 73
7.2.11谓词信息 74
7.2.12提示和查询块名称 74
7.3源代码库 75
第8章10079事件和Oracle网络数据包的内容 76
第四部分X$固定表 80
第9章X$固定表介绍 80
9.1 X$固定表与C语言编程 80
9.2分层系统结构 81
9.3授权访问X$表与V$视图 82
9.4从V$视图深入剖析X$固定表 83
9.5 X$表与V$视图之间的关系 88
9.6源代码库 89
第10章X$BH表及闩锁争用 90
第11章X$KSLED以及增强的会话等待数据 96
11.1深度探讨视图V$SESSION WAIT 96
11.2改进的V$SESSION WAIT视图 97
11.3源代码库 100
第12章X$KFFXP与ASM元数据 101
12.1固定表X$KFFXP 101
12.2抢救SPFILE文件 102
12.3映射数据段到ASM存储 104
第五部分SQL语句 108
第13章ALTER SESSION/SYSTEMSETEVENTS 108
13.1跟踪你自己的会话 108
13.2 ALTER SESSION SET EVENTS 109
13.3 ALTER SYSTEM SET EVENTS 110
13.4 ALTER SESSION/SYSTEM SETEVENTS和诊断转储 111
13.5立即转储 112
第14章ALTER SESSION SET CURRENT SCHEMA 113
14.1特权用户与模式用户 113
14.2 ALTER SESSION SET CURRENT SCHEMA限制 115
14.2.1高级队列 116
14.2.2 RENAME 116
14.2.3私有数据库链接 117
14.2.4存储概要 118
第15章ALTER USER IDENTIFIED BYVALUES 119
15.1密码游戏 119
15.2用ALTER USER IDENTIFIED BYVALUES锁定账户 121
15.3 ALTER USER和未加密的密码 122
第16章SELECT FOR UPDATE SKIPLOCKED 124
16.1高级队列 124
16.2 Contention和SELECT FOR UPDATESKIP LOCKD 126
16.3 DBMS_LOCK——题外话 133
16.4源代码库 136
第六部分 提供的PL/SQL程序包 138
第17章DBMS BACKUP RESTORE 138
17.1恢复管理器 138
17.2 TDPO灾难恢复案例研究 142
17.3源代码库 144
第18章DBMS IJOB 145
18.1介绍DBMS JOB 145
18.2 BROKEN过程 145
18.2.1语法 145
18.2.2参数 146
18.2.3使用说明 146
18.2.4范例 146
18.3 FULL EXPORT过程 146
18.3.1语法 147
18.3.2参数 147
18.3.3范例 147
18.4 REMOVE过程 148
18.4.1语法 148
18.4.2参数 148
18.4.3范例 148
18.5 RUN过程 148
18.5.1语法 148
18.5.2参数 148
18.5.3使用说明 149
18.5.4范例 149
18.6源代码库 150
第19章DBMS SCHEDULER 151
19.1使用数据库调度器运行外部作业 151
19.1.1退出代码处理 152
19.1.2标准错误输出 153
19.2 UNIX系统上的外部作业 155
19.2.1清除环境变量 155
19.2.2命令行处理 157
19.2.3外部作业与非特权用户 159
19.3 Windows系统上的外部作业 161
19.3.1命令行参数处理 161
19.3.2 Windows环境变量 162
19.3.3外部作业与非特权用户 163
19.3.4 ORADIM实用工具创建的服务 163
19.3.5 OracleJobScheduler服务 163
19.4源代码库 164
第20章DBMS SYSTEM 165
20.1 GETENV过程 165
20.1.1语法 165
20.1.2参数 165
20.1.3使用说明 166
20.1.4范例 166
20.2 KCFRMS过程 166
20.2.1语法 166
20.2.2使用说明 166
20.2.3范例 166
20.3 KSDDDT过程 168
20.3.1语法 168
20.3.2使用说明 168
20.3.3范例 168
20.4 KSDFLS过程 169
20.4.1语法 169
20.4.2使用说明 169
20.4.3范例 169
20.5 KSDIND过程 169
20.5.1语法 169
20.5.2参数 169
20.5.3使用说明 169
20.5.4范例 170
20.6 KSDWRT过程 170
20.6.1语法 170
20.6.2参数 170
20.6.3使用说明 170
20.6.4范例 171
20.7 READ EV过程 171
20.7.1语法 171
20.7.2参数 172
20.7.3使用说明 172
20.7.4范例 172
20.8 SET_ INT_PARAM_ IN_ SESSION过程 172
20.8.1语法 173
20.8.2参数 173
20.8.3使用说明 173
20.8.4示例 173
20.9 SET_BOOL PARAM_ IN SESSION过程 174
20.9.1语法 174
20.9.2参数 174
20.9.3使用说明 174
20.9.4示例 174
20.10 SETEV过程 175
20.10.1语法 175
20.10.2参数 175
20.10.3使用说明 175
20.10.4范例 175
20.11 SET SQL TRACE IN SESSION转储 177
20.11.1语法 177
20.11.2参数 177
20.11.3使用说明 177
20.11.4范例 177
20.12 WAIY_FOR_EVENT过程 177
20.12.1语法 177
20.12.2参数 178
20.12.3使用说明 178
20.12.4范例 178
第21章DBMS UTILITY 179
21.1 NAME RESOLVE过程 179
21.1.1语法 179
21.1.2参数 180
21.1.3使用说明 181
21.1.4异常 181
21.1.5范例 181
21.2对象统计信息的名称解析和提取 183
21.3源代码库 185
第七部分 应用程序开发 188
第22章Perl DBI与DBD::Oracle 188
22.1常见的Per1 DBI陷阱 188
22.2 Perl与DBI简史 189
22.3为Perl与DBI设置环境变量 189
22.3.1 UNIX环境 189
22.3.2 Windows环境 194
22.4在UNIX系统上透明地运行Perl程序 196
22.5在Windows系统上透明地运行Perl程序 197
22.6连接到一个ORACLE DBMS实例 199
22.6.1 DBI连接语法 199
22.6.2使用Bequeath适配器连接 200
22.6.3使用IPC适配器连接 201
22.6.4通过TCP/IP适配器连接 202
22.6.5简易连接 203
22.6.6使用SYSDBA或SYSOPER特权连接 203
22.6.7使用操作系统认证连接 204
22.6.8连接属性 205
22.7完整Perl DBI示例程序 206
22.8异常处理 210
22.9源代码库 211
第23章 应用程序插桩及端到端跟踪 212
23.1插桩简介 212
23.2案例研究 214
23.3程序编译 216
23.4插桩的运行 217
23.5 TRCSESS的使用 221
23.6插桩与程序调用栈 226
23.7源代码库 227
第八部分 性能 230
第24章 扩展SQL跟踪文件格式参考 230
24.1扩展SQL跟踪文件介绍 230
24.2 SQL和PL/SQL语句 231
24.3递归调用深度 231
24.4数据库调用 232
24.4.1解析 232
24.4.2 PARSING IN CURSOR条目的格式 233
24.4.3 PARSE条目的格式 235
24.4.4 PARSE ERROR条目的格式 236
24.4.5 EXEC条目的格式 236
24.4.6 FETCH条目的格式 236
24.4.7执行计划散列值 237
24.4.8计划散列值案例研究 237
24.4.9 CLOSE条目的格式 240
24.5 COMMIT与ROLLBACK 241
24.6 UNMAP 242
24.7执行计划、统计信息与STAT条目的格式 242
24.7.1 Oracle9i中STAT条目的格式 243
24.7.2 Oraclel0g和Oracle 11g中STAT条目的格式 243
24.8等待事件 245
24.8.1 WAIT条目的格式 245
24.8.2 Oracle9i中的WAIT 246
24.8.3 Oracle10g和Orac1e1 1g中的WAIT 246
24.9绑定变量 247
24.9.1 BINDS条目的格式 247
24.9.2语句调优、执行计划以及绑定变量 251
24.10跟踪文件条目其他项 257
24.10.1会话标识符 257
24.10.2服务名称ID 258
24.10.3应用程序插桩 259
24.10.4 ERROR条目的格式 261
24.10.5应用程序插桩与并行执行进程 263
第25章Statspack 265
25.1 Statspack介绍 265
25.1.1检索捕获到的SQL语句文本 267
25.1.2访问STATS$SQLTEXT 270
25.1.3使用保留格式捕获SQL语句 275
25.2未在文档中说明的Statspack报告参数 277
25.3 Statspack表 278
25.4找出Statspack库中代价高的语句 281
25.5识别使用过的索引 281
25.6 SQL Trace捕获语句的执行计划 282
25.7找出高资源利用率的快照 284
25.7.1高CPU使用 285
25.7.2高DB时间 287
25.8从另一数据库导入Statspack数据 290
25.9源代码库 292
第26章 整合扩展SQL跟踪和AWR 294
26.1检索执行计划 294
26.2小结 296
26.3源代码库 297
第27章ESQLTRCPROF扩展SQL跟踪分析器 298
27.1分类等待事件 298
27.2计算响应时间和统计信息 299
27.2.1案例研究 300
27.2.2运行PerL程序 301
27.2.3计算统计信息 303
27.2.4计算响应时间 303
27.3 ESQLTRCPROF参考 304
27.3.1命令行选项 305
27.3.2 ESQLTRCPROF报告部分 306
27.4小结 314
27.5源代码库 315
第28章MERITS性能优化方法 316
28.1 MERITS方法简介 316
28.2测量 317
28.3评估 321
28.4重现 323
28.5改进 323
28.6推断 324
28.7安装 324
28.8 MERITS方法案例研究 325
28.8.1阶段1——测量 325
28.8.2阶段2——评估 325
28.8.3阶段3——重现 332
28.8.4阶段4——改进 335
28.8.5阶段5——推断 339
28.8.6阶段6——安装 339
28.8.7小结 339
28.9源代码库 340
第九部分Oracle Net 342
第29章TNS监听器IP地址绑定与IP=FIRST 342
29.1 IP地址绑定介绍 342
29.2多宿主系统 344
29.3 I P=FIRST未启用 345
29.3.1主机名 346
29.3.2回环适配器 347
29.3.3引导IP地址 348
29.3.4服务IP地址 348
29.4 I P=FIRST开启 349
29.5小结 350
第30章TNS监听器TCP/IP有效结点检验 351
30.1有效结点检验简介 351
30.2在运行时打开和修改有效结点检验 353
第31章 本地命名参数ENABLE=BROKEN 356
第32章Oracle Net配置中默认的主机名 359
32.1默认主机名 359
32.2关闭默认监听器 360
第十部分 实时应用集群 364
第33章 会话断开连接、负载均衡与TAF 364
33.1透明应用故障转移介绍 364
33.2改变系统断开会话设置 365
33.2.1 SELECT故障转移 366
33.2.2在事务末的故障转移 369
33.3会话中断和DBMS_ SERVICE 371
33.3.1使用DBMS SERVICE创建服务 372
33.3.2 DBMS SERVICE和TAF下的会话中断 374
33.4小结 376
33.5源代码库 376
第34章 不重装就移除RAC选项 377
34.1连接ORACLE软件 377
34.2案例研究 378
34.2.1模拟表决磁盘失效 379
34.2.2使用make工具移除RAC可选项 381
34.2.3转换CRS环境为本地环境 383
34.2.4重启适用于RAC的CRS环境 385
34.3小结 386
第十一部分 实用工具 388
第35章OERR 388
35.1 OERR脚本介绍 388
35.2检索未在文档中说明的事件 390
35.3源代码库 392
第36章 数据恢复管理器管道接口 393
36.1数据恢复管理介绍 393
36.2 DBMS PIPE介绍 394
36.3 RMAN PIPE IF包 395
36.4 RMAN PIPE IF包详述 395
36.5使用RMAN_ PIPE_ IF包 396
36.6验证备份块 401
36.7跨节点并行备份与恢复 402
36.8源码库 403
第37章ORADEBUG SQL*Plus命令 404
37.1 ORADEBUG介绍 404
37.2 ORADEBUG使用步骤 405
37.3 ORADEBUG命令介绍 405
37.3.1连接到一个进程 406
37.3.2 ORADEBUG IPC 408
37.3.3 ORADEBUG SHORT STACK 409
37.3.4诊断转储 410
37.4小结 414
第十二部分 附录 416
附录A启用和禁用DBMS可选项 416
附录B参考书目 417
附录C术语表 419