第1章 Oracle 索引 1
1.1 用索引提高性能 2
1.2 确定使用哪种类型的索引 4
1.2.1 B树索引 5
1.2.2 特定的索引类型 7
1.3 确定需要建立索引的列 10
1.3.1 主键列和唯一键列的索引 11
1.3.2 外键列的索引 11
1.3.3 其他适合创建索引的列 12
1.4 索引指南 12
1.5 小结 13
第2章 B树索引 15
2.1 Oracle如何使用B树索引 15
2.1.1 场景一:所有的数据位于索引块 17
2.1.2 场景二:索引中不包含所有信息 19
2.1.3?场景三:只有表块被访问 20
2.2 准备创建B树索引 21
2.2.1 在创建前估计索引的大小 21
2.2.2 为索引创建单独的表空间 22
2.2.3 从表空间继承存储参数 23
2.2.4 命名标准 24
2.3 实现B树索引 24
2.3.1 创建B树索引 24
2.3.2 报告索引 25
2.3.3 显示创建索引的代码 26
2.3.4 删除B树索引 27
2.4 管理带约束的B树索引 28
2.4.1 在主键列上创建B树索引 29
2.4.2 在唯一键列上创建B树索引 33
2.4.3 索引外键列 36
2.5 小结 39
第3章 位图索引 40
3.1 位图索引 41
3.2 创建位图索引 44
3.3 创建分区的位图索引 45
3.4 在索引组织表上创建位图索引 45
3.5 位图索引对查询性能的影响 46
3.6 位图索引对数据载入性能的影响 50
3.7 了解位图连接索引 53
3.8 创建位图连接索引 54
3.9 报告位图索引 55
3.10 小结 55
第4章 索引组织表 56
4.1 索引组织表的结构 56
4.2 索引组织表的优势 57
4.3 创建索引组织表 58
4.4 添加溢出段 60
4.5 压缩索引组织表 62
4.6 构建二级索引 63
4.7 重建索引组织表 66
4.8 索引组织表报告 67
4.9 小结 68
第5章 专门索引 69
5.1 不可见索引 69
5.1.1 不可见索引的用途 69
5.1.2 创建不可见索引 70
5.1.3 在数据库中查找不可见索引 71
5.1.4 让优化器使用不可见索引 71
5.1.5 维护不可见索引 72
5.2 基于函数的索引 72
5.2.1 创建基于函数的索引 73
5.2.2 基于函数的索引的限制 76
5.2.3 收集基于函数的索引的统计信息 77
5.3 虚拟列上的索引 78
5.4 键压缩索引 80
5.4.1 键压缩的用途 81
5.4.2 创建压缩索引 82
5.4.3 键压缩和存储 84
5.5 复合索引 85
5.5.1 了解索引跳跃式扫描和复合索引 85
5.5.2 在复合索引中对列进行排列 86
5.5.3 为复合索引选择键 87
5.6 创建虚拟索引 89
5.7 反向键索引 91
5.7.1 反向键索引的缺点 92
5.7.2 反向键索引的用途 94
5.7.3 创建反向键索引 94
5.8 应用程序域索引 94
5.9 小结 95
第6章 分区索引 96
6.1 分区索引 96
6.2 创建本地分区索引 97
6.2.1 最简单的形式 97
6.2.2 分区级的需求 98
6.2.3 前缀和非前缀选项 99
6.3 管理主键和唯一索引 99
6.4 创建全局分区索引 101
6.5 为应用程序选择索引 105
6.6 维护分区表的索引 106
6.6.1 添加分区 106
6.6.2 截断分区 107
6.6.3 移动分区 108
6.6.4 拆分分区 108
6.6.5 交换分区 110
6.6.6 删除分区 111
6.6.7 合并分区 111
6.7 重建全局分区索引和非分区索引 112
6.8 把索引分区设置为不可用后重建 113
6.9 索引对间隔分区的影响 115
6.10 使旧的数据只读 116
6.11 报告分区索引 116
6.12 小结 118
第7章 索引使用调优 119
7.1 优化器访问路径 119
7.2 索引扫描 120
7.2.1 索引唯一扫描 120
7.2.2 索引范围扫描 121
7.2.3 索引跳跃式扫描 123
7.2.4 全索引扫描 124
7.2.5 索引快速全扫描 125
7.3 确定查询是否使用了索引 125
7.4 避免使用索引 127
7.4.1 在任何情况下都不使用某个索引 127
7.4.2 只避免快速扫描 128
7.4.3 强制表扫描 128
7.5 在索引和表扫描之间选择 128
7.6 优化器忽略索引的原因 129
7.6.1 不同的行数 129
7.6.2 索引聚簇因子 130
7.7 索引访问路径因没有新的统计信息而改变 131
7.7.1 使用不等条件 131
7.7.2 使用通配符查询 133
7.7.3 在谓词中引用空值 134
7.7.4 在查询中包含函数 135
7.7.5 跳过索引的前导部分 136
7.8 强制优化器使用索引 136
7.8.1 应用INDEX提示 137
7.8.2 应用相关的提示 138
7.8.3 对失败的索引提示进行诊断 139
7.8.4 调整optimizer_index_cost_adj参数 140
7.8.5 为索引收集准确的统计信息 142
7.9 并行化索引访问 143
7.10 小结 144
第8章 维护索引 145
8.1 收集索引统计信息 145
8.1.1 DBMS_STATS包 145
8.1.2 METHOD_OPT参数 147
8.2 处理不可用索引 148
8.2.1 使索引不可用 149
8.2.2 指定SKIP_UNUSABLE_INDEXES参数 150
8.3 管理索引使用的空间 153
8.3.1 重建索引以减少碎片 153
8.3.2 重建反向键索引 154
8.3.3 回收未使用的空间 154
8.3.4 重建分区索引 154
8.3.5 频繁重建索引 157
8.4 INDEX_STATS视图在重建索引时的作用 157
8.4.1 INDEX_STATS视图的优点 158
8.4.2 INDEX_STATS视图的问题 160
8.5 关于重建索引的争论 162
8.5.1 重建索引的理由 162
8.5.2 反对重建的理由 163
8.5.3 关于重建索引的建议 163
8.6 合并索引来减少碎片 164
8.7 收缩索引以减少碎片 165
8.8 移动表和索引 166
8.9 提高创建索引的效率 167
8.9.1 并行创建索引 167
8.9.2 避免在索引创建期间生成重做 168
8.9.3 使用较大的块 169
8.9.4 压缩索引 169
8.9.5 同时使用多个选项 170
8.10 生成DDL从而创建索引 170
8.10.1 使用DBMS_METADATA包 170
8.10.2 使用SESSION_TRANSFORM存储过程 171
8.10.3 使用SET_FILTER存储过程 172
8.10.4 使用数据泵 173
8.11 删除索引 173
8.12 小结 174
第9章 SQL调优顾问 176
9.1 工具之间的联系 176
9.2 自动SQL调优作业 178
9.2.1 验证自动作业在运行 178
9.2.2 查看自动SQL调优作业中的建议 179
9.2.3 生成SQL脚本来实施自动调优建议 181
9.2.4 禁用和启用自动SQL调优 182
9.3 管理SQL调优集 183
9.3.1 在AWR中查看占用大量资源的SQL 184
9.3.2 查看内存中使用大量资源的SQL 186
9.3.3 用AWR中占用大量资源的SQL填充SQL调优集 187
9.3.4 用内存中占用大量资源的SQL填充SQL调优集 188
9.3.5 用内存中所有的SQL来填充SQL调优集 189
9.3.6 显示SQL调优集的内容 190
9.3.7 选择性删除SQL调优集中的语句 192
9.3.8 将语句添加到现有的SQL调优集 193
9.3.9 删除SQL调优集 193
9.4 运行SQL调优顾问 193
9.4.1 创建调优任务 195
9.4.2 执行DBMS_SQLTUNE并查看建议 197
9.4.3 查看和删除调优任务 197
9.4.4 从SQL Developer中运行SQL调优顾问 197
9.4.5 从企业管理器运行SQL调优顾问 198
9.5 小结 199
第10章 SQL访问顾问 200
10.1 为单个SQL语句生成的建议 201
10.2 获得一组SQL语句的建议 203
10.3 查询顾问视图 209
10.4 小结 210
· · · · · · (
收起)