注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计程序设计综合Oracle SQL高级编程

Oracle SQL高级编程

Oracle SQL高级编程

定 价:¥89.00

作 者: (美) Karen Morton Kerry Osborne Robyn Sands 著,朱浩波 译
出版社: 人民邮电出版社
丛编项:
标 签: SQL

购买这本书可以去


ISBN: 9787115266149 出版时间: 2011-11-01 包装: 平装
开本: 16开 页数: 502 字数:  

内容简介

  Oracle数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力。如何才能让更多人有效地学习和掌握SQL呢?KarenMorton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习Oracle为提升语言效率而加入的支持特性,进而将两者综合考虑并在工作中加以应用。作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握OracleSQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:n 掌握Oracle数据库中独有的SQL强大特征;n读取并理解SQL执行计划;n快速分析并改进表现欠佳的SQL;n 通过提示及配置文件等来控制执行计划;n在程序中优化查询而无需改动代码。作为OracleSQL经典著作之一,本书为SQL开发人员指明了前行的方向,赋予了他们不断开拓的动力。

作者简介

  作者:莫顿(Karen Morton) (美国)Kerry Osborne (美国)Robyn Sands 等 译者:朱浩波 莫顿,Karen Morton,研究人员、教育家及顾问,Fidelity信息服务公司的资深数据库管理员和性能调优专家。她从20世纪90年代初就开始使用Oracle,从事 Oracle的教学工作也已经超过10年的时间。她是Oracle ACE,也是OakTable(Oracle社区中著名的“Oracle科学家”的非正式组织)的成员,经常在技术会议上演讲。她的著作还包括 Expert Oracle Practices和Beginning Oracle SQL。 Kerry Osborne,专注于Oracle咨询的Enkitec公司的创始人之一。从1982年开始使用Oracle(第2版)。他当过开发人员,也做过DBA,目前是 Oracle ACE总监和OakTable成员。最近几年,他专注于研究Oracle内部原理以及解决性能问题。 Robyn Sands,思科公司的软件工程师,为思科的客户设计开发嵌入式Oracle数据库产品。从1996年开始使用Oracle,在应用开发、大型系统实现以及性能评估方面具有丰富的经验。她是OakTable的成员,同时是Expert Oracle Practices (2010年 Apress出版)一书的合著者。 RIYAJ SHAMSUDEEN 专注于性能/数据恢复/电子商务的咨询公司OraInternals的首席数据库管理员和董事长。有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。 JARED STILL,从1994年就开始使用Oracle。他认为对于SQL的学习是永无止境的,相信每一个查询Oracle数据库的人都需要精通SQL语言,才能写出高效的查询。他参与本书的编写就是为了帮助别人实现这一目标。

图书目录

