注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络数据库OracleOracle高性能SQL调整

Oracle高性能SQL调整

Oracle高性能SQL调整

定 价:¥43.00

作 者: (美)Donald K.Burleson著;刘砚,黄春等译
出版社: 机械工业出版社
丛编项: Oracle技术系列丛书
标 签: Oracle

购买这本书可以去


ISBN: 9787111097556 出版时间: 2002-01-01 包装: 简装
开本: 24cm 页数: 397页 字数:  

内容简介

  本书由Oracle公司授权,向读者详尽阐述如何调整SQL语句、查看内部执行计划和更改执行计划以提高语句性能。主要内容包括:理解SQL调整在Oracle总体微调中的地位,使用语如内嵌视图和BIF扩展提高QraleSQL性能,确定并报告程序库缓存中的SQL语句,调整SQL表访问、完整表扫描和平行查询,运行TKPROF获得SQL跟踪报告,使用Oracle线索为OracleSQL语句更改执行计划,使用Oracle8i优化器计划稳定性、基于成本的优化器和基于规则的优化器,调整SQLDML语句、SQK子查询和数据仓库SQL,调整带有临时表和索引的SQL语句,使用STATSPACK诊断和优化系统性能。本书内容丰富、分析透彻,可供Oracle数据库管理员、技术开发人员参考。

作者简介

暂缺《Oracle高性能SQL调整》作者简介

图书目录

前言
第一部分 背景知识
第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章 OracleSQL扩展简介
2.1 Oracle内部视图
2.2 Oracle内置函数
2.3 Oracle和面向对象扩展
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.1.3 减少SQL解析的技术
3.2 生成执行计划
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 优化器模式
4.2.1 rule模式
4.2.2 choose模式
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 调整OracleSQL排序
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章 调整SQL表访问
6.1 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的freelistgroups存储参数
6.5.5 存储参数规则总结
6.6 空闲列表管理和表访问性能
6.6.1 空闲列表的链接和取消链接
6.6.2 减少空闲列表的重新锭接
6.7 结论
第二部分 SQL调整基础
第7章 OracleSQL调整的过程
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章 理解OracleSQL工具
8.1 解释SQL语句
8.2 运行快速SQL跟踪
8.3 TKPROF工具
8.3.1 为SQL跟踪设置环境
8.3.2 生成SQL跟踪文件
8.3.3 格式化跟踪文件
8.3.4 TKPRCOF报告
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 设置默认的Optinizer_Mode
9.1.2 默认优化器模式持久化
9.1.3 提高全表扫描速度的实例范围参数
9.1.4 其他影响SQL执行的初始化参数
9.1.5 运行SQL基线测试
9.2 什么是重要的SQL语句
9.3 抽取需要调整的重要SQL语句的技术
9.3.1 指定高频使用的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 Oracle并行查询简介
10.3.1 调用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章 优化OracleSQL语句排序
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 表反连接提示
12.5.1 merge_aj提示
12.5.2 hash_aj提示
12.6 Index提示
12.6.1 Index提示简介
12.6.2 index_join提示
12.6.3 and_equal提示
12.6.4 index_asc提示
12.6.5 no_index提示
12.6.6 index_desc提示
12.6.7 index_combine提示
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.3 no_expand提示
12.8.4 nocache提示
12.8.5 ordered提示
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.1 设置use_stored_outlines命令
13.2.2 检查重要的初始化参数
13.2.3 创建框架包
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 影响基于成本优化器行为的初始化参数
14.3.1 影响表连接的初始化参数
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.1 pctfree存储参数
17.1.2 pctused存储参数
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 SQLupdate语句、子查询和并行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.1 数据量规模和子查询的问题
19.2.2 子查询的执行时间
19.2.3 子查询执行的基本特征
19.3 子查询的自动SQL转换
19.4 调整具有IN和EXISTS子句的子查询
19.4.1 使用研子句的非关联子查询
19.4.2 带有IN子句的关联子查询
19.4.3 带有EXISTS子句的非关联子查询
19.4.4 使用EXISTS子句的关联子查询
19.5 调整带有NOTIN和NOTEXISTS子句的子查询
19.5.1 使用NOTIN运算符的非关联子查询
19.5.2 带有NOT IN运算符的关联子查询
19.5.3 带有NOTEXISTS运算符的关联子查询
19.5.4 使用NOTEXISTS运算符的非关联子查询
19.6 调整带有不相等条件的子查询
19.6.1 在于查询中使用ALL和ANY子句
19.6.2 在于查询中使用不相等条件
19.7 用提示来提高于查询的执行速度
19.8 结论
第20章 用索引调整SQL
20.1 把握进行索引的时机
20.1.1 提取SQL语句
20.1.2 添加索引
20.1.3 衡量全表扫描的合法性
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 带有研条件的查询的索引用法
20.7 结论
第21章 数据仓库的SQL调整
21.1 大型数据表连接调整
21.1.1 ordered提示
21.1.2 order_predicates提示
21.2 Oracle分区与OracleSQL调整
21.2.1 分区和SQL数据表连接
21.2.2 分区与SQL执行速度
21.3 Oracle的并行查询和OracleSQL调整
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排序进行调整
22.3 STATSPACK跟踪SQL
22.3.1 SQL快照阈值
22.3.2 STATSPACK前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 使用substrBIF
23.2.4 Oracle9i中对BIF的改进
23.3 结论
23.4 本书的总结

本目录推荐