让Oracle跑得更快2:基于海量数据的数据库设计与优化

让Oracle跑得更快2:基于海量数据的数据库设计与优化
作 者: 谭怀远
出版社: 电子工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Oracle
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  谭怀远 副总工,DBA团队负责人,在国内属于较早进入专职DBA岗位的人。是国内著名数据库论坛ITPUB的资深版主,论坛idalantany。10年的Oracle DBA工作经验,从Oracle 8开始进入数据库领域,从Oracle 8到Oracle8i,Oracle 9i,Oracle10g,见证了中国DBA职业的发展历程。作者对数据库的性能优化有独到的见解,颇擅长于海量数据数据库的设计管理及优化工作。

内容简介

数据库设计,是最近几年才出现的技术领域,再早的时候,数据库是以一个黑盒的方式,附属到某个系统当中的,开发人员对它的关注非常少。 近年来,由于很多系统数据量呈几何级数激增,各种性能问题日益凸显出来,而这种性能问题绝大多数都落在了数据的载体——数据库身上,因此,人们越来越关注数据库的性能。而一个数据库性能的好坏,通常是在系统设计阶段就决定了的,于是,将数据库从系统设计中拿出来单独进行设计,变得越来越主流了。 这是一本以讨论海量数据环境下Oracle数据库设计与优化的书籍,也是作者10年来从事Oracle数据库工作的心得体会,是作者工作经验的结晶,这样的书籍并不多见。 《让Oracle跑得更快2:基于海量数据的数据库设计与优化》通篇围绕着在海量数据环境下,如何构造一个高效的Oracle数据库这一核心,将许多相关技术融汇到这个核心话题当中,这些技术包括:分区、索引、数据库对象属性、并行技术、只读表空间、初始化参数、几种常见的数据库架构,以及在特定数据库架构下数据库的备份和恢复等相关技术。

图书目录

第一篇 分 区

第1章 分区的渊源 2

1.1 DELETE与系统资源 3

1.2 DELETE与释放空间 10

第2章 分区在海量数据库中的应用 15

2.1 分区的种类 16

2.1.1 范围分区 16

2.1.2 哈希分区 35

2.1.3 列表分区 42

2.1.4 组合分区 43

2.2 三种分区的比较 46

2.2.1 范围分区的适用情况 47

2.2.2 哈希分区的效率 47

2.2.3 列表分区与范围分区各自的优势 54

2.3 小结 61

第二篇 索 引

第3章 B树索引 64

3.1 B树索引概述 65

3.2 B树索引的效率 66

3.2.1 主键或者唯一性约束 66

3.2.2 键值重复率低的字段比较适合使用B树索引 77

第4章 位图索引 85

4.1 位图索引概述 86

4.2 什么时候使用位图索引 97

第5章 全文索引 109

5.1 全文索引概述 109

5.1.1 全文索引和普通索引的对比 110

5.1.2 全文索引的对象 114

5.1.3 全文索引在海量数据库中的应用 123

5.2 全文索引的空间 138

5.3 全文索引和DML操作 145

5.3.1 INSERT操作 146

5.3.2 DELETE操作 149

5.3.3 UPDATE操作 150

5.4 CTX_REPORT工具包 154

5.4.1 CTX_REPORT.DESCRIBE_INDEX 158

5.4.2 DESCRIBE_POLICY函数 161

5.4.3 CREATE_INDEX_SCRIPT函数 162

5.4.4 CREATE_POLICY_SCRIPT函数 164

5.4.5 INDEX_SIZE函数 165

5.4.6 INDEX_STATS存储过程 168

5.4.7 QUERY_LOG_SUMMARY存储过程 170

5.5 小结 175

第三篇 对 象 属 性

第6章 对象属性概述 178

6.1 Oracle数据库中的对象属性 178

6.2 对象属性和系统的关系 183

第7章 并行度 185

7.1 对象属性上的并行 186

7.2 使用Hint方式并行执行 189

7.3 索引上的并行度 193

第8章 数据压缩 198

8.1 数据压缩技术的应用 199

8.2 分区索引的压缩 203

8.3 数据压缩的优越性 205

8.3.1 节省空间 205

8.3.2 性能的提高 212

8.4 DML操作和数据压缩 219

第9章 只读表空间 227

9.1 只读表空间与数据备份和恢复的关系 228

9.2 只读表空间对于数据库的启动和关闭的影响 231

9.3 只读表空间可以防止数据被意外删除和修改 237

9.4 只读表空间使表空间的管理更加方便 240

第10章 数据库对象的分析 245

10.1 CBO和RBO 246

10.2 分析和动态采样 251

10.3 对象分析的频度 254

10.3.1 数据入库后不再改变 255

10.3.2 数据存在表中且经常改变 271

第四篇 海量数据的数据库架构设计

第11章 RAC架构 285

11.1 RAC在海量数据库中的应用 293

11.2 RAC架构之业务分割 295

11.3 RAC架构之负载均衡 308

11.3.1 客户端的负载均衡 308

11.3.2 服务器端的负载均衡 313

11.4 RAC架构之FAILOVER 316

第12章 分布式数据库架构 319

12.1 分布式数据库的优越性 319

12.2 分布式数据库的数据处理 321

12.3 分布式数据库的字符集 323

第13章 Data Guard架构 325

13.1 Data Guard概述 326

13.2 Data Guard的保护模式 329

13.2.1 最高数据保护模式 329

13.2.2 最高性能模式 329

13.2.3 最高可用性模式 330

13.3 Data Guard和RAC 331

13.4 Data Guard中Standby数据库的类型 332

13.4.1 物理Standby数据库 332

13.4.2 逻辑Standby数据库 333

第14章 存储架构的设计(ASM+SAN) 335

14.1 ASM 336

14.1.1 方便存储管理 337

14.1.2 ASM的一个管理工具—asmcmd 345

14.1.3 存储的高可用性 348

14.1.4 提升存储性能 350

14.2 SAN 352

第15章 海量数据的备份和恢复 354

15.1 传统的数据备份方案 354

15.1.1 通过数据导出方式备份数据 355

15.1.2 数据库冷备份 355

15.1.3 数据库热备份 356

15.2 海量数据的数据库备份和恢复方案 357

15.2.1 使用分布式数据库 357

15.2.2 以传递表空间的方式对表空间进行备份和恢复 358

15.2.3 对加载数据进行备份 368

第五篇 初始化参数

第16章 内存相关的参数 373

16.1 SGA_TARGET 373

16.2 PGA_AGGREGATE_TARGET 379

第17章 I/O相关的参数 382

17.1 DB_FILE_MULTIBLOCK_READ_COUNT 383

17.2 和数据库I/O及数据文件相关的其他4个参数 388

17.2.1 DB_WRITER_PROCESSES 388

17.2.2 DISK_ASYNCH_IO 389

17.2.3 DBWR_IO_SLAVES 389

17.2.4 DB_FILES 390

第18章 优化器相关的参数 391

18.1 CURSOR_SHARING 391

18.2 OPTIMIZER_DYNAMIC_SAMPLING 394

18.3 OPTIMIZER_MODE 398

18.3.1 ALL_ROWS 398

18.3.2 FIRST_ROWS_n 398

18.3.3 FIRST_ROWS 399

第19章 其他的参数 400

19.1 并行相关的参数 400

19.1.1 在对象的属性中设置并行 401

19.1.2 在Hint中使用并行 401

19.2 分布式数据库相关的参数 404

附录A Oracle字符集 406

附录B SHOW_SPACE存储过程 415

附录C 一个典型的OLAP系统数据库的设计方案 419