主页 详情

《Oracle高性能SQL调整》_(美)Donald K.Burleson著;刘砚,黄春等译_10495221_7111097556

【书名】:《Oracle高性能SQL调整》
【作者】:(美)Donald K.Burleson著;刘砚,黄春等译
【出版社】:北京:机械工业出版社
【时间】:2002
【页数】:397
【ISBN】:7111097556
【SS码】:10495221

最新查询

内容简介

第一部分 背景知识

第1章 SQL简介

1.1 SQL的基本特征

1.2 SQL起源

1.2.1 SQL模型

1.2.2 select操作

1.2.3 project操作

1.2.4 join操作

1.3 SQL优化器

1.4 SQL调整的目标

1.5 作为Oracle调整步骤之一的SQL调整

1.6 SQL调整的障碍

1.7 SQL调整过程

1.7.1 定位使用频繁的SQL语句

1.7.2 调整SQL语句

1.7.3 调整持久化

1.8 SQL调整的目标

1.9 SQL调整工具箱

1.10 结论

第2章 Oracle SQL扩展简介

2.1 Oracle内部视图

2.2 Oracle内置函数

2.3 Oracle SQL和面向对象扩展

2.4 挑战关系原则——重复数据项列表

2.4.1 varray表

2.4.2 表嵌套

2.4.3 SQL对象扩展的性能

2.5 结论

第3章 理解SQL执行

3.1 解析SQL语句

3.1.1 重新书写查询

3.1.2 在Oracle8i和Oracle9i中使用cursor_sharing

3.2 生成执行计划

3.1.3 减少SQL解析的技术

3.2.1 表访问方式

3.2.2 索引访问方式

3.2.3 连接操作

3.3 对SQL结果集进行排序

3.4 结论

第4章 SQL优化器简介

4.1 基本的优化器技术

4.1.1 基于规则的优化器

4.1.2 基于成本的优化器

4.2.1 rule模式

4.2.2 choose模式

4.2 优化器模式

4.2.3 first_rows模式

4.2.4 all_rows模式

4.2.5 更快的执行速度与最小的资源消耗

4.3 基于规则优化的调整

4.3.1 更改基于规则的驱动表

4.3.2 如果基于规则的优化器没有使用正确的索引

4.4 基于成本优化的调整

4.4.1 调用基于成本的优化器

4.4.2 为CBO收集统计资料

4.5 决定默认优化器模式

4.6 迁移到基于成本的优化器

4.6.1 对开发人员进行重新培训

4.6.2 选择基于成本的优化器的思想

4.7 结论

第5章 SQL内部处理

5.1 共享SQL区域和专用SQL区域

5.2 SQL的SGA统计资料

5.3 程序库缓存的内部情况

5.3.1 程序库缓存中可以多次使用的SQL

5.3.2 监控程序库缓存不足率

5.3.3 使用STATSPACK监控程序库缓存中的对象

5.3.4 程序库缓存的STATSPACK报告

5.4 调整Oracle SQL排序

5.5 确定程序库缓存中具有高影响力的SQL语句

5.6 关于程序库缓存中SQL的报告

5.6.1 使用带有STATSPACK的access.sql脚本

5.6.2 access.sql报告

5.6.3 全表扫描报告

5.6.4 索引范围扫描报告

5.6.5 索引惟一性扫描报告

5.6.6 完全索引扫描报告

5.6.7 access.sql报告的局限性

5.7 结论

6.1 SQL调整和全表扫描

第6章 调整SQL表访问

6.1.1 决定全表扫描的阈值

6.1.2 查找全表扫描

6.1.3 优化器如何选择全表扫描

6.1.4 当CBO选择了错误的全表扫描

6.1.5 预防不必要的全表扫描

6.2 借助于索引的表访问

6.3 更改表访问方式

6.3.1 将索引由惟一索引更改为非惟一索引

6.3.2 重新书写SQL语句以更改表访问方法

6.4 重新排序表记录以减少输入输出

6.4.1 使用索引簇重新排序记录

6.4.2 使用CTAS重新排序记录

6.5 Oracle存储参数和表访问性能

6.5.1 pctfree存储参数

6.5.2 pctused存储参数

6.5.3 freelists存储参数

6.5.4 OPS的freelist groups存储参数

6.5.5 存储参数规则总结

6.6 空闲列表管理和表访问性能

6.6.1 空闲列表的链接和取消链接

6.7 结论

6.6.2 减少空闲列表的重新链接

第二部分 SQL调整基础

第7章 Oracle SQL调整的过程

7.1 SQL调整的目标

7.2 SQL调整步骤

7.3 第一步:确定具有高影响力的SQL语句

7.3.1 SQL语句分级

7.3.2 确定使用频繁的SQL语句

7.3.3 使用STATSPACK指定具有高影响力的SQL

7.3.4 来自程序库缓存的SQL报告

7.3.5 使用第三方工具定位有问题的SQL

7.4 第二步:抽取和解释SQL语句

7.5 第三步:调整SQL语句

7.6 SQL调整实例

7.7 使用第三方工具快速进行SQL调整

7.8 结论

第8章 理解Oracle SQL工具

