剑破冰山—Oracle开发艺术 目录

来源:互联网 发布:数据恢复按文件夹 编辑:程序博客网 时间:2024/05/27 20:39

目录

第1章 大话数据库编程规范1
1.1 编程规范概述1
1.2 书写规范2
1.2.1 大小写风格2
1.2.2 缩进风格2
1.2.3 空格及换行3
1.2.4 其他4
1.3 命名规范4
1.3.1 表和字段命名规范4
1.3.2 其他对象命名5
1.4 变量命名7
1.5 注释规范8
1.6 语法规范9
1.7 脚本规范12
规则1.7.113
规则1.7.213
规则1.7.313
第2章 oracle开发常用工具及使用14
2.1 awr工具与性能优化14
2.1.1 awr介绍14
.2.1.2 awr的安装与配置15
2.1.3 awr报表使用15
2.1.4 分析awr报表基本思路17
2.1.5 案例17
2.2 sql_trace/10046事件24
2.2.1 sql_trace/10046事件是什么24
2.2.2 总体流程介绍24
2.2.3 sql_trace/10046事件具体使用方法24
2.2.4 案例分析28
2.2.5 小结32
2.3 计时和剖析工具32
2.3.1 plsql_profiler概述34
2.3.2 剖析举例37
2.3.3 安全性45
第3章 探索merge方法46
3.1 merge是什么46
3.2 oracle 10g中merge的完善48
3.2.1 update和insert动作可只出现其一48
3.2.2 可对merge语句加条件48
3.2.3 可用delete子句清除行49
3.2.4 可采用无条件方式insert49
3.3 merge误区探索49
3.3.1 无法在源表中获得一组稳定的行49
3.3.2 delete子句的where顺序必须在最后51
3.3.3 delete 子句只可以删除目标表,而无法删除源表52
3.3.4 更新同一张表的数据,需担心using的空值53
3.4 merge的巧妙运用54
第4章 神秘的null和令人讨厌的char58
4.1 神秘的null59
4.1.1 null概述59
4.1.2 null与函数64
4.1.3 null与索引79
4.1.4 null与sql87
4.1.5 null与pl/sql97
4.1.6 再谈null和空字符串区别101
4.1.7 null总结101
4.2 令人讨厌的char102
4.2.1 char与varchar2基础102
4.2.2 char与sql105
4.2.3 char与绑定变量109
4.2.4 char与pl/sql111
4.2.5 char总结112
第5章 报表开发之扩展group by113
5.1 扩展group by概述113
5.2 rollup114
5.2.1 union all实现rollup功能114
5.2.2 rollup分组116
5.2.3 部分rollup分组120
5.2.4 rollup总结121
5.3 cube121
5.3.1 cube分组121
5.3.2 部分cube分组123
5.3.3 cube总结124
5.4 grouping sets实现小计124
5.4.1 grouping sets分组124
5.4.2 部分grouping sets分组126
5.4.3 cube、rollup作为grouping sets的参数126
5.4.4 grouping sets总结128
5.5 组合列分组、连接分组、重复列分组128
5.5.1 组合列分组130
5.5.2 连接分组132
5.5.3 重复列分组134
5.5.4 组合列分组、连接分组、重复列分组总结134
5.6 3个扩展分组函数:grouping、grouping_id、group_id135
5.6.1 grouping函数135
5.6.2 grouping_id函数138
5.6.3 group_id函数142
5.6.4 扩展group by函数总结144
5.7 扩展分组综合实例144
第6章 探索oracle自动类型转换149
6.1 为什么不建议使用自动类型转换150
6.2 自动类型转换规则156
6.3 自动类型转换常见错误166
第7章 where in list问题解析169
7.1 问题引入:动态sql构造170
7.2 使用正则表达式解决172
7.3 使用常规字符串函数及动态视图173
7.4 使用集合构造伪表176
7.5 where in list性能问题178
7.6 where in list问题总结188
第8章 例说数据库表设计和大量数据处理方法189
8.1 根据业务需求规划表结构189
8.2 主键的确定195
8.3 表的拆分、合并及数据的规范和反规范化199
8.4 数据类型的选择199
8.5 表的分区203
8.6 表的压缩203
8.7 抽取数据205
8.7.1 利用sql*plus的spool功能205
8.7.2 利用utl_file207
8.7.3 利用第三方工具207
8.8 转换数据207
8.8.1 数据的增删改208
8.8.2 数据汇总211
8.9 加载数据227
8.9.1 利用sqlldr加载227
8.9.2 利用外部表加载229
8.9.3 利用数据库链接加载233
8.9.4 利用分区交换技术加载234
8.10 逻辑导入/导出数据240
第9章 数据审核242
9.1 审核的分类242
9.2 列审核设计243
9.2.1 直接使用sql语句245
9.2.2 提高审核效率248
9.2.3 管理审核关系254
9.2.4 单个列的复杂审核257
9.3 行审核设计258
9.3.1 重码的审核259
9.3.2 直接使用sql语句260
9.3.3 管理审核关系261
9.3.4 行间包含四则运算的审核思路266
9.3.5 更复杂的行间审核思路267
9.4 小结267
第10章 趣谈oracle分析函数269
10.1 概述269
10.2 函数语法270
10.3 函数列表276
10.4 函数用法277
10.4.1 最常见的分析函数应用场景279
10.4.2 rows的具体用法280
10.4.3 range的具体用法281
10.4.4 keep的用法283
10.5 函数功能详解284
10.5.1 统计函数284
10.5.2 排序函数285
10.5.3 数据分布函数287
10.5.4 统计分析函数289
10.6 分析函数在bi及统计上的应用290
10.6.1 现状分析290
10.6.2 发展分析297
10.7 自定义聚集函数298
10.7.1 自定义聚集函数接口简介298
10.7.2 应用场景一:字符串聚集299
10.7.3 应用场景二:指数移动平均线301
第11章 oracle层次查询305
11.1 概述305
11.2 样例数据306
11.3 connect by和start with查询306
11.3.1 概述306
11.3.2 基本语法306
11.3.3 样例308
11.4 sys_connect_by_path函数313
11.5 wmsys.wm_concat非公开函数314
第12章 号段选取应用316
12.1 问题的提出316
12.2 相关基础知识317
12.2.1 伪列rownum和level317
12.2.2 利用层次查询构造连续的数317
12.2.3 用lead和lag获得相邻行的字段值318
12.3 解决问题320
12.3.1 已知号码求号段320
12.3.2 根据号段求出包含的数324
12.3.3 求缺失的号326
12.3.4 求尚未使用的号段330
12.4 小结334
第13章 分析sql执行计划的关注点335
13.1 返回行与逻辑读的比率335
13.2 聚合查询338
13.3 返回行的数量341
13.4 oracle预测行准确与否342
13.5 predicate information346
13.6 动态采样348
13.7 谁是主要矛盾349
第14章 oracle开发误区探索352
14.1 避免对列运算352
14.2 消除隐式转换354
14.3 关注空格354
14.4 存储过程与权限355
14.5 提防ddl提交事务357
14.6 insert into 错误359
14.7 关于or360
14.8 sequence中的cache361
14.9 树形查询易错处364
14.10 小心保留字367
14.11 函数索引陷阱371
14.12 外连接陷阱374
14.13 标量子查询375
第15章 提升pl/sql开发性能漫谈378
15.1 重视解析378
15.1.1 触发器尽量考虑内部代码过程封装378
15.1.2 避免动态sql380
15.1.3 oltp系统中尽量使用绑定变量382
15.2 关注调用384
15.2.1 减少对sysdate的调用384
15.2.2 避免对mod函数的调用385
15.2.3 设法减少表扫描次数386
15.2.4 避免sql中的函数调用391
15.3 简洁为王395
15.3.1 尽量用简单sql替代pl/sql逻辑395
15.3.2 避免不必要的排序397
15.3.3 利用oracle现有功能399
15.4 细致入微400
15.4.1 使用pls_integer类型400
15.4.2 避免数据类型转换400
15.4.3 if的顺序有讲究402
15.4.4 设计开发对列是否为空慎重决定404
15.4.5 分布式应用开发不可不知的hint(driving_site)407
第16章 管道函数的学习与实战应用410
16.1 管道函数编写要点410
16.2 功能描述及案例411
16.2.1 可直接用table()操作符方式输出结果集411
16.2.2 结果集可作为表来使用,直接和其他表相关联411
16.2.3 实现实时跟踪412
16.3 管道函数注意点414
16.3.1 清楚管道函数只是表函数的一种414
16.3.2 管道函数与dml415
16.3.3 管道函数集合的限制416
16.3.4 与管道函数相关的异常no_data_needed417
第17章 巧用锁特性避免重复启动同一程序420
17.1 基本技巧介绍420
17.2 原理介绍422
17.3 程序代码423
17.4 测试426
17.5 需要注意的点427
第18章 11g r2 新特性之递归with编程精粹428
18.1 上下级关系429
18.2 构造数列435
18.3 排列组合问题441
18.4 沿路径计算457
18.5 国际sql挑战赛473
第19章 不可能的任务?超越oracle479
19.1 为何选择cube480
19.1.1 cube简介480
19.1.2 cube优势480
19.1.3 测试环境481
19.2 newkid的设计思路和优化步骤482
19.2.1 一次扫描求出16种分组482
19.2.2 一次扫描求出1种分组,并基于此再一次扫描求出其余分组484
19.2.3 一次扫描求出1种分组,并基于此再多次分层累计求出其余分组485
19.2.4 变量长度和类型的优化487
19.3 为何选择oci488
19.3.1 汇总算法的翻译和改进488
19.3.2 输入和输出的实现和改进489
19.3.3 不要忽视物理存储对数据库操作的影响490
19.3.4 不成功的优化教训490
19.4 总结493
第20章 动态sql扩展494
20.1 动态sql用途和应用场景494
20.2 execute immediate语法495
20.2.1 执行ddl、dcl语句495
20.2.2 构造通用sql处理496
20.2.3 执行复杂业务逻辑查询498
20.2.4 绑定变量502
20.2.5 bulk collect动态sql505
20.3 使用dbms_sql包507
20.3.1 dbms_sql函数和过程说明507
20.3.2 dbms_sql执行步骤508
20.3.3 dbms_sql应用场景509
20.3.4 dbms_sql与execute immediate比较509
后记511

原创粉丝点击