Oracle高性能SQL调整PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:(美)Donald K.Burleson著;刘砚,黄春等译
- 出 版 社:北京:机械工业出版社
- 出版年份:2002
- ISBN:7111097556
- 页数:397 页
第一部分 背景知识 1
第1章 SQL简介 1
1.1 SQL的基本特征 1
1.2 SQL起源 3
1.2.1 SQL模型 4
1.2.2 select操作 4
1.2.3 project操作 4
1.2.4 join操作 5
1.3 SQL优化器 5
1.4 SQL调整的目标 5
1.5 作为Oracle调整步骤之一的SQL调整 6
1.6 SQL调整的障碍 8
1.7 SQL调整过程 9
1.7.1 定位使用频繁的SQL语句 10
1.7.2 调整SQL语句 11
1.7.3 调整持久化 11
1.8 SQL调整的目标 12
1.9 SQL调整工具箱 13
1.10 结论 18
第2章 Oracle SQL扩展简介 19
2.1 Oracle内部视图 19
2.2 Oracle内置函数 23
2.3 Oracle SQL和面向对象扩展 26
2.4 挑战关系原则——重复数据项列表 29
2.4.1 varray表 30
2.4.2 表嵌套 33
2.4.3 SQL对象扩展的性能 34
2.5 结论 34
第3章 理解SQL执行 36
3.1 解析SQL语句 36
3.1.1 重新书写查询 37
3.1.2 在Oracle8i和Oracle9i中使用cursor_sharing 38
3.2 生成执行计划 40
3.1.3 减少SQL解析的技术 40
3.2.1 表访问方式 41
3.2.2 索引访问方式 43
3.2.3 连接操作 45
3.3 对SQL结果集进行排序 49
3.4 结论 50
第4章 SQL优化器简介 51
4.1 基本的优化器技术 51
4.1.1 基于规则的优化器 52
4.1.2 基于成本的优化器 54
4.2.1 rule模式 56
4.2.2 choose模式 56
4.2 优化器模式 56
4.2.3 first_rows模式 57
4.2.4 all_rows模式 57
4.2.5 更快的执行速度与最小的资源消耗 57
4.3 基于规则优化的调整 58
4.3.1 更改基于规则的驱动表 59
4.3.2 如果基于规则的优化器没有使用正确的索引 59
4.4 基于成本优化的调整 60
4.4.1 调用基于成本的优化器 61
4.4.2 为CBO收集统计资料 62
4.5 决定默认优化器模式 63
4.6 迁移到基于成本的优化器 64
4.6.1 对开发人员进行重新培训 64
4.6.2 选择基于成本的优化器的思想 65
4.7 结论 67
第5章 SQL内部处理 68
5.1 共享SQL区域和专用SQL区域 68
5.2 SQL的SGA统计资料 69
5.3 程序库缓存的内部情况 70
5.3.1 程序库缓存中可以多次使用的SQL 70
5.3.2 监控程序库缓存不足率 71
5.3.3 使用STATSPACK监控程序库缓存中的对象 72
5.3.4 程序库缓存的STATSPACK报告 73
5.4 调整Oracle SQL排序 74
5.5 确定程序库缓存中具有高影响力的SQL语句 79
5.6 关于程序库缓存中SQL的报告 83
5.6.1 使用带有STATSPACK的access.sql脚本 84
5.6.2 access.sql报告 84
5.6.3 全表扫描报告 85
5.6.4 索引范围扫描报告 86
5.6.5 索引惟一性扫描报告 86
5.6.6 完全索引扫描报告 87
5.6.7 access.sql报告的局限性 87
5.7 结论 88
6.1 SQL调整和全表扫描 89
第6章 调整SQL表访问 89
6.1.1 决定全表扫描的阈值 90
6.1.2 查找全表扫描 90
6.1.3 优化器如何选择全表扫描 91
6.1.4 当CBO选择了错误的全表扫描 92
6.1.5 预防不必要的全表扫描 93
6.2 借助于索引的表访问 97
6.3 更改表访问方式 98
6.3.1 将索引由惟一索引更改为非惟一索引 99
6.3.2 重新书写SQL语句以更改表访问方法 100
6.4 重新排序表记录以减少输入输出 102
6.4.1 使用索引簇重新排序记录 104
6.4.2 使用CTAS重新排序记录 106
6.5 Oracle存储参数和表访问性能 108
6.5.1 pctfree存储参数 108
6.5.2 pctused存储参数 109
6.5.3 freelists存储参数 109
6.5.4 OPS的freelist groups存储参数 110
6.5.5 存储参数规则总结 110
6.6 空闲列表管理和表访问性能 111
6.6.1 空闲列表的链接和取消链接 112
6.7 结论 114
6.6.2 减少空闲列表的重新链接 114
第二部分 SQL调整基础 115
第7章 Oracle SQL调整的过程 115
7.1 SQL调整的目标 115
7.2 SQL调整步骤 116
7.3 第一步:确定具有高影响力的SQL语句 117
7.3.1 SQL语句分级 117
7.3.2 确定使用频繁的SQL语句 118
7.3.3 使用STATSPACK指定具有高影响力的SQL 119
7.3.4 来自程序库缓存的SQL报告 122
7.3.5 使用第三方工具定位有问题的SQL 126
7.4 第二步:抽取和解释SQL语句 128
7.5 第三步:调整SQL语句 129
7.6 SQL调整实例 130
7.7 使用第三方工具快速进行SQL调整 132
7.8 结论 134
第8章 理解Oracle SQL工具 135
8.1 解释SQL语句 135
8.2 运行快速SQL跟踪 140
8.3 TKPROF工具 141
8.3.1 为SQL跟踪设置环境 141
8.3.2 生成SQL跟踪文件 142
8.3.3 格式化跟踪文件 144
8.3.4 TKPROF报告 145
8.4 Oracle专家中心SQL分析报告 147
8.5 有关程序库缓存中所有SQL的报告 149
8.5.1 使用带有STATSPACK的access.sql脚本 150
8.5.2 access.sql报告 151
8.6 结论 153
第9章 定位重要的SQL语句 154
9.1 建立实例范围的SQL基线 154
9.1.1 设置默认的Optimizer_Mode 154
9.1.2 默认优化器模式持久化 155
9.1.3 提高全表扫描速度的实例范围参数 156
9.1.4 其他影响SQL执行的初始化参数 156
9.2 什么是重要的SQL语句 157
9.1.5 运行SQL基线测试 157
9.3.1 指定高频使用的SQL语句 158
9.3 抽取需要调整的重要SQL语句的技术 158
9.3.2 抽取SQL语句的脚本 159
9.4 SQL语句分级 160
9.4.1 查找不包含提示的新SQL语句 160
9.4.2 当使用优化器计划稳定性时查找新SQL语句 163
9.5 结论 163
第10章 调整全表扫描和并行查询 164
10.1 评估全表扫描的合法性 164
10.2 查找要进行Oracle并行查询的表 165
10.3.1 调用Oracle并行查询 166
10.3 Oracle并行查询简介 166
10.3.2 Oracle并行查询初始化参数 167
10.3.3 设置最优化的并行度 168
10.3.4 使用并行查询提示 172
10.3.5 并行查询和表连接 173
10.4 监控Oracle并行查询的使用 179
10.4.1 监控并行执行活动 179
10.4.2 使用STATSPACK监控Oracle并行查询 180
10.4.3 使用V$视图监控Oracle并行查询 181
10.4.4 并行查询和分布表 182
10.5 结论 183
第11章 优化Oracle SQL语句排序 185
11.1 有关Oracle排序的初始化参数 185
11.1.1 sort_area_size参数 186
11.1.2 sort_area_retained_size参数 186
11.1.3 sort_multiblock_read_count参数 187
11.1.4 已废弃的Oracle8排序参数 187
11.1.5 优化器模式和排序活动 187
11.2 通过添加索引避免排序 187
11.3 不必要的排序 188
11.4 监控排序活动 188
11.5 结论 191
第12章 使用Oracle提示进行调整 192
12.1 提示简介和历史 192
12.2 在SQL查询中指定提示 192
12.3 优化器提示 193
12.3.1 all_rows提示 194
12.3.2 rule提示 194
12.3.3 first_rows提示 194
12.4 表连接提示 194
12.4.1 use_hash提示 194
12.4.2 use_merge提示 196
12.4.3 use_nl提示 196
12.4.4 star提示 197
12.5.1 merge_aj提示 198
12.5 表反连接提示 198
12.5.2 hash_aj提示 200
12.6 Index提示 201
12.6.1 Index提示简介 201
12.6.2 index_join提示 202
12.6.3 and_equal提示 202
12.6.6 index_desc提示 204
12.6.7 index_combine提示 204
12.6.5 no_index提示 204
12.6.4 index_asc提示 204
12.6.8 index_ffs提示 206
12.6.9 use_concat提示 207
12.7 Parallel提示 209
12.7.1 parallel提示简介 209
12.7.2 pq_distribute提示 210
12.7.3 noparallel提示 211
12.8 表访问提示 211
12.8.1 full提示 211
12.8.2 簇表提示 211
12.8.4 nocache提示 212
12.8.5 ordered提示 212
12.8.3 no_expand提示 212
12.8.6 ordered_predicates提示 213
12.8.7 push_subq提示 213
12.9 子查询中的提示 213
12.10 结论 216
第13章 使用优化器计划稳定性进行调整 217
13.1 存储框架简介 217
13.1.1 优化器计划稳定性背后的思想 218
13.1.2 在向CBO迁移时使用优化器计划稳定性 219
13.2 使用存储框架要做的准备 219
13.2.3 创建框架包 220
13.2.2 检查重要的初始化参数 220
13.2.1 设置use_stored_outlines命令 220
13.2.4 创建存储框架表空间 221
13.3 如何创建和修改存储框架 222
13.3.1 确定最快的执行计划 222
13.3.2 为最初的查询创建存储框架 224
13.3.3 为带有提示的查询创建存储框架 225
13.3.4 交换存储框架 227
13.4 管理存储框架 228
13.4.1 为存储框架使用字典视图和表 228
13.4.2 使用框架包 230
13.4.3 管理存储框架的分类 231
13.5 结论 234
第14章 基于成本优化器的调整 235
14.1 统计资料和基于成本的优化 235
14.1.1 动态和静态CBO执行计划思想 235
14.1.2 收集统计资料的频率 236
14.1.3 为CBO收集统计资料 238
14.2 基于成本优化和SQL调整 239
14.2.1 基于成本的表连接 240
14.2.2 调整带有子查询的基于成本的SQL语句 241
14.2.3 调整复杂的布尔查询 242
14.3.1 影响表连接的初始化参数 248
14.3 影响基于成本优化器行为的初始化参数 248
14.3.2 影响CBO索引行为的初始化参数 253
14.4 结论 253
第15章 基于规则优化器的调整 255
15.1 调用基于规则的优化 255
15.2 使用choose作为默认优化模式时存在的问题 256
15.3 使用基于规则的默认优化器模式 256
15.3.1 驱动表位置问题 257
15.3.2 驱动表和表基数 258
15.3.3 有关调整基于规则查询的提示 259
15.4 基于规则的优化器无效的情况 260
15.5 基于规则的优化器是最佳选择的情况 260
15.6 结论 262
第16章 调整表连接 264
16.1 表连接类型 264
16.1.1 等连接 265
16.1.2 外部连接 265
16.1.3 自连接 267
16.1.4 反连接 269
16.1.5 半连接 271
16.2 Oracle表连接方法 274
16.2.1 嵌套循环连接 274
16.2.2 use_nl提示 276
16.2.3 散列连接 276
16.2.4 排序合并连接 280
16.2.5 星型连接 283
16.3 评估表连接顺序 287
16.4 调整分布式SQL表连接 288
16.4.1 总是为分布式连接使用CBO 289
16.4.2 察看分布式连接的执行计划 289
16.4.3 分布式连接调整方针 291
16.5 结论 292
第三部分 SQL高级调整 293
第17章 调整SQL的DML语句 293
17.1 Oracle存储参数和DML性能 293
17.1.2 pctused存储参数 294
17.1.1 pctfree存储参数 294
17.1.3 freelists参数和DML性能 295
17.1.4 OPS的freelist组存储参数 295
17.1.5 存储参数规则的小结 295
17.2 空闲列表管理和DML性能 296
17.2.1 链接到空闲列表和从空闲列表断开链接 297
17.2.2 减少空闲列表重新链接操作 299
17.3 长数据列和DML行为 299
17.4 根据平均记录长度来设置pctfree和pctused参数 301
17.5 缓冲区忙等待以及DML冲突 302
17.5.1 利用STATSPACK发现DML等待冲突 303
17.5.2 用STATSPACK确定缓冲区忙等待 305
17.6 SQL update语句、子查询和并行DML 312
17.7 DML执行时约束的开销 314
17.8 用DML维持索引所需的开销 315
17.9 使用PL/SQL批量插入来提高SQL插入数据的速度 316
17.10 结论 317
第18章 用临时表调整SQL 319
18.1 与字典视图一起使用CTAS 319
18.2 结论 328
第19章 SQL子查询的调整 329
19.1 Oracle子查询的基本知识 329
19.2 关联与非关联子查询 331
19.2.2 子查询的执行时间 332
19.2.1 数据量规模和子查询的问题 332
19.2.3 子查询执行的基本特征 335
19.3 子查询的自动SQL转换 335
19.4 调整具有IN和EXISTS子句的子查询 335
19.4.1 使用IN子句的非关联子查询 335
19.4.2 带有IN子句的关联子查询 340
19.4.3 带有EXISTS子句的非关联子查询 340
14.4.4 使用EXISTS子句的关联子查询 340
19.5 调整带有NOT IN和NOT EXISTS子句的子查询 342
19.5.1 使用NOT IN运算符的非关联子查询 342
19.5.2 带有NOT IN运算符的关联子查询 344
19.5.3 带有NOT EXISTS运算符的关联子查询 345
19.5.4 使用NOT EXISTS运算符的非关联子查询 346
19.6 调整带有不相等条件的子查询 347
19.6.1 在子查询中使用ALL和ANY子句 347
19.6.2 在子查询中使用不相等条件 349
19.7 用提示来提高子查询的执行速度 351
19.8 结论 352
第20章 用索引调整SQL 353
20.1 把握进行索引的时机 353
20.1.1 提取SQL语句 354
20.1.3 衡量全表扫描的合法性 355
20.1.2 添加索引 355
20.1.4 衡量带有新索引的查询的执行时间 358
20.1.5 预测整个数据库的受益情况 358
20.2 通过添加索引来消除排序 358
20.3 不必要的排序 358
20.4 索引谓词 359
20.5 B树索引中可供选择的索引 363
20.5.1 位图索引 363
20.5.2 基于函数的索引 363
20.5.3 反主键索引与SQL性能 363
20.6 带有IN条件的查询的索引用法 364
20.7 结论 365
第21章 数据仓库的SQL调整 366
21.1 大型数据表连接调整 366
21.1.1 ordered提示 367
21.1.2 order_predicates提示 367
21.2 Oracle分区与Oracle SQL调整 368
21.2.1 分区和SQL数据表连接 368
21.2.2 分区与SQL执行速度 368
21.3 Oracle的并行查询和Oracle SQL调整 369
21.3.1 并行查询的int.ora参数 369
21.3.2 设置最优的并行度 370
21.3.3 使用并行查询提示 371
21.4 数据仓库查询的Oracle优化 373
21.4.1 optimizer_search_limit参数 374
21.4.2 optimizer_max_permutations参数 374
21.5 结论 376
第22章 用STATSPACK进行SQL调整 377
22.1 STATSPACK和SQL数据收集 378
22.2 用STATSPACK对Oracle SQL排序进行调整 378
22.3 用STATSPACK跟踪SQL 384
22.3.1 SQL快照阈值 384
22.3.2 STATSPACK SQL前10位报表 385
22.4 结论 387
第23章 调整使用内置函数和特殊运算符的SQL语句 388
23.1 在SQL中使用like和case子句 388
23.1.1 在Oracle查询中使用like子句 388
23.1.2 用case语句合并多重扫描 390
23.2 调整带有BIF的SQL语句 391
23.2.1 BIF与字符数据类型一起使用 392
23.2.2 BIF与日期数据类型一起使用 392
23.2.3 使用substr BIF 395
23.2.4 Oracle9i中对BIF的改进 396
23.3 结论 397
23.4 本书的总结 397
- 《联吡啶基钌光敏染料的结构与性能的理论研究》李明霞 2019
- 《NiFe2O4基惰性阳极材料的烧结行为及应用性能》杜金晶,王斌著 2019
- 《并行数据挖掘及性能优化》荀亚玲著 2020
- 《钻井液用烷基糖苷及其改性产品合成、性能及应用》司西强,王中华编著 2019
- 《高性能油墨产业专利信息分析及预警研究报告》国家知识产权局专利局专利审查协作广东中心编者;石陇辉责编 2019
- 《Laves相NbCr2化合物的力学性能及其应用》刘昕责编;聂小武 2019
- 《信息融合中估计算法的性能评估》毛艳慧著 2019
- 《纺织产品生态安全性能检测》田文主编 2019
- 《多级孔沸石分子筛合成及其催化性能研究》颜婷婷,喜冬阳,王俊海 2019
- 《特种陶瓷工艺与性能》毕见强编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019