8.1 解释SQL语句

8.2 运行快速SQL跟踪

8.3 TKPROF工具

8.3.1 为SQL跟踪设置环境

8.3.2 生成SQL跟踪文件

8.3.3 格式化跟踪文件

8.3.4 TKPROF报告

8.4 Oracle专家中心SQL分析报告

8.5 有关程序库缓存中所有SQL的报告

8.5.1 使用带有STATSPACK的access.sql脚本

8.5.2 access.sql报告

8.6 结论

第9章 定位重要的SQL语句

9.1 建立实例范围的SQL基线

9.1.1 设置默认的Optimizer_Mode

9.1.2 默认优化器模式持久化

9.1.3 提高全表扫描速度的实例范围参数

9.1.4 其他影响SQL执行的初始化参数

9.2 什么是重要的SQL语句

9.1.5 运行SQL基线测试

9.3.1 指定高频使用的SQL语句

9.3 抽取需要调整的重要SQL语句的技术

9.3.2 抽取SQL语句的脚本

9.4 SQL语句分级

9.4.1 查找不包含提示的新SQL语句

9.4.2 当使用优化器计划稳定性时查找新SQL语句

9.5 结论

第10章 调整全表扫描和并行查询

10.1 评估全表扫描的合法性

10.2 查找要进行Oracle并行查询的表

10.3.1 调用Oracle并行查询

10.3 Oracle并行查询简介

10.3.2 Oracle并行查询初始化参数

10.3.3 设置最优化的并行度

10.3.4 使用并行查询提示

10.3.5 并行查询和表连接

10.4 监控Oracle并行查询的使用

10.4.1 监控并行执行活动

10.4.2 使用STATSPACK监控Oracle并行查询

10.4.3 使用V$视图监控Oracle并行查询

10.4.4 并行查询和分布表

10.5 结论

第11章 优化Oracle SQL语句排序

11.1 有关Oracle排序的初始化参数

11.1.1 sort_area_size参数

11.1.2 sort_area_retained_size参数

11.1.3 sort_multiblock_read_count参数

11.1.4 已废弃的Oracle8排序参数

11.1.5 优化器模式和排序活动

11.2 通过添加索引避免排序

11.3 不必要的排序

11.4 监控排序活动

11.5 结论

第12章 使用Oracle提示进行调整

12.1 提示简介和历史

12.2 在SQL查询中指定提示

12.3 优化器提示

12.3.1 all_rows提示

12.3.2 rule提示

12.3.3 first_rows提示

12.4 表连接提示

12.4.1 use_hash提示

12.4.2 use_merge提示

12.4.3 use_nl提示

12.4.4 star提示

12.5.1 merge_aj提示

12.5 表反连接提示

12.5.2 hash_aj提示

12.6 Index提示

12.6.1 Index提示简介

12.6.2 index_join提示

12.6.3 and_equal提示

12.6.6 index_desc提示

12.6.7 index_combine提示

12.6.5 no_index提示

12.6.4 index_asc提示

12.6.8 index_ffs提示

12.6.9 use_concat提示

12.7 Parallel提示

12.7.1 parallel提示简介

12.7.2 pq_distribute提示

12.7.3 noparallel提示

12.8 表访问提示

12.8.1 full提示

12.8.2 簇表提示

12.8.4 nocache提示

12.8.5 ordered提示

12.8.3 no_expand提示

12.8.6 ordered_predicates提示

12.8.7 push_subq提示

12.9 子查询中的提示

12.10 结论

第13章 使用优化器计划稳定性进行调整

13.1 存储框架简介

13.1.1 优化器计划稳定性背后的思想

13.1.2 在向CBO迁移时使用优化器计划稳定性

13.2 使用存储框架要做的准备

13.2.3 创建框架包

13.2.2 检查重要的初始化参数

13.2.1 设置use_stored_outlines命令

13.2.4 创建存储框架表空间

13.3 如何创建和修改存储框架

13.3.1 确定最快的执行计划

13.3.2 为最初的查询创建存储框架

13.3.3 为带有提示的查询创建存储框架

13.3.4 交换存储框架

13.4 管理存储框架

13.4.1 为存储框架使用字典视图和表

13.4.2 使用框架包

13.4.3 管理存储框架的分类

13.5 结论

第14章 基于成本优化器的调整

14.1 统计资料和基于成本的优化

14.1.1 动态和静态CBO执行计划思想

14.1.2 收集统计资料的频率

14.1.3 为CBO收集统计资料

14.2 基于成本优化和SQL调整

14.2.1 基于成本的表连接

14.2.2 调整带有子查询的基于成本的SQL语句

14.2.3 调整复杂的布尔查询

14.3.1 影响表连接的初始化参数

14.3 影响基于成本优化器行为的初始化参数

14.3.2 影响CBO索引行为的初始化参数

14.4 结论

第15章 基于规则优化器的调整

15.1 调用基于规则的优化

15.2 使用choose作为默认优化模式时存在的问题

15.3 使用基于规则的默认优化器模式

15.3.1 驱动表位置问题

15.3.2 驱动表和表基数

15.3.3 有关调整基于规则查询的提示

