-
ORACLE9i系统优化设计与调整
资源介绍
第一部分 ORACLE系统优化基本知识 23
第1章 ORACLE结构回顾 23
§1.1 Oracle数据库结构 23
§1.1.1 Oracle数据字典 23
§1.1.2 表空间与数据文件 24
§1.1.3 Oracle实例(Instance) 24
§1.2 Oracle文件 26
§1.2.1 数据文件 26
§1.2.2 控制文件 26
§1.2.3 重做日志文件 26
§1.2.4 其它支持文件 26
§1.3 数据块、区间和段 28
§1.3.1 数据块(data block) 28
§1.3.2 区间(extent) 28
§1.3.3 段(segment) 28
§1.4 SQL语句处理 29
§1.4.1 SQL语句处理顺序 29
§1.4.2 COMMIT语句处理顺序 32
§1.5 共享池 33
§1.6 块缓存(数据高速缓冲区) 33
§1.7 数据库写入进程 34
§1.8 日志写进程 34
§1.9 数据库检查点 34
§1.10 归档处理 35
§1.11 程序全局区(PGA) 35
第2章 警告日志与跟踪日志 35
§2.1 警告与日志文件 36
§2.1.1 经常查看警告日志文件内容 36
§2.1.2 熟悉警告日志的事件或消息 36
§2.1.3 分析警告日志错误 40
§2.2 对警告日志进行归档 43
§2.3 跟踪文件 44
§2.3.1 跟踪文件的产生 44
§2.3.2 分析跟踪文件的信息 45
§2.3.3 跟踪文件的内容 45
§2.4 关于NET的日志与跟踪 47
§2.4.1 日志文件(LOG File) 47
§2.4.1.1 日志中的错误信息 47
§2.4.1.2 日志文件的命名 47
§2.4.1.3 设置日志参数 48
§2.4.1.4 在配置文件中设置日志参数 49
§2.4.1.5 在运行控制实用程序中设置日志参数 50
§2.4.1.6 理解监听日志中信息 50
§2.4.1.7 理解连接管理器信息 53
§2.4.2 跟踪文件( Trace File ) 53
§2.4.2.1 跟踪文件的命名: 54
§2.4.2.2 参数设置与初始化文件: 54
§2.4.2.3 在控制实用程序运行中设置跟踪参数 56
§2.4.2.4 服务器/客户包跟踪 57
§2.4.2.5 评估NET跟踪信息 58
§2.4.2.6 使用跟踪助理(Trace Assistant)检查跟踪文件 60
第3章 初始化参数、SQL脚本文件 63
§3.1 初始化参数文件 63
§3.2 在参数文件中指定参数值 64
§3.2.1 参数文件中的规则控制 64
§3.2.2 在参数值中使用特殊字符 65
§3.2.3 修改参数值 66
§3.2.4 显示当前参数值 69
§3.2.5 参数的使用 69
§3.2.6 参数的类型 69
§3.2.7 不能在参数文件中指定的参数 70
§3.2.8 当参数指定错误时怎么办? 70
§3.3 参数内容说明 70
§3.4 DBA常用参数说明 71
§3.4.1 跟踪文件路径(BACKGROUND_DUMP_DEST) 71
§3.4.2 在缓冲区驻留对象(BUFFER_POOL_KEEP) 71
§3.4.3 版本兼容(COMPATIBLE) 72
§3.4.4 控制文件路径(CONTROL_FILES) 72
§3.4.5 CPU个数(CPU_COUNT) 72
§3.4.6 数据缓冲区块数(DB_BLOCK_BUFFERS) 72
§3.4.7 数据块大小(DB_BLOCK_SIZE) 73
§3.4.8 读数据块数(DB_FILE_MULTIBLOCK_READ_COUNT) 73
§3.4.9 数据文件的数目(DB_FILES) 73
§3.4.10 全局数据库名(GLOBAL_NAMES) 74
§3.4.11 数据库实例名(INSTANCE_NAME) 74
§3.4.12 许可的最大会话数(LICENSE_MAX_SESSIONS) 74
§3.4.13 许可的最大用户数(LICENSE_MAX_USERS) 74
§3.4.14 许可的会话警告(LICENSE_SESSIONS_WARNING) 75
§3.4.15 归档文件目标路径(LOG_ARCHIVE_DEST) 75
§3.4.16 归档文件目标路径(LOG_ARCHIVE_DEST_ n) 75
§3.4.17 日志缓冲区大小(LOG_BUFFER) 76
§3.4.18 检查点块数(LOG_CHECKPOINT_INTERVAL) 76
§3.4.19 检查点间隔(LOG_CHECKPOINT_TIMEOUT) 76
§3.4.20 对大卸出文件大小(MAX_DUMP_FILE_SIZE) 76
§3.4.21 对大回滚段数(MAX_ROLLBACK_SEGMENTS) 77
§3.4.22 打开的光标数(OPEN_CURSORS) 77
§3.4.23 优化方式(OPTIMIZER_MODE) 77
§3.4.24 进程数(PROCESSES) 77
§3.4.25 回滚段名称(ROLLBACK_SEGMENTS) 78
§3.4.26 服务名(SERVICE_NAMES) 78
§3.4.27 会话的数(SESSIONS) 78
§3.4.28 共享池大小(SHARED_POOL_SIZE) 78
§3.4.29 分类区的大小(SORT_AREA_SIZE) 79
§3.4.30 用户卸出文件的路径(USER_DUMP_DEST) 79
§3.5 SQL脚本文件 79
§3.5.1 建立数据字典的脚本 79
§3.5.2 建立附加的数据字典 80
§3.5.3 带“NO”的脚本 81
§3.5.4 移植的脚本 81
§3.5.5 JAVA脚本 81
第6章 性能优化基础知识 82
§5.1 理解ORACLE性能优化 82
§5.1.1 响应时间与吞吐量的折衷 82
§5.1.2 临界资源 83
§5.1.3 过度请求的影响 83
§5.1.4 调整以解决问题 83
§5.2 优化的执行者 84
§5.3 设置性能目标 84
第7章 系统优化方法 85
§6.1 何时优化效率最高 85
§6.1.1 系统设计阶段和开发阶段的优化 85
§6.1.2 改善产品系统的优化 85
§6.2 优化的优先步骤 86
§6.2.1 步骤1:优化商业规则 86
§6.2.2 步骤2:优化数据设计 87
§6.2.3 步骤3:优化应用程序设计 87
§6.2.4 步骤4:优化数据库的逻辑结构 87
§6.2.5 步骤5:优化数据库操作 87
§6.2.6 步骤6:优化访问路径 88
§6.2.7 步骤7:优化内存分配 88
§6.2.8 步骤8:优化I/O和物理结构 89
§6.2.9 步骤9:优化资源争用 89
§6.2.10 步骤10:优化所采用的平台 89
§6.3 应用优化方法 90
§6.3.1 设定明确的优化目标 90
§6.3.2 创建最少可重复测试 90
§6.3.3 测试假想 90
§6.3.4 记录和自动测试 90
§6.3.5 避免常见错误 90
第二部分 ORACLE应用系统设计优化 91
第8章ORACLE数据库系统优化安装 91
§7.1 应用系统环境规划和Oracle系统安装考虑 91
§7.1.1 操作系统安装考虑 91
§7.1.2 Oracle系统安装考虑 92
§7.2 关于创建多个Oracle实例问题 93
§7.3 Oracle系统安装后的优化基础工作 94
§7.3.1 Oracle系统有关目录所有文件的保护 94
§7.3.2 避免新用户使用默认system系统表空间 94
§7.4 Oracle系统所在服务器的独立性 94
第9章 项目分析、设计与管理 94
§9.1 项目分析要点考虑 95
§9.1.1 对应用系统类型的认识 95
§9.1.2 软件项目计划 95
§9.1.3 开发环境资源的配置 96
§9.1.4 各种人员的招募要求 96
§9.1.5 开发组工作的开始 96
§9.2 应用系统运行环境分析 96
§9.2.1 数据库服务器性能的考虑 97
§9.2.2 数据库服务器硬盘空间的估计 97
§9.2.3 应用服务器的考虑 98
§9.2.4 网络带宽的考虑 98
§9.4 数据库逻辑设计 98
§9.4.1 系统表空间 98
§9.4.2 数据表空间和索引空间分开 99
§9.4.3 回滚段设置 99
§9.4.4 临时表空间设计规划 100
§9.4.5 数据文件和日志文件在不同磁盘上 101
§9.5 数据库物理设计 101
§9.5.1 定量估计 101
§9.5.2 表空间与数据文件 102
§9.5.3 物理设计原则 103
§9.5.4 数据库物理设计内容和步骤 103
§9.6 开发过程管理 104
§9.6.1 应用软件生命周期阶段的管理 105
§9.6.2 成功的三要素 106
§9.6.3 培植过程 106
§9.6.3.1 定义环境 107
§9.6.3.2 角色定义 107
§9.6.3.3 方案报告 107
§9.7 确定应用程序类型 108
§9.7.1 在线事务处理(OLTP) 108
§9.7.2 决策支持系统(DSS) 109
§9.7.3 多用途应用程序 109
§9.8 注册应用程序 109
§9.9 Oracle配置 110
§9.9.1 分布式系统 110
§9.9.2 多层系统 110
§9.9.3 Oracle并行服务器 110
§9.10 Oracle数据库增长的规划 111
§9.10.1 不同增长表的配置 111
§9.10.2 对增长表进行规划和分析 112
第10章 数据库结构设计要点 113
§10.1 分析阶段的对表的理解 113
§10.2 正确的主键字段的选择 113
§10.3 字段类型及长度的选择 113
§10.3.1 如果能用字符型就不要用数字型 114
§10.3.2 相互产生运算的数字型字段长度和精度要一致 114
§10.3.2 不要为了节省空间而将字段的长度缩小或拆开 115
§10.4 将LOB类型的字段与其它的类型分开 115
§10.5 采用具有编码的设计方法 115
§10.6 建立公共字典表 115
§10.7 哪种类型的表设为cache 方式 116
§10.8 数据表和索引分开原则 116
§10.9 是否采用簇和分区 116
§10.10 表和索引的空间预分配 116
§10.11 确定数据库对象存储大小 117
§10.11.1 非簇表的大小计算 117
§10.11.2 索引大小计算 119
§10.11.3 簇表的大小计算 120
§10.11.4 位图索引的大小计算 122
§10.12 应用类型设计考虑要点 122
§10.13 应用系统性能优化原则 123
§10.13.1 分而治之 123
§10.13.2 预分配,预支取,预编译 123
§10.13.3 筛选 124
§10.13.4 大量(bluk),块和批处理 124
§10.13.5 对应用适当的分段 124
§10.13.6 优化目标 124
§10.13.7 优化步骤和方法 125
§10.13.8 使用ORACLE 诊断工具 126
第三部分 ORACLE应用系统开发优化 128
第11章 诊断与调整工具- 128
§11.1 警告日志文件 128
§11.1.1 警告日志文件管理 128
§11.1.2 参考警告日志文件调整 128
§11.2 后台进程与跟踪文件 128
§11.3 用户跟踪文件 128
§11.4 动态性能视图 129
§11.5 UTLBSTAT和UTLESTAT 129
§11.6 STATSPACK 129
§11.7 Oracle等待事件 129
§11.8 Oracle诊断和调整包 129
第12章 优化SQL语句 130
§12.1 SQL语句的优化方法 130
§12.1.1 重新构造语句 130
§12.1.2 调整或使触发器无效 137
§12.1.3 重组数据 137
§12.2 优化目标 137
§12.2.1 优化序列SQL语句 137
§12.2.2 优化并行执行 138
§12.2.3 调整OLTP应用 138
§12.3 实际优化例子 139
§12.3.1 避免基于规则优化器技术 139
§12.3.2 索引代价 139
§12.3.3 分析统计数据 139
§12.3.4 避免复杂的表达式 142
§12.3.5 处理复杂的逻辑 143
§12.3.6 一般的SQL语句优化 143
§12.4 SQL语句优化技巧 144
§12.4.1 对所有SQL语句执行EXPLAIN_PLAN 145
§12.4.2 磁盘读和缓冲区获取 146
§12.4.3 判定式崩溃 146
§12.5 使用EXISTS和IN 148
§12.6 分离事务(Discrete Transactions ) 149
§12.7 测试SQL语句性能 151
§12.7.1 SQL_Trace实用工具 151
§12.7.2 TKPROF实用程序 151
§12.8 使用SQL_Trace和TKPROF 151
§12.8.1 设置跟踪初始化参数 152
§12.8.2 启用SQL_Trace实用工具 152
§12.8.3 用TKPROF格式化跟踪文件 153
§12.8.4 解释TKPROF输出文件 155
§12.8.5 解释计划(Explain Plan)策略 156
§12.8.6 AUTOTRACE 实用程序 157
第13章 数据访问方法 160
§13.1 使用索引的访问方法 161
§13.1.1 何时创建索引 161
§13.1.2 索引列和表达式的选择 161
§13.1.3 选择复合索引的主列 161
§13.1.4 要用可选择性索引 162
§13.1.5 测量索引的可选择性 162
§13.1.6 避免全表扫描 163
§13.1.7 编写避免使用索引的语句 163
§13.1.8 编写使用索引的语句 164
§13.1.9 重新构造索引 164
§13.1.10 压缩索引 165
§13.2 创建索引和使用索引 165
§13.2.1 使用函数索引 165
§13.2.2 使用位图索引- 166
§13.2.3 使用B树索引- 166
§13.2.4 使用反向键索引- 166
§13.2.5 使用索引组织表 166
§13.3 使用范围索引 166
§13.4 使用簇 - 167
§13.5 使用Hash 簇 - 168
§13.5.1 何时创建Hash 簇 168
§13.5.2 创建Hash 簇 168
§13.6 使用实体视图 - 169
§13.6.1 实体视图概念 169
§13.6.2 创建实体视图 169
§13.6.3 使用实体视图 169
§13.6.4 管理实体视图 169
第14章 优化器(Optimizer)简介 170
§14.1 Oracle优化器 170
§14.2 SQL处理体系结构 171
§14.2.1 解析程序 171
§14.2.2 优化程序 172
§14.2.3 行源程序产生器 172
§14.2.4 SQL执行 172
§14.3 EXPLAIN PLAN 172
§14.4 选择优化器路径及目标 172
§14.4.1 OPTIMIZER_MODE初始参数 173
§14.4.2 数据字典中的统计数据 173
§14.4.3 ALTER SESSION语句的OPTIMIZER_GOAL参数 174
§14.4.4 关于提示的改变目标 174
§14.5 基于代价优化器(CBO) 174
§14.5.1 CBO结构调整 175
§14.5.2 CBO需求 175
§14.5.3 使用CBO 176
§14.5.4 CBO访问路径 176
§14.6 基于规则(RBO)的优化程序 177
§14.6.1 RBO访问路径 178
§14.7 优化器操作 179
§14.7.1 可优化的SQL语句 180
§14.7.2 优化程序操作 180
§14.7.3 基于规则或基于代价优化方法 180
§14.8 优化连接* 181
§14.8.1 嵌套连接- 181
§14.8.2 合并连接- 183
第15章 使用优化器提示 183
§15.1 提示(Hint)概念 184
§15.1.1 提示的指定 184
§15.2 使用提示 185
§15.2.1 提示的指定 185
§15.2.1.1 ALL_ROWS 186
§15.2.1.2 FIRST_ROWS 186
§15.2.1.3 CHOOSE 186
§15.2.1.4 RULE 187
§15.2.2 关于访问方法的提示 187
§15.2.2.1 FULL 187
§15.2.2.2 ROWID 188
§15.2.2.3 CLUSTER 188
§15.2.2.3 HASH 188
§15.2.2.4 INDEX 188
§15.2.2.5 INDEX_ASC 189
§15.2.2.6 INDEX_COMBINE 189
§15.2.2.7 INDEX_JOIN 189
§15.2.2.8 INDEX_DESC 189
§15.2.2.9 INDEX_FFS 190
§15.2.2.10 NO_INDEX 190
§15.2.2.11 AND_EQUAL 190
§15.2.2.12 USE_CONCAT 190
§15.2.2.13 NO_EXPAND 190
§15.2.2.14 REWRITE 191
§15.2.2.15 NOWRITE 191
§15.2.3 关于连接次序的提示 191
§15.2.3.1 ORDERED 191
§15.2.3.2 STAR 191
第四部分 ORACLE系统调整 194
第16章 调整信息的来源 194
§16.1 警告日志文件 194
§16.1.1 警告日志文件信息 194
§16.1.2 管理警告日志文件 196
§16.2 后台、事件及用户跟踪文件 196
§16.2.1 后台跟踪文件 196
§16.2.2 事件跟踪 197
§16.2.3 用户跟踪文件 197
§16.2.4 管理跟踪文件 200
§16.3 性能调整视图 200
§16.3.1 常用性能优化视图V$_ 200
§16.3.2 常用性能优化视图DBA_ 201
§16.3.3 视图查询例子 201
§16.4 Oracle支持的调整脚本 202
§16.4.1 UTLBSTAT.SQL与UTLESTAT.SQL 202
§16.4.2 解释REPORT.TXT内容 203
§16.5 Oracle的STATSPACK 203
§16.6 图形性能调整工具 203
§16.6.1 Oracle 企业管理器/Oracle DBA 管理包 203
§16.6.2 OEM使用* 203
第17章 STATSPACK工具 204
§17.1 STATSPACK介绍 204
§17.1.1 STATSPACK与UTLBSTAT/UTLESTAT比较 204
§17.1.2 STATSPACK工作流程 204
§17.2 配置STATSPACK 205
§17.3 statspack安装 205
§17.3.1 交互安装STATSPACK 205
§17.3.2 批模式安装STATSPACK 206
§17.4 使用statspack 206
§17.4.1 取得STATSPACK快照 206
§17.4.2 自动进行统计搜集 207
§17.4.3 运行statspack性能报告 208
§17.4 删除statspack 209
§17.5 statspack支持的脚本和文档 209
第18章 动态性能视图与性能诊断 211
§18.1 当前会话状态视图 211
§18.2 计数和积累视图 211
§18.3 信息视图 212
§18.4 当前统计值与变化比率 213
§18.4.1 当前统计值与变化比率 213
§18.4.2 找出统计值的变化率 213
§18.5 有计划地调整系统的因子 214
§18.6 不足的CPU 214
§18.7 不足的内存 215
§18.8 I/O限制 215
§18.9 网络限制 215
§18.9 软件限制 216
第19章 调整内存分配 217
§19.1 理解内存分配要求 217
§19.2 监测内存分配问题 217
§19.3 调整操作系统内存需求 218
§19.4 调整Redo Log Buffer 219
§19.4.1观察Redo Log Buffer是否有竞争 219
§19.4.1.1 使用V$SYSSTAT 219
§19.4.1.2 使用V$SESSION_WAIT 221
§19.4.1.3 使用REPORT.TXT输出 222
§19.4.1.4 使用OEM监示Redo Log Buffer* 222
§19.4.1.5 使用V$SYSTEM_EVENT 223
§19.4.1.6 使用警告日志(Alert Log) 223
§19.4.2 调整Redo Log Buffer性能 223
§19.4.2.1 将Redo Log Buffer参数改大 223
§19.4.2.2 改善检查点效率 224
§19.4.2.3 加速归档处理 224
§19.4.2.4 减少重做日志产生 224
§19.5 调整共享池 225
§19.5.1 理解共享池的用途 225
§19.5.2 缓存语句的好处 225
§19.5.3 Shared Pool 部件 226
§19.5.4 测试Shared Pool 的性能 227
§19.5.5 用OEM测试Shared Pool 的性能- 231
§19.5.6 改善Shared Pool 的性能 231
§19.5.6.1 较大的Shared Pool 231
§19.5.6.2 给大的PL/SQL 语句一个空间 231
§19.5.6.3 在内存中保持PL/SQL 代码 232
§19.5.6.4 鼓励代码重用 233
§19.5.6.5 建立大的POOL 233
§19.6 调整数据缓冲区 234
§19.6.1 理解数据库缓冲区 234
§19.6.1.1 LRU列表 234
§19.6.1.2 脏(Dirty)列表 234
§19.6.1.3 用户服务器进程 235
§19.6.1.4 数据库写进程 235
§19.6.2 测试数据库缓冲区 235
§19.6.2.1 查询V$SYSSTAT 235
§19.6.2.2 使用V$SESS_IO和V$SESSION 236
§19.6.2.3 使用REPORT.TXT* 236
§19.6.2.4 使用OEM工具* 236
§19.6.3 改善数据库缓冲区性能* 236
§19.6.3.1 将参数改大些 236
§19.6.3.2 使用多个Buffer Pool 237
§19.6.3.3 将表缓存在内存中 242
第20章 调整物理I/O 243
§20.1 理解I/O问题 243
§20.1.1 调整 I/O: 自顶向下和自底向上 243
§20.1.2 分析 I/O需求 244
§20.2 调整数据文件I/O性能 245
§20.2.1 测试数据文件 I/O 245
§20.2.2 改善数据文件 I/O 246
§20.3 调整数据库写入器性能 248
§20.3.1 测试DBWR0 I/O 248
§20.3.2 改善DBWR0 I/O 250
§20.4 调整段的I/O 250
§20.4.1 理解 块I/O 251
§20.4.2 改善段块I/O 251
§20.5 调整checkpoint 和CKPT 的I/O 253
§20.6 调整归档及ARCO的I/O 253
§20.6.1 测量归档和ARCO I/O 254
§20.6.2 改善归档和ARCO I/O 255
§20.7 调整排序的I/O 256
§20.7.1 理解排序活动 256
§20.7.2 改善排序I/O 257
第21章 Oracle系统运行中的资源竞争 259
§21.1 理解锁存器竞争 259
§21.1.1 锁存器概念 259
§21.1.2 锁存器的类型 260
§21.2 检测锁存器竞争问题 260
§21.2.1 从V$LATCH中查询锁存器的竞争 261
§21.2.2 用STATSPACK报告锁存器的竞争 262
§21.3 减少锁存器竞争 262
§21.3.1 减少锁存器竞争的主要点 262
§21.3.2 共享池与库高速缓存锁存器 264
§21.3.3 减少重做日志缓冲区锁存器竞争 264
§21.3.3.1 检查重做日志竞争 268
§21.3.3.2 分析重做日志竞争 269
§21.3.3.3 减少锁存器的竞争 270
§21.3.4 减少对LRU锁存器的竞争 270
§21.4 减少*列表的竞争 270
§21.4.1 检测free list是否存在竞争 271
§21.4.2 调整free list以减少竞争 272
§21.5 减少对并行服务器的竞争 273
§21.5.1 确定并行服务器存在竞争 273
§21.5.2 降低并行服务器竞争 273
第23章 各种锁和完整性 274
§22.1 锁的概念 274
§22.2 分析v$lock 277
§22.2.1 用lock table锁定表 278
§22.2.2 会话更新专用锁定表的行- 279
§22.2.3 一个会话试图更新另一个会话更新过的行 279
§22.2.4 显式锁下的并发例子- 280
§22.3 监控系统中的锁 281
§22.3.1 查询V$LOCK是否存在争用 282
§22.3.2 查询V$LOCKED_OBJECT是否存在争用 283
§22.3.3 查询DBA_WAITERS是否存在争用 284
§22.3.4 查询DBA_BLOCKERS是否存在争用 285
§22.4 管理锁的竞争 285
§22.4.1 查询产生锁的SQL语句 286
§22.4.2 怎样释放锁 286
§22.5程序死锁的产生与避免 287
§22.5.1 程序死锁原因 287
§22.5.2 避免程序死锁方法 288
§22.5.3 程序死锁例子 288
§22.5.4 避免程序死锁例子 290
第23章 调整回滚段竞争 292
§23.1 回滚段的用途 292
§23.2 监测回滚段的竞争 292
§23.3 调整回滚段的竞争 294
§23.3.1 最小化回滚段的扩展 294
§23.3.2 分布回滚段的I/O 294
§23.3.3 调整回滚段的存储参数 295
§23.3.4 使用较小的回滚段 295
§23.4 Oracle9i的自动撤消管理 296
§23.4.1 自动管理撤消 296
§23.4.2 自动撤消管理表空间的建立 296
§23.4.3 检测自动撤消管理表空间的使用 297
第25章 调整共享服务器 298
§24.1 查询调度程序视图监测竞争 299
§24.2 降低调度程序竞争 299
§24.3 降低对共享池的竞争 301
§24.4 确定最佳的调度程序和共享服务器数 303
第25章 操作系统与网络调整* 305
§25.1 理解操作系统性能问题 305
§25.1.1操作系统与硬件高速缓存 305
§25.1.2原始设备系统 305
§25.1.3进程调度程序 306
§25.1.4操作系统资源管理器 306
§25.2 检测操作系统性能问题 306
§25.3 解决操作系统性能问题- 307
§25.3.1调整服务器内存相关的参数 307
§25.3.2基于UNIX系统的执行 308
§25.3.3基于NT系统的执行 308
§25.3.4基于大型系统的执行 309
§25.4 网络系统性能问题 309
§25.4.1 网络的连接模式 309
§25.4.1.1 多线程服务配置 309
§25.4.1.2 注册检查 311
§25.4.1.3 预产生专用服务配置 312
§25.4.2 检测网络故障 313
§25.4.2.1 使用动态数据字典检测 313
§25.4.2.2 了解网络环境的速率 313
§25.4.3 解决网络故障 314
§25.4.3.1 分析瓶颈所在 314
§25.4.3.2 分析瓶颈信息 315
§25.4.3.3 调整阵列接口 316
§25.4.3.4 调整数据单元缓冲区大小 316
§25.4.3.5 在protocol.ora中加TCP.NODELAY 316
§25.4.3.6 使用连接管理器 316
第27章 数据库关闭/启动工作 317
§27.1 删除或归档旧的跟踪文件和跟踪日志 317
§27.2 重新命名警报日志 317
§27.3 产生创建控制文件命令* 318
§27.4 驻留程序包 318
§27.5 创建拥有者-对象的位图 319
§27.6 重新计算统计资料 320
§27.7 缩小扩展超过最佳值的回滚段* 320
第48章 调整实例恢复性能*(tuning 24) 321
§48.1 理解实例恢复* 321
§48.2 调整实例延迟及碰撞恢复* 321
§48.3 监示实例恢复* 321
§48.4 实例恢复阶段调整* 321
第49章 应用程序性能调整* 321
§49.1 在基表上创建索引 321
§49.1.1 何时创建B*树索引 321
§49.1.2何时创建位图树索引 322
§49.1.3何时创建逆关键字索引 322
§49.1.4何时不要建索引 322
§49.2 在select 语句上使用索引 323
§49.2.1评估索引的使用情况 323
§49.2.2避免不使用索引的SQL语句 323
§49.3 把具有大量数据I/O的处理放在服务器上 324
§49.4 在内存中保持PL/SQL 代码 324
§49.5 鼓励代码重用 325
§49.6 将表缓存在内存中 326
§49.7 了解SQL语句的速度差别 326
§49.8 在表结构设计和select语句中用decode 327
§49.9 将LOB类型单独存放 328
§49.10 分而治之 329
第50章 内存和CPU的优化 330
§50.1 应用类型 330
§50.1.1 oracle 如何响应OLTP数据访问请求 330
§50.1.2 oracle 如何响应批数据访问请求 330
§50.2 如何计算命中率 331
§50.3 影响命中率的因素 332
§50.3.1 字典表活动 332
§50.3.2 临时段的活动 332
§50.3.3 回滚段的活动 332
§50.3.4 索引活动 333
§50.3.5 表扫描 333
§50.3.6 OLTP和批应用类型 333
§50.4 内存和CPU的优化调整问题 334
§50.5 为应用选择目标命中率 334
§50.6 内存和CPU 的要求 335
第五部分 ORACLE系统高级用法介绍 340
第52章 安全管理+ 341
§52.1 用户验证 341
§52.1.1 数据库验证 341
§52.1.2 外部验证 341
§52.1.3 企业验证 341
§52.2 数据库权限管理 341
§52.2.1 理解安全角色 341
§52.2.2 理解管理 341
§52.2.3 数据库验证 341
§52.3 ORACLE 企业安全管理器 341
§52.4 监控数据库资产 341
§52.4.1 审计登录 341
§52.4.2 审计数据库操作 341
§52.4.3 审计数据库对象上的DML 341
§52.4.4 管理审计 341
§52.5 保护数据完整性 342
§52.6 Oracle 8I 因特网安全 342
§52.6.1 使用数字证书 342
§52.6.2 使用RADIUS协议的高级验证 342
§52.7 防火墙支持 342
§52.8 好的粒状存取控制 342
§52.9 数据库资源管理器 342
§52.10 硬件安全 342
§52.11 恢复丢失的数据 342
§52.11.1 操作系统备份 342
§52.11.2 逻辑备份 342
第53章 分布式数据库管理 342
§53.1 分布式数据库概念 343
§53.1.1 同质分布数据库 343
§53.1.2 异类分布数据库系统 344
§53.1.3 客户/服务器数据库结构 344
§53.2 数据库连接 344
§53.2.1 为什么使用数据库连接 344
§53.2.2 数据库连接中的全局名称 344
§53.2.3 数据库连接中的命名 345
§53.2.4 数据库连接中的类型 345
§53.3 分布数据库管理 346
§53.3.1 站点自治 346
§53.3.2 分布数据库安全 346
§53.3.3 审计数据库连接 347
§53.3.4 管理工具 347
§53.4 分布数据库中事务处理 348
§53.4.1 远程SQL语句 348
§53.4.2 分布SQL语句 349
§53.4.3 远程共享SQL语句和分布语句 349
§53.4.4 远程事务 349
§53.4.5 分布事务 350
§53.4.6 两阶段提交机制 350
§53.4.7 数据库连接名称的解析 350
§53.5 分布数据库应用开发 351
§53.5.1 分布数据库系统的透明性 351
§53.5.2 分布查询的优化 352
§53.6 民族语言的支持 352
§53.7 管理分布系统全局名称 352
§53.7.1 理解全局数据库名字版式 352
§53.7.2 确定全局数据库名字执行 353
§53.7.3 浏览全局数据库名 353
§53.7.4 在全局数据库名中改变域名 354
§53.7.5 改变全局数据库名 354
§53.8 建立数据库连接 357
§53.8.1 建立数据库连接的权限 357
§53.8.2 指定数据库连接类型 357
§53.8.3 指定连接用户 358
§53.9 建立共享数据库连接 359
§53.9.1 建立共享数据库连接 359
§53.9.2 管理数据库连接 360
§53.10 浏览数据库连接 361
§53.11 建立位置透明性 364
§53.12 分布事务 364
§53.13 设置分布事务初始化参数 364
§53.14 查看分布事务信息 365
§53.15 处理怀疑的事务 366
§53.16 手工处理处理怀疑的事务 366
第54章 复制管理- 367
§54.1 复制概念 367
§54.1.1 复制对象、组及站点 367
§54.1.2 复制环境类型 368
§54.1.3 复制环境管理工具 369
§54.2 主机概念与结构 370
§54.2.1 什么是主机复制 370
§54.2.1 主群组 371
§54.2.2 快照组 371
§54.3 传播的类型 371
§54.3.1 异步传播 371
§54.3.2 同步传播 371
§54.4 复制的类型 371
§54.4.1 行级复制 371
§54.4.2 串行传播 371
§54.4.3 并行传播 371
§54.4.4 过程化复制 371
§54.5 冲突解决 371
§54.5.1 冲突的类型 371
§54.5.2 避免冲突 371
§54.5.3 鉴别冲突 371
§54.5.4 解决冲突 371
§54.6 快照 371
§54.7 一些有用的工具 372
§54.8 ORACLE8 和ORACLE8I的新功能 372
§54.8.1 ORACLE8复制的新功能 372
§54.8.2 ORACLE8I复制的新功能 372
§54.9 小结 372
第56章 Oracle并行服务器安装与配置 373
§56.1 硬件环境概述 373
§56.2 Oracle并行服务器 374
§56.2.1 Oracle并行服务器组成 374
§56.2.2 Oracle动态并行执行 375
§56.3 Oracle并行服务器 375
§56.3.1 Oracle并行服务器概述 375
§56.3.2 Oracle并行服务器软件组成 376
§56.3.3 Oracle并行服务器安装概述 376
§56.3.3 数据库配置概述 377
§56.4 Oracle并行服务器安装前任务 377
§56.4.1 并行服务器节点硬件或软件环境需求 377
§56.4.2 企业管理器的硬件或软件环境需求 377
§56.4.3 共享磁盘子系统 378
§56.5 设置原始设备 378
§56.6 安装前步骤 381
§56.7 安装过程 382
§56.8 Oracle的安装配置 382
§56.9 监听器(listener.ora ) 383
§56.10 目录服务访问(ldap.ora ) 384
§56.11 Net服务名(tnsnames.ora ) 384
§56.12 PROFILE文件(SQLNET.ORA ) 386
§56.13 安装之后建立数据库 387
§56.13.1 用Oracle数据库配置助理建立数据库 387
§56.13.2 用手工建立数据库 388
§56.14 以并行模式启动立数据库 388
§56.15 确认实例在运行 389
§56.16 Oracle并行服务器客户端配置 389
§56.17 Oracle并行服务器参数文件 390
§56.18 配置恢复管理器 392
§56.19 为RMAN配置目录 392
§56.20 并行服务器管理结构 395
§56.21 并行实例的启动 395
§56.22 并行实例的关闭 396
第57章 并行环境应用设计 397
§57.1 分析应用 397
§57.1.1 只读的表 397
§57.1.2 随机的查询与修改 397
§57.1.3 插入、修改与删除 397
§57.1.4 建立逆序键索引 398
§57.1.5 应用分区技术 398
§57.2 并行环境的数据库设计技术 400
§57.2.1 数据库操作、块类型及访问控制 400
§57.2.2 全局缓冲区的一致性工作和块种类 400
§57.2.3 产生数据库对象参数建议 401
§57.2.4 索引问题 401
§57.2.5 使用序列号 401
§57.2.6 逻辑和物理数据库布局 402
§57.2.6 全局缓存锁分配 403
§57.3 并行缓存设置 403
§57.3.1 并行缓存管理锁的设置 403
§57.3.2 Oracle 如何给块分配锁 404
§57.4 并行服务器应用的调整- 405
§57.4.1 调整并行服务器概述 406
§57.4.2 统计并行服务器性能 406
§57.4.3 确定同步代价 407
§57.4.4 初始化并行执行参数 408
§57.4.5 普通参数的调整 409
§57.4.5.1 并行操作中资源限制的参数 409
§57.4.5.2 影响资源消耗的参数 411
§57.4.5.3 与I/O相关的参数 412
第58章 并行查询管理 414
§58.1 Oracle并行选项、管理及调整 414
§58.1.1 Oracle并行选项 414
§58.1.2 Oracle并行选项设置 414
§58.1.2.1 用户的限制设置 414
§58.1.2.2 分配查询服务器进程 415
§58.1.2.3 并行度及其设置 415
§58.1.2.4 关于提示和查询提示强行并行 417
§58.1.2.5 监视并行查询情况 417
§58.2 并行数据加载(SQL*Loader) 417
§58.3 并行恢复 418
§58.4 并行SQL执行 418
§58.5 可以并行的SQL操作 419
§58.6 理解并行DML 420
§58.7 并行创建数据库表和索引 420
§58.7.1 并行创建数据库表 421
§58.7.2 并行创建索引 422
§58.8 并行性能有关的视图 422
第60章 高级安全管理 423
§120.1 Oracle的高级安全 423
附录A 动态性能视图(V$) 423
附录B 初始化参数 513
附录C 基本概念解释 514
C.1 分页是什么?,如何避免分页?* 514
C.2 检查点是什么?* 514
C.3 什么是模式? 514
C.4 B树索引 514
C.5 位图索引* 515
C.6 Oracle的锁机制 515
C.6.1 自动锁和显式锁 515
C.6.2 锁的级别 516
C.6.3 DML锁 516
C.6.4 DDL锁 518
C.6.5 锁存器与内部锁(Latches and Internal Locks) 518
C.7 Oracle的哈希簇(HASH CLUSTER) 519
C.7.1 在Hash Cluster中数据是如何存放的 519
C.7.2 Hash 键值 521
C.7.3 Hash 函数 521
C.8 Oracle的嵌套表(Nested table) 523
- 上一篇: php_mongo.dll各版本
- 下一篇: db2常用命令大全一看就明白