Oracle+9i&10g编程艺术:深入数据库体系结构.pdf
### Oracle 9i & 10g 编程艺术:深入数据库体系结构 #### 一、概述 《Oracle 9i & 10g 编程艺术:深入数据库体系结构》是一本专为希望深入了解Oracle数据库工作原理的技术人员编写的书籍。本书详细介绍了Oracle 9i 和 10g 版本的核心概念和技术细节,对于想要提升数据库性能优化能力的开发者来说,是一本非常有价值的参考书。 #### 二、核心知识点详解 ##### 1. **开发成功的Oracle应用程序** - **我的方法** (第48页) - 作者提出了个人对开发Oracle应用程序的看法和建议。 - **黑盒方法** (第49页) - 描述了一种不考虑内部实现细节的开发方式,着重于输入输出结果的一致性和正确性。 - **正确的开发方法** (第52页) - 探讨了在设计和实现数据库应用程序时应遵循的最佳实践。 - **了解Oracle体系结构** (第53页) - 深入解析Oracle数据库的内部架构,包括各种组件的作用及其交互方式。 - **理解并发控制** (第58页) - 讨论如何有效地管理多个用户同时访问数据库时可能出现的问题。 - **多版本** (第63页) - 解释Oracle如何通过多版本一致性来支持并发访问而不破坏数据完整性。 - **数据库独立性** (第70页) - 探讨了如何设计应用程序以适应不同的数据库平台。 - **让应用运行得更快** (第86页) - 提供了一系列提高数据库应用程序性能的方法。 - **DBA与开发人员的关系** (第90页) - 分析了数据库管理员和应用程序开发人员之间的协作模式。 ##### 2. **体系结构概述** (第92页) - **定义数据库和实例** - 解释了数据库和实例的概念,以及它们之间的关系。 - **SGA和后台进程** (第99页) - 介绍了系统全局区(SGA)和各种后台进程的作用,这些是支撑Oracle数据库运行的关键组成部分。 - **连接Oracle** (第102页) - 讨论了专用服务器和共享服务器两种连接模式的特点和适用场景。 - **TCP/IP连接的基本原理** (第105页) - 分析了基于TCP/IP协议的Oracle客户端与服务器之间通信的底层机制。 ##### 3. **文件** (第108页) - **参数文件** - **什么是参数?** (第110页) - 定义了参数文件中各项参数的意义及作用。 - **遗留的init.ora参数文件** (第112页) - 介绍了旧版参数文件的历史背景及其局限性。 - **服务器参数文件** (第113页) - 讲解了SPFILE(服务器参数文件)的特点及其与init.ora文件的区别。 - **跟踪文件** (第121页) - 包括由用户请求生成的跟踪文件和因内部错误产生的跟踪文件,以及如何解读这些文件来诊断问题。 - **警告文件** (第130页) - 记录了Oracle实例运行过程中出现的重要事件和警告信息。 - **数据文件** (第134页) - **简要回顾文件系统机制** (第134页) - 解释了操作系统层面对文件的处理机制。 - **Oracle数据库中的存储层次体系** (第135页) - 描述了Oracle如何在不同层级存储数据以优化性能。 - **字典管理和本地管理的表空间** (第139页) - 对比分析了这两种表空间管理方式的优缺点。 - **临时文件** (第140页) - 用于保存临时数据,如排序操作或聚合计算的结果。 - **控制文件** (第143页) - 存储关于数据库物理结构的关键信息。 - **重做日志文件** - **在线重做日志** (第144页) - 记录了所有已提交的事务对数据库所做的更改。 - **归档重做日志** (第146页) - 在实例关闭后用于恢复未完成的事务。 - **密码文件** (第147页) - 用于存储数据库用户的密码,以支持操作系统身份验证。 - **修改跟踪文件** (第151页) - 记录了表中数据被修改的时间戳,用于支持某些类型的恢复操作。 - **闪回日志文件** (第152页) - 支持闪回数据库功能,允许恢复到之前的某个时间点。 - **DMP文件(EXP/IMP文件)** (第154页) - 用于导入导出数据库数据。 - **数据泵文件** (第155页) - 更高效的数据导入导出工具。 - **平面文件** (第159页) - 可以与Oracle数据库进行交互的普通文本或二进制文件。 ##### 4. **内存结构** (第160页) - **进程全局区和用户全局区** - **手动PGA内存管理** (第161页) - 用户可以手动调整某些参数来优化特定会话的性能。 - **自动PGA内存管理** (第169页) - 数据库自动管理PGA内存,简化了管理过程。 - **手动和自动内存管理的选择** (第182页) - 讨论了何时应该选择手动或自动内存管理模式。 - **PGA和UGA小结** (第183页) - 总结了PGA和UGA的主要特点。 - **系统全局区** - 包括固定SGA、重做缓冲区、块缓冲区缓存、共享池、大池、Java池和流池等部分。 - **自动SGA内存管理** (第203页) - Oracle自动管理SGA内存区域,以达到最佳性能。 ##### 5. **Oracle进程** (第204页) - **服务器进程** - **专用服务器连接** (第205页) - 每个客户端都有一个单独的服务器进程与之对应。 - **共享服务器连接** (第207页) - 多个客户端共享一个服务器进程,适合高并发场景。 - **连接与会话** (第208页) - 分析了客户端连接和会话的概念。 - **专用服务器与共享服务器** (第215页) - 对比了两种连接模式的优劣。 - **后台进程** - **中心后台进程** (第219页) - 如PMON、SMON等,负责监控和维护数据库的健康状态。 - **工具后台进程** (第225页) - 如ARCH、MMON等,执行特定的任务。 - **从属进程** - **I/O从属进程** (第228页) - 负责处理I/O操作。 - **并行查询从属进程** (第228页) - 用于加速复杂的查询操作。 ##### 6. **锁** (第229页) - **什么是锁?** (第229页) - 锁是一种机制,用于确保多个用户不会同时修改同一数据。 - **锁定问题** - **丢失更新** (第231页) - 当两个事务尝试更新同一数据但其中一个事务的结果被另一个事务覆盖时发生。 - **悲观锁定** (第232页) - 事务在开始时就锁定数据,直到事务结束。 - **乐观锁定** (第234页) - 假设冲突很少发生,在事务提交前检查是否有其他事务修改过相同的数据。 - **乐观锁定还是悲观锁定?** (第247页) - 根据应用场景选择合适的锁定策略。 - **阻塞** (第248页) - 当一个事务等待另一个事务释放锁时发生。 - **死锁** (第251页) - 两个或更多事务相互等待对方释放锁的情况。 - **锁升级** (第256页) - 当一个事务需要更高级别的锁时会发生。 - **锁类型** - **DML锁** (第257页) - 数据操纵语言(DML)操作触发的锁。 - **DDL锁** (第267页) - 数据定义语言(DDL)操作触发的锁。 - **闩** (第271页) - 类似于锁,但作用范围更小,用于保护SGA内的资源。 - **手动锁定和用户定义锁** (第282页) - 允许用户自定义锁定行为。 ##### 7. **并发与多版本** (第283页) - **什么是并发控制?** (第283页) - 并发控制是指在多个用户同时访问数据库时,如何管理和协调这些访问以保证数据一致性。 - **事务隔离级别** - **READ UNCOMMITTED** (第286页) - 最低的隔离级别,允许读取未提交的数据。 - **READ COMMITTED** (第287页) - 只能读取已提交的数据。 - **REPEATABLE READ** (第289页) - 事务内多次读取相同数据时,结果一致。 - **SERIALIZABLE** (第292页) - 最严格的隔离级别,确保事务按序列顺序执行。 - **READ ONLY** (第294页) - 事务只读,不修改任何数据。 - **多版本读一致性** (第294页) - Oracle使用多版本一致性来支持并发访问,每个事务看到的数据版本与其开始时的状态保持一致。 - **一种会失败的常用数据仓库技术** (第295页) - 讨论了在数据仓库环境中,如果未正确实施并发控制可能带来的问题。 - **解释热表上超出期望** (第295页) - 针对热点数据进行的频繁并发访问可能导致性能瓶颈,书中给出了避免此类问题的建议。 #### 三、总结 本书提供了Oracle 9i 和 10g 数据库体系结构的全面介绍,涵盖了从基础概念到高级主题的广泛内容。通过深入探讨数据库的工作原理、文件系统、内存管理和并发控制等方面的知识,本书不仅适用于初学者了解Oracle数据库的基础,也适合经验丰富的技术人员进一步提升自己的技能水平。无论是希望优化现有应用程序性能的开发者,还是希望深入了解Oracle内部机制的数据库管理员,都能从这本书中获得宝贵的见解和实用的信息。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助