本书内容包括Oracle数据库的基本概念:Oracle数据库结构和实用程序;Oracle数据库性能优化;高级SQL特性;用interMedia、基于C的外部过程等。\r\n
第1章 开发成功的Oracle应用程序\r\n\r\n1.1 我的方法\r\n1.2 黑盒子方法\r\n1.3 如何开发(如何妨碍开发)数据库应用程序\r\n1.3.1 理解Oracle的体系结构\r\n1.3.2 理解并行控制\r\n1.3.3 与数据库无关\r\n1.3.4 如何使它运行更快\r\n1.3.5 数据库管理员与开发人员之间的关系\r\n1.4 小结\r\n\r\n第2章 体系结构\r\n\r\n2.1 服务器\r\n2.2 文件\r\n2.2.1 参数文件\r\n2.2.2 数据文件\r\n2.2.3 临时文件\r\n2.2.4 控制文件\r\n2.2.5 重做日志文件\r\n2.2.6 文件总结\r\n2.3 内存结构\r\n2.3.1 PGA和UGA\r\n2.3.2 SGA\r\n2.3.3 内存结构总结\r\n2.4 进程\r\n2.4.1 服务器进程\r\n2.4.2 后台进程\r\n2.4.3 从属进程\r\n2.5 小结\r\n\r\n第3章 封锁和并行性\r\n\r\n3.1 锁定\r\n3.2 封锁问题\r\n3.2.1 丢失更新\r\n3.2.2 阻塞\r\n3.2.3 死锁\r\n3.2.4 锁定扩大\r\n3.3 锁定类型\r\n3.3.1 DML锁定\r\n3.3.2 DDL锁定\r\n3.3.3 锁存器和内部锁定(入队)\r\n3.3.4 手动封锁和用户自定义锁定\r\n3.4 什么是并行控制\r\n3.4.1 事务隔离等级\r\n3.4.2 READ UNCOMMITTED隔离等级\r\n3.4.3 READ COMMITTED隔离等级\r\n3.4.4 REPEATABLE READ隔离等级\r\n3.4.5 SERIALIZABLE隔离等级\r\n3.4.6 只读事务\r\n3.5 小结\r\n\r\n第4章 事务\r\n\r\n4.1 事务控制语句\r\n4.2 完整性约束和事务\r\n4.3 处理事务的不良习惯\r\n4.4 分布式事务\r\n4.5 重做和回滚\r\n4.6 小结\r\n\r\n第5章 重做和回滚\r\n\r\n5.1 重做\r\n5.1.1 COMMIT\r\n5.1.2 回滚\r\n5.1.3 产生多少重做\r\n5.1.4 能够不让重做日志产生吗\r\n5.1.5 不能分配一个新日志\r\n5.1.6 块清除\r\n5.1.7 日志竞争\r\n5.1.8 临时表现和重做回滚\r\n5.1.9 分析重做\r\n5.2 回滚\r\n5.2.1 什么产生最多/最少的撤消\r\n5.2.2 SET TRANSACTION\r\n5.2.3 “ORA-01555:Snapshot too old”\r\n5.3 小结\r\n\r\n第6章 数据库表\r\n\r\n6.1 表的类型\r\n6.2 术语\r\n6.2.1 高水标记\r\n6.2.2 自由列表\r\n6.2.3 PCTFREE和PCTUSED\r\n6.2.4 INITIAL, NEXT和PCTINCREASE\r\n6.2.5 MINEXTENTS和MAXEXTENTS\r\n6.2.6 LOGGING和NOLOGGING\r\n6.2.7 INITRANS和MAXTRANS\r\n6.3 堆组织表\r\n6.4 索引组织表\r\n6.5 索引组织表总结\r\n6.6 索引聚簇表\r\n6.7 索引聚簇表总结\r\n6.8 散列聚簇表\r\n6.9 散列聚簇总结\r\n6.10 嵌套表\r\n6.10.1 嵌套表语法\r\n6.10.2 嵌套表存储\r\n6.11 嵌套表总结\r\n6.12 临时表\r\n6.13 对象表\r\n6.14 对象表总结\r\n6.15 小结\r\n\r\n第7章 索引\r\n\r\n7.1 Oracle索引概述\r\n7.2 B*Tree索引\r\n7.2.1 反向码索引\r\n7.2.2 降序索引\r\n7.2.3 应该在何时使用B*Tree索引\r\n7.3 B*Trees总结\r\n7.4 位图索引\r\n7.5 位图索引总结\r\n7.6 基于函数的索引\r\n7.6.1 重要的实现细节\r\n7.6.2 基于函数索引的例子\r\n7.6.3 警告\r\n7.7 基于函数的索引总结\r\n7.8 应用程序域索引\r\n7.9 应用程序域索引总结\r\n7.10 关于索引常见问题解答\r\n7.10.1 索引能在视图中使用吗\r\n7.10.2 索引和空\r\n7.10.3 外码上的索引\r\n7.10.4 为什么索引没有使用\r\n7.10.5 索引使用了吗\r\n7.10.6 神话:在索引中空间从来个会重用\r\n7.10.7 神话:大部分有差别的元素应该在前边\r\n7.11 小结\r\n\r\n第8章 导入和导出\r\n\r\n8.1 例子\r\n8.2 为什么可以使用IMP和EXP\r\n8.2.1 检测冲突\r\n8.2.2 抽取DDL\r\n8.2.3 克隆模式\r\n8.2.4 传输表空间\r\n8.2.5 重构实例\r\n8.2.6 在平台之间复制数据\r\n8.3 IMP/EXP的丁作原理\r\n8.3.1 选项\r\n8.3.2 大量导出\r\n8.3.3 数据子集\r\n8.3.4 数据传输\r\n8.3.5 获得DDL\r\n8.3.6 备份和恢复\r\n8.3.7 IMP/EXP不(冉)是一个重新组织工具\r\n8.3.8 导入到不同结构\r\n8.3.9 直接路径导出\r\n8.4 警告和错误\r\n8.4.1 克隆\r\n8.4.2 跨版本使用IMP/EXP\r\n8.4.3 索引哪里去了\r\n8.4.4 命名与默认名的约束\r\n8.4.5 NLS问题\r\n8.4.6 表跨越多个表空间\r\n8.5 小结\r\n\r\n第9章 数据装载\r\n\r\n9.1 SQL*LOADER简介\r\n9.2 如何装载\r\n9.2.1 装载定界数据\r\n9.2.2 装载固定格式的数据\r\n9.2.3 装载日期\r\n9.2.4 利用序列和其他函数装载数据\r\n9.2.5 更新现有的行和插入新的行\r\n9.2.6 装载报表类型的输入数据\r\n9.2.7 装载一个文件到一个长RAW或长字段中\r\n9.2.8 装载嵌入换行符的数据\r\n9.2.9 卸载数据\r\n9.2.10 装载LOB\r\n9.2.11 用SQLLDR装载VARRAYS/嵌套表\r\n9.2.12 在存储过程中调用SQLLDR\r\n9.3 警告\r\n9.3.1 不能选择欲使用的回滚段\r\n9.3.2 TRUNCATE的不同作用\r\n9.3.3 SQLLDR默认为CHAR(255)\r\n9.3.4 命令行取代控制文件\r\n9.4 小结\r\n\r\n第10章 优化策略与工具\r\n\r\n10.1 标识问题\r\n10.2 我的方法\r\n10.3 绑定变量与分析\r\n10.4 绑定变量与分析总结\r\n10.5 SQL_TRACE、TIMED_STATISTICS与TKPROF\r\n10.5.1 设置跟踪\r\n10.5.2 使用并解释TKPROF输出\r\n10.5.3 使用并说明原始跟踪文件\r\n10.6 SQL_TRACE、TIMED_STATISTICS与TKPROF总结\r\n10.7 DBMS_PROFILER\r\n10.8 说明\r\n10.9 StatsPack\r\n10.9.1 安装StatsPack\r\n10.9.2 StatsPack总结\r\n10.10 V$表\r\n10.10.1 V$EVENT_NAME\r\n10.10.2 V$FILESTAT和V$TEMPSTAT\r\n10.10.3 V$LOCK\r\n10.10.4 V$MYSTAT\r\n10.10.5 V$OPEN_CURSOR\r\n10.10.6 V$PARAMETER\r\n10.10.7 V$SESSION\r\n10.10.8 V$SESSION_EVENT\r\n10.10.9 V$SESSION_LONGOPS\r\n10.10.10 V$SESSION_WAIT\r\n10.10.11 V$SESSTAT\r\n10.10.12 V$SESS_IO\r\n10.10.13 V$SQL,V$SQLAREA\r\n10.10.14 V$STATNAME\r\n10.10.15 V$SYSSTAT\r\n10.10.16 V$SYSTEM_EVENT\r\n10.11 小结\r\n\r\n第11章 优化器方案稳定性\r\n\r\n11.1 概述\r\n11.2 优化器方案稳定性的使用\r\n11.2.1 实现优化的方法\r\n11.2.2 开发工具\r\n11.2.3 查看所使用的索引\r\n11.2.4 查看应用程序执行的是什么SQL语句\r\n11.3 优化器方案稳定性是如何工作的\r\n11.4 创建存储大纲\r\n11.4.1 存储大纲需要具备的权限\r\n11.4.2 使用DDL\r\n11.4.3 使用ALTER SESSION\r\n11.5 OUTLN用户\r\n11.6 在数据库之间移动大纲\r\n11.7 得到正确的大纲\r\n11.8 管理大纲\r\n11.8.1 通过DDL管理大纲\r\n11.8.2 OUTLN_PKG程序包\r\n11.9 警告\r\n11.9.1 大纲表的命名和使用场合\r\n11.9.2 ALTER SESSION的问题\r\n11.9.3 Drop User不删除大纲\r\n11.9.4 “CURSOR_SHARING=FORCE”与大纲\r\n11.9.5 大纲使用简单的文本匹配\r\n11.9.6 默认情况下大纲在SYSTEM表空间中\r\n11.9.7 OR扩展\r\n11.9.8 性能\r\n11.9.9 大纲的名称空间是全局变量\r\n11.10 可能遇到的错误\r\n11.11 小结\r\n\r\n第12章 分析函数\r\n\r\n12.1 范例\r\n12.2 分析函数是如何工作的\r\n12.2.1 语法\r\n12.2.2 分析函数\r\n12.3 范例\r\n12.3.1 前N个记录的查询\r\n12.3.2 Pivot(行列转换)查询\r\n12.3.3 访问当前行周围的行\r\n12.4 警告\r\n12.4.1 PL/SQL与分析函数\r\n12.4.2 Where子句中的分析函数\r\n12.4.3 NULL与排序\r\n12.4.4 性能\r\n12.5 小结\r\n\r\n第13章 物化视图\r\n\r\n13.1 简短历史\r\n13.2 运行范例需要什么\r\n13.3 例子\r\n13.4 物化视图的使用\r\n13.5 物化视图如何工作\r\n13.5.1 设置\r\n13.5.2 内部机制\r\n13.6 确保视图可以使用\r\n13.6.1 约束\r\n13.6.2 维数\r\n13.7 DBMS_OLAp\r\n13.7.1 估计大小\r\n13.7.2 维的验证\r\n13.7.3 推荐物化视图\r\n13.8 警告\r\n13.8.1 物化视图不是为OLTP系统设计的\r\n13.8.2 查询重写的完整性\r\n13.9 小结\r\n\r\n第14章 分区\r\n\r\n14.1 分区的使用\r\n14.1.1 提高可用性\r\n14.1.2 减轻管理负担\r\n14.1.3 增强DML和查询的性能\r\n14.2 分区如何工作\r\n14.2.1 表分区模式\r\n14.2.2 分区索引\r\n14.3 小结\r\n\r\n第15章 自治事务\r\n\r\n15.1 范例\r\n15.2 为什么使用自治事务\r\n15.2.1 不能回滚的审计\r\n15.2.2 避免出现变异表的方法\r\n15.2.3 在触发器中执行DDL语句\r\n15.2.4 写入数据库\r\n15.2.5 开发更多的模块化代码\r\n15.3 它自治事务如何工作\r\n15.3.1 事务控制\r\n15.3.2 作用范冈\r\n15.3.3 结束自治事务\r\n15.3.4 保存点\r\n15.4 警告\r\n15.4.1 非分布式事务\r\n15.4.2 只有PL/SQL\r\n15.4.3 整个事务回滚\r\n15.4.4 事务级临时表\r\n15.4.5 变异表\r\n15.5 可能遇到的错误\r\n15.6 小结\r\n\r\n第16章 动态SQL\r\n\r\n16.1 动态SQL与静态SQL\r\n16.2 为什么使用动态SQL\r\n16.3 如何使用动态SQL\r\n16.3.1 DBMS_SQL\r\n16.3.2 本地动态SQL\r\n16.3.3 DBMS SQL与本地动态SQL\r\n16.4 警告\r\n16.4.1 依赖链中断\r\n16.4.2 代码更脆弱\r\n16.4.3 更难以优化\r\n16.5 小结\r\n\r\n第17章 interMedia\r\n\r\n17.1 简要历史\r\n17.2 interMedia Text的用途\r\n17.2.1 搜索文本\r\n17.2.2 管理多种文档\r\n17.2.3 从多种数据源中对文本建立索引\r\n17.2.4 它毕竟是一个Oracle数据库\r\n17.2.5 生成主题\r\n17.2.6 搜索XML应用程序\r\n17.3 interMedia Text如何工作\r\n17.3.1 interMedia Text索引\r\n17.3.2 关于ABOUT操作符\r\n17.3.3 节搜索\r\n17.4 警告\r\n17.4.1 inter Media Text不是文档管理解决方案\r\n17.4.2 索引同步\r\n17.4.3 在数据库外部索引信息\r\n17.4.4 文档服务\r\n17.4.5 目录索引\r\n17.5 可能遇到的错误\r\n17.5.1 过期索引\r\n17.5.2 外部过程错误\r\n17.6 展望\r\n17.7 小结\r\n\r\n第18章 基于C的外部过程\r\n\r\n18.1 何时使用外部过程\r\n18.2 如何实现外部过程\r\n18.3 配置服务器\r\n18.3.1 验证外部过程程序\r\n18.3.2 验证数据库环境\r\n18.3.3 验证监听器\r\n18.4 第一个测试\r\n18.4.1 编译extproc.c代码\r\n18.4.2 建立SCOTT/TIGER账户\r\n18.4.3 创建demolib库\r\n18.4.4 安装和运行\r\n18.5 第一个外部过程\r\n18.5.1 封装函数\r\n18.5.2 C程序代码\r\n18.5.3 建立外部过程\r\n18.5.4 安装和运行\r\n18.6 LOB到文件的外部过程(LOB_IO)\r\n18.6.1 LOB_IO调用规范\r\n18.6.2 LOB_IO的Pro*C程序代码\r\n18.6.3 建立外部过程\r\n18.6.4 LOB_IO的安装和使用\r\n18.7 错误信息\r\n18.8 小结\r\n\r\n第19章 Java存储过程\r\n\r\n19.1 为什么使用Java存储过程\r\n19.2 Java存储过程如何工作\r\n19.2.1 传递数据\r\n19.2.2 范例\r\n19.3 错误信息\r\n19.3.1 ORA-29549 Java会话状态被清除\r\n19.3.2 权限错误\r\n19.3.3 ORA-29531类Y中没有方法X\r\n19.4 小结\r\n\r\n第20章 使用对象关系特性\r\n\r\n20.1 使用对象关系特性的原因\r\n20.2 对象关系特性如何工作\r\n20.3 在系统中增加数据类型\r\n20.4 增加数据类型总结\r\n20.5 利用类型扩展PL/SQL\r\n20.5.1 创建新的PL/SQL数据类型\r\n20.5.2 集合的独特应用\r\n20.6 利用数据类型扩展PL/SQL总结\r\n20.7 对象关系视图\r\n20.7.1 数据类型\r\n20.7.2 O-R视图\r\n20.8 小结\r\n\r\n第21章 精细存取控制\r\n\r\n21.1 范例\r\n21.2 为什么使用这一特性\r\n21.2.1 易于维护\r\n21.2.2 在服务器上执行\r\n21.2.3 避免共享用户账户\r\n21.2.4 支持共享用户账户\r\n21.2.5 在ASP中放置应用程序\r\n21.3 该特性是如何工作的\r\n21.3.1 范例1:实施安全策略\r\n21.3.2 范例2:使用应用程序上下文\r\n21.4 警告\r\n21.4.1 参照完整性\r\n21.4.2 游标隐藏\r\n21.4.3 导出/导入\r\n21.4.4 调试\r\n21.5 错误信息\r\n21.6 小结\r\n\r\n第22章 多层身份验证\r\n\r\n22.1 为什么使用多层身份验证\r\n22.2 多层身份验证机制\r\n22.3 审计代理账户\r\n22.4 警告\r\n22.5 小结\r\n\r\n第23章 调用者权限和定义者权限\r\n\r\n23.1 范例\r\n23.2 何时使用调用者权限\r\n23.2.1 开发通用实用程序\r\n23.2.2 数据字典应用程序\r\n23.2.3 通用对象类型\r\n23.2.4 实现您自己的访问控制\r\n23.3 何时使用定义者权限\r\n23.3.1 性能和可伸缩性\r\n23.3.2 安全性\r\n23.4 调用者权限和定义者权限如何工作\r\n23.4.1 定义者权限\r\n23.4.2 调用者权限\r\n23.5 警告\r\n23.5.1 调用者权限和共享池利用率\r\n23.5.2 性能\r\n23.5.3 程序必须在错误处理上更健壮\r\n23.5.4 使用SELECT*的副作用\r\n23.5.5 注意“隐藏”列\r\n23.5.6 Java和调用者权限\r\n23.6 错误信息\r\n23.7 小结\r\n\r\n附录A 必须提供的程序包\r\n\r\nA.1 DBMS_ALERT和DBMS_PIPE\r\nA.2 DBMS_APPLICATION_INFO\r\nA.3 DBMS_JAVA\r\nA.4 DBMS_JOB\r\nA.5 DBMS_LOB\r\nA.6 DBMS_LOCK\r\nA.7 DBMS_LOGMNR\r\nA.8 DBMS_OBFUSCATION_TOOLKIT\r\nA.9 DBMS_OUTPUT\r\nA.10 DBMS_PROFILER\r\nA.11 DBMS_UTILITY\r\nA.12 UTL_FILE\r\nA.13 UTL_HTTP\r\nA.14 UTL_RAW\r\nA.15 UTL_SMTP和发送邮件\r\nA.16 UTL_TCP\r\n\r\n附录B 技术支持、勘误表和p2p.wrox.com网站\r\n\r\nB.1 p2p.wrox.com网站的在线论坛\r\nB.2 在www.wrox.com网站在线检查勘误表\r\nB.3 如何确切地告诉我们您的想法