第1 章  SQL 核心  1
1.1  SQL 语言  1
1.2  数据库的接口  2
1.3  SQL*Plus 回顾  3
1.3.1  连接到数据库  3
1.3.2  配置SQL*Plus 环境  4
1.3.3  执行命令  6
1.4 5  个核心的SQL 语句  8
1.5  SELECT 语句  8
1.5.1  FROM 子句  9
1.5.2  WHERE 子句  11
1.5.3  GROUP BY 子句  11
1.5.4  HAVING 子句  12
1.5.5  SELECT 列表  12
1.5.6  ORDER BY 子句  13
1.6  INSERT 语句  14
1.6.1  单表插入  14
1.6.2  多表插入  15
1.7  UPDATE 语句  17
1.8  DELETE 语句  20
1.9  MERGE 语句  22
1.10  小结  24
第2 章  SQL 执行  25
2.1  Oracle 架构基础  25
2.2  SGA-共享池  27
2.3  库高速缓存  28
2.4  完全相同的语句  29
2.5  SGA-缓冲区缓存  32
2.6  查询转换  35
2.7  视图合并  36
2.8  子查询解嵌套  39
2.9  谓语前推  42
2.10  使用物化视图进行查询重写  44
2.11  确定执行计划  46
2.12  执行计划并取得数据行  50
2.13  SQL 执行——总览  52
2.14  小结  53
第3 章  访问和联结方法  55
3.1  全扫描访问方法  55
3.1.1  如何选择全扫描操作  56
3.1.2  全扫描与舍弃  59
3.1.3  全扫描与多块读取  60
3.1.4  全扫描与高水位线  60
3.2  索引扫描访问方法  65
3.2.1  索引结构  66
3.2.2  索引扫描类型  68
3.2.3  索引唯一扫描  71
3.2.4  索引范围扫描  72
3.2.5  索引全扫描  74
3.2.6  索引跳跃扫描  77
3.2.7  索引快速全扫描  79
3.3  联结方法  80
3.3.1  嵌套循环联结  81
3.3.2  排序—合并联结  83
3.3.3  散列联结  84
3.3.4  笛卡儿联结  87
3.3.5  外联结  88
3.4  小结  94
第4 章  SQL 是关于集合的  95
4.1  以面向集合的思维方式来思考  95
4.1.1  从面向过程转变为基于集合的思维方式  96
4.1.2  面向过程vs.基于集合的思维方式:一个例子  100
4.2  集合运算  102
4.2.1  UNION 和UNION ALL  103
4.2.2  MINUS  106
4.2.3  INTERSECT   107
4.3  集合与空值  108
4.3.1  空值与非直观结果  108
4.3.2  集合运算中的空值行为  110
4.3.3  空值与GROUP BY 和ORDER BY   112
4.3.4  空值与聚合函数  114
4.4  小结  114
第5 章  关于问题  116
5.1  问出好的问题  116
5.2  提问的目的  117
5.3  问题的种类  117
5.4  关于问题的问题  119
5.5  关于数据的问题  121
5.6  建立逻辑表达式  126
5.7  小结  136
第6 章  SQL 执行计划  137
6.1  解释计划  137
6.1.1  使用解释计划  137
6.1.2  理解解释计划可能达不到目的的方式  143
6.1.3  阅读计划  146
6.2  执行计划  148
6.2.1  查看最近生成的SQL 语句  149
6.2.2  查看相关执行计划  149
6.2.3  收集执行计划统计信息  151
6.2.4  标识SQL 语句以便以后取回计划  153
6.2.5  深入理解DBMS_XPLAN 的细节  156
6.2.6  使用计划信息来解决问题  161
6.3  小结  169
第7 章  高级分组  170
7.1  基本的GROUP BY 用法  171
7.2  HAVING 子句   174
7.3  GROUP BY 的“新”功能  175
7.4  GROUP BY 的CUBE 扩展  175
7.5  CUBE 的实际应用   179
7.6  通过GROUPING()函数排除空值  185
7.7  用GROUPING()来扩展报告  186
7.8  使用GROUPING_ID()来扩展报告  187
7.9  GROUPING SETS 与ROLLUP()   191
7.10  GROUP BY 局限性  193
7.11  小结  196
第8 章  分析函数   197
8.1  示例数据  197
8.2  分析函数剖析   198
8.3  函数列表   199
8.4  聚合函数   200
8.4.1  跨越整个分区的聚合函数  201
8.4.2  细粒度窗口声明  201
8.4.3  默认窗口声明   202
8.5  Lead 和Lag    202
8.5.1  语法和排序  202
8.5.2  例1:从前一行中返回一个值  203
8.5.3  理解数据行的位移  204
8.5.4  例2:从下一行中返回一个值  204
8.6  First_value 和Last_value    205
8.6.1  例子:使用First_value 来计算最大值   206
8.6.2  例子:使用Last_value 来计算最小值   207
8.7  其他分析函数   207
8.7.1  Nth_value (11gR2)    207
8.7.2  Rank    209
8.7.3  Dense_rank    210
8.7.4  Row_number    211
8.7.5  Ratio_to_report   211
8.7.6  Percent_rank   212
8.7.7  Percentile_cont   213
8.7.8  Percentile_disc   215
8.7.9  NTILE  215
8.7.10  Stddev   216
8.7.11  Listagg   217
8.8  性能调优  218
8.8.1  执行计划  218
8.8.2  谓语  219
8.8.3  索引  220
8.9  高级话题  221
8.9.1  动态SQL   221
8.9.2  嵌套分析函数  222
8.9.3  并行  223
8.9.4  PGA 大小  224
8.10  组织行为  224
8.11  小结  224
第9 章  Model 子句  225
9.1  电子表格  225
9.2  通过Model 子句进行跨行引用  226
9.2.1  示例数据  226
9.2.2  剖析Model 子句  227
9.2.3  规则  228
9.3  位置和符号引用  229
9.3.1  位置标记  229
9.3.2  符号标记  230
9.3.3  FOR 循环  231
9.4  返回更新后的行  232
9.5  求解顺序  233
9.5.1  行求解顺序  233
9.5.2  规则求解顺序  235
9.6  聚合  237
9.7  迭代  237
9.7.1  一个例子  238
9.7.2  PRESENTV与空值  239
9.8  查找表  240
9.9  空值  242
9.10  使用Model子句进行性能调优  243
9.10.1  执行计划  243
9.10.2  谓语前推  246
9.10.3  物化视图  247
9.10.4  并行  249
9.10.5  Model 子句执行中的分区  250
9.10.6  索引  251
9.11  子查询因子化  252
9.12  小结  253
第10 章  子查询因子化  254
10.1  标准用法  254
10.2  SQL 优化  257
10.2.1  测试执行计划  257
10.2.2  跨多个执行的测试  260
10.2.3  测试查询改变的影响  263
10.2.4  寻找其他优化机会  266
10.2.5  将子查询因子化应用到PL/SQL 中  270
10.3  递归子查询  273
10.3.1  一个CONNECT BY 的例子  274
10.3.2  使用RSF 的例子  275
10.3.3  RSF 的限制条件  276
10.3.4  与CONNECT BY 的不同点  276
10.4  复制CONNECT BY 的功能  277
10.4.1  LEVEL 伪列  278
10.4.2  SYS_CONNECT_BY_PATH 函数  279
10.4.3  CONNECT_BY_ROOT 运算符  281
10.4.4  CONNECT_BY_ISCYCLE伪列和NOCYCLE 参数  284
10.4.5  CONNECT_BY_ISLEAF 伪列  287
10.5  小结  291
第11 章  半联结和反联结  292
11.1  半联结  292
11.2  半联结执行计划  300
11.3  控制半联结执行计划  305
11.3.1  使用提示控制半联结执行计划  305
11.3.2  在实例级控制半联结执行计划  308
11.4  半联结限制条件  310
11.5  半联结必要条件  312
11.6  反联结  312
11.7  反联结执行计划  317
11.8  控制反联结执行计划  326
11.8.1  使用提示控制反联结执行计划  326
11.8.2  在实例级控制反联结执行计划  327
11.9  反联结限制条件  330
11.10  反联结必要条件  333
11.11  小结  333
第12 章  索引  334
12.1  理解索引  335
12.1.1  什么时候使用索引  335
12.1.2  列的选择  337
12.1.3  空值问题  338
12.2  索引结构类型  339
12.2.1  B-树索引  339
12.2.2  位图索引  340
12.2.3  索引组织表  341
12.3  分区索引  343
12.3.1  局部索引  343
12.3.2  全局索引  345
12.3.3  散列分区与范围分区  346
12.4  与应用特点相匹配的解决方案  348
12.4.1  压缩索引  348
12.4.2  基于函数的索引  350
12.4.3  反转键索引  353
12.4.4  降序索引  354
12.5  管理问题的解决方案  355
12.5.1  不可见索引  355
12.5.2  虚拟索引  356
12.5.3  位图联结索引  357
12.6  小结  359
第13 章  SELECT 以外的内容  360
13.1  INSERT  360
13.1.1  直接路径插入  360
13.1.2  多表插入   363
13.1.3  条件插入   364
13.1.4  DML 错误日志   364
13.2  UPDATE  371
13.3  DELETE  376
13.4  MERGE   380
13.4.1  语法和用法  380
13.4.2  性能比较   383
13.5  小结   385
第14 章  事务处理   386
14.1  什么是事务   386
14.2  事务的ACID 属性   387
14.3  事务隔离级别  388
14.4  多版本读一致性   390
14.5  事务控制语句  391
14.5.1  Commit(提交)  391
14.5.2  Savepoint(保存点)    391
14.5.3  Rollback(回滚)    391
14.5.4  Set Transaction(设置事务)    391
14.5.5  Set Constraints(设置约束)    392
14.6  将运算分组为事务   392
14.7  订单录入模式  393
14.8  活动事务   399
14.9  使用保存点   400
14.10  序列化事务   403
14.11  隔离事务   406
14.12  自治事务   409
14.13  小结  413
第15 章  测试与质量保证   415
15.1  测试用例   416
15.2  测试方法   417
15.3  单元测试   418
15.4  回归测试   422
15.5  模式修改   422
15.6  重复单元测试  425
15.7  执行计划比较  426
15.8  性能测量   432
15.9  在代码中加入性能测量  432
15.10  性能测试  436
15.11  破坏性测试  437
15.12  通过性能测量进行系统检修  439
15.13  小结  442
第16 章  计划稳定性与控制  443
16.1  计划不稳定性:理解这个问题  443
16.1.1  统计信息的变化  444
16.1.2  运行环境的改变  446
16.1.3  SQL 语句的改变  447
16.1.4  绑定变量窥视  448
16.2  识别执行计划的不稳定性  450
16.2.1  抓取当前所运行查询的数据  451
16.2.2  查看一条语句的性能历史  452
16.2.3  按照执行计划聚合统计信息  454
16.2.4  寻找执行计划的统计方差  454
16.2.5  在一个时间点附近检查偏差  456
16.3  执行计划控制:解决问题  458
16.3.1  调整查询结构  459
16.3.2  适当使用常量  459
16.3.3  给优化器一些提示  459
16.4  执行计划控制:不能直接访问代码  466
16.4.1  选项1:改变统计信息  467
16.4.2  选项2:改变数据库参数  469
16.4.3  选项3:增加或移除访问路径  469
16.4.4  选项4:应用基于提示的执行计划控制机制  470
16.4.5  大纲  470
16.4.6  SQL 概要文件  481
16.4.7  SQL 执行计划基线  496
16.4.8  基于提示的执行计划控制机制总结  502
16.5  结论  502

本目录推荐