15.4 基于规则的优化器无效的情况

15.5 基于规则的优化器是最佳选择的情况

15.6 结论

第16章 调整表连接

16.1 表连接类型

16.1.1 等连接

16.1.2 外部连接

16.1.3 自连接

16.1.4 反连接

16.1.5 半连接

16.2 Oracle表连接方法

16.2.1 嵌套循环连接

16.2.2 use_nl提示

16.2.3 散列连接

16.2.4 排序合并连接

16.2.5 星型连接

16.3 评估表连接顺序

16.4 调整分布式SQL表连接

16.4.1 总是为分布式连接使用CBO

16.4.2 察看分布式连接的执行计划

16.4.3 分布式连接调整方针

16.5 结论

第三部分 SQL高级调整

第17章 调整SQL的DML语句

17.1 Oracle存储参数和DML性能

17.1.2 pctused存储参数

17.1.1 pctfree存储参数

17.1.3 freelists参数和DML性能

17.1.4 OPS的freelist组存储参数

17.1.5 存储参数规则的小结

17.2 空闲列表管理和DML性能

17.2.1 链接到空闲列表和从空闲列表断开链接

17.2.2 减少空闲列表重新链接操作

17.3 长数据列和DML行为

17.4 根据平均记录长度来设置pctfree和pctused参数

17.5 缓冲区忙等待以及DML冲突

17.5.1 利用STATSPACK发现DML等待冲突

17.5.2 用STATSPACK确定缓冲区忙等待

17.6 SQL update语句、子查询和并行DML

17.7 DML执行时约束的开销

17.8 用DML维持索引所需的开销

17.9 使用PL/SQL批量插入来提高SQL插入数据的速度

17.10 结论

第18章 用临时表调整SQL

18.1 与字典视图一起使用CTAS

18.2 结论

第19章 SQL子查询的调整

19.1 Oracle子查询的基本知识

19.2 关联与非关联子查询

19.2.2 子查询的执行时间

19.2.1 数据量规模和子查询的问题

19.2.3 子查询执行的基本特征

19.3 子查询的自动SQL转换

19.4 调整具有IN和EXISTS子句的子查询

19.4.1 使用IN子句的非关联子查询

19.4.2 带有IN子句的关联子查询

19.4.3 带有EXISTS子句的非关联子查询

14.4.4 使用EXISTS子句的关联子查询

19.5 调整带有NOT IN和NOT EXISTS子句的子查询

19.5.1 使用NOT IN运算符的非关联子查询

19.5.2 带有NOT IN运算符的关联子查询

19.5.3 带有NOT EXISTS运算符的关联子查询

19.5.4 使用NOT EXISTS运算符的非关联子查询

19.6 调整带有不相等条件的子查询

19.6.1 在子查询中使用ALL和ANY子句

19.6.2 在子查询中使用不相等条件

19.7 用提示来提高子查询的执行速度

19.8 结论

第20章 用索引调整SQL

20.1 把握进行索引的时机

20.1.1 提取SQL语句

20.1.3 衡量全表扫描的合法性

20.1.2 添加索引

20.1.4 衡量带有新索引的查询的执行时间

20.1.5 预测整个数据库的受益情况

20.2 通过添加索引来消除排序

20.3 不必要的排序

20.4 索引谓词

20.5 B树索引中可供选择的索引

20.5.1 位图索引

20.5.2 基于函数的索引

20.5.3 反主键索引与SQL性能

20.6 带有IN条件的查询的索引用法

20.7 结论

第21章 数据仓库的SQL调整

21.1 大型数据表连接调整

21.1.1 ordered提示

21.1.2 order_predicates提示

21.2 Oracle分区与Oracle SQL调整

21.2.1 分区和SQL数据表连接

21.2.2 分区与SQL执行速度

21.3 Oracle的并行查询和Oracle SQL调整

21.3.1 并行查询的int.ora参数

21.3.2 设置最优的并行度

21.3.3 使用并行查询提示

21.4 数据仓库查询的Oracle优化

21.4.1 optimizer_search_limit参数

21.4.2 optimizer_max_permutations参数

21.5 结论

第22章 用STATSPACK进行SQL调整

22.1 STATSPACK和SQL数据收集

22.2 用STATSPACK对Oracle SQL排序进行调整

22.3 用STATSPACK跟踪SQL

22.3.1 SQL快照阈值

22.3.2 STATSPACK SQL前10位报表

22.4 结论

第23章 调整使用内置函数和特殊运算符的SQL语句

23.1 在SQL中使用like和case子句

23.1.1 在Oracle查询中使用like子句

23.1.2 用case语句合并多重扫描

23.2 调整带有BIF的SQL语句

23.2.1 BIF与字符数据类型一起使用

23.2.2 BIF与日期数据类型一起使用

23.2.3 使用substr BIF

23.2.4 Oracle9i中对BIF的改进

23.3 结论

23.4 本书的总结


书查询(www.shuchaxun.com)本网页唯一编码:
1ec11a33e7b839273107eadaffc586e1#e6e21c9e62ab93ada4c8e69adf7fb111#40151858#Oracle高性能SQL调整_10495221.zip