书籍详情
SQL语言艺术
作者:(美) Stéphane Faroult, Peter Robson
出版社:电子工业出版社
出版时间:2008-03-01
ISBN:9787121058349
定价:¥58.00
购买这本书可以去
内容简介
本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你的实际工作提出了具体建议。本书适合SQL数据库开发者、软件架构师,也适合DBA,尤其是数据库应用维护人员阅读。
作者简介
Stéphane Faroult从1983年开始接触关系数据库。Oracle法国成立早期他即加入(此前是短暂的IBM经历和渥太华大学任教生涯),并在不久之后对性能和调优产生了兴趣。1988年他离开了Oracle,此后一年间,他进行调整,并研究过运筹学。之后,他重操旧业,一直从事数据库咨询工作,并于1998年创办了RoughSea公司(http://www. roughsea.com)。Stéphane Faroult出版了Fortran Structuré et Méthodes Numériques一书(法语,Dunod出版社,1986, 与Didier Simon合作),并在Oracle Scene和Select(分别为英国和北美Oracle用户组杂志)以及Oracle杂志在线版上发表了许多文章。他还是美国、英国、挪威等众多用户组大会的演讲者。Peter Robson毕业于达拉谟大学地质专业(1968年),然后在爱丁堡大学任教,并于1975年获得地质学研究型硕士学位。在希腊度过了一段地质学家生涯之后,他开始在纽卡斯尔大学专攻地质和医学数据库。他使用数据库始于1977年,1981年开始使用关系数据库,1985年开始使用Oracle,这期间担任过开发工程师、数据架构师、数据库管理员等角色。1980年,Peter参加了英国地质普查,负责指导使用关系数据库管理系统。他擅长SQL系统,以及从组织级到部门级的数据建模。Peter多次出席英国、欧洲、北美的Oracle数据库大会,在许多数据库专业杂志上发表过文章。联系他。
目录
Contents
前言 I
1 制定计划:为性能而设计 1
数据的关系视图 2
规范化的重要性 4
有值、无值、空值 11
限用Boolean型字段 14
理解子类型(Subtype) 15
约束应明确声明 17
过于灵活的危险性 18
历史数据的难题 19
设计与性能 21
处理流程 22
数据集中化(Centralizing) 23
系统复杂性 24
小结 25
2 发动战争:高效访问数据库 27
查询的识别 28
保持数据库连接稳定 29
战略优先于战术 31
先定义问题,再解决问题 32
保持数据库Schema稳定 33
直接操作实际数据 34
用SQL处理集合 34
动作丰富的SQL语句 35
充分利用每次数据库访问 36
接近DBMS核心 37
只做必须做的 41
SQL语句反映业务逻辑 42 把逻辑放到查询中 42
一次完成多个更新 43
慎用自定义函数 44
简洁的SQL 46
SQL的进攻式编程 48
精明地使用异常(Exceptions) 50
3 战术部署:建立索引 55
找到“切入点” 56
索引与目录 59
让索引发挥作用 60
函数和类型转换对索引的影响 62
索引与外键 67
同一字段,多个索引 69
系统生成键 70
索引访问的不同特点 72
4 机动灵活:思考SQL语句 75
SQL的本质 76
掌握SQL艺术的五大要素 84
过滤 89
5 了如指掌:理解物理实现 105
物理结构的类型 106
冲突的目标 108
把索引当成数据仓库 109
记录强制排序 113
数据自动分组(Grouping) 115
分区是双刃剑 119
分区与数据分布 120
数据分区的最佳方法 121
预连接表 123
神圣的简单性 124
6 锦囊妙计:认识经典SQL模式 127
小结果集,直接条件 129
小结果集,间接条件 137
多个宽泛条件的交集 138
多个间接宽泛条件的交集 140
大结果集 146
基于一个表的自连接 147
通过聚合获得结果集 150
基于日期的简单搜索或范围搜索 156
结果集和别的数据存在与否有关 161
7 变换战术:处理层次结构 167
小结果集,直接条件 129
小结果集,间接条件 137
多个宽泛条件的交集 138
多个间接宽泛条件的交集 140
大结果集 146
基于一个表的自连接 147
通过聚合获得结果集 150
基于日期的简单搜索或范围搜索 156
结果集和别的数据存在与否有关 161
8 孰优孰劣:认识困难,处理困难 199
看似高效的查询条件 200
抽象层 202
分布式系统 205
动态定义的搜索条件 208
9 多条战线:处理并发 225
数据库引擎作为服务提供者 226
并发修改数据 231
10 集中兵力:应付大数据量 247
增长的数据量 248
数据仓库 264
11 精于计谋:挽救响应时间 279
数据的行列转换 280
基于变量列表的查询 294
基于范围的聚合 297
一般规则,最后使用 299
查询与列表中多个项目相符的记录 301
最佳匹配查询 304
优化器指令 305
12 明察秋毫:监控性能 307
数据库速度缓慢 308
服务器负载因素 310
何谓“性能优良” 311
从业务任务角度思考 317
执行计划 319
合理运用执行计划 328
总结:影响性能的重要因素 330
Photo Credits 333
索引 335
前言 I
1 制定计划:为性能而设计 1
数据的关系视图 2
规范化的重要性 4
有值、无值、空值 11
限用Boolean型字段 14
理解子类型(Subtype) 15
约束应明确声明 17
过于灵活的危险性 18
历史数据的难题 19
设计与性能 21
处理流程 22
数据集中化(Centralizing) 23
系统复杂性 24
小结 25
2 发动战争:高效访问数据库 27
查询的识别 28
保持数据库连接稳定 29
战略优先于战术 31
先定义问题,再解决问题 32
保持数据库Schema稳定 33
直接操作实际数据 34
用SQL处理集合 34
动作丰富的SQL语句 35
充分利用每次数据库访问 36
接近DBMS核心 37
只做必须做的 41
SQL语句反映业务逻辑 42 把逻辑放到查询中 42
一次完成多个更新 43
慎用自定义函数 44
简洁的SQL 46
SQL的进攻式编程 48
精明地使用异常(Exceptions) 50
3 战术部署:建立索引 55
找到“切入点” 56
索引与目录 59
让索引发挥作用 60
函数和类型转换对索引的影响 62
索引与外键 67
同一字段,多个索引 69
系统生成键 70
索引访问的不同特点 72
4 机动灵活:思考SQL语句 75
SQL的本质 76
掌握SQL艺术的五大要素 84
过滤 89
5 了如指掌:理解物理实现 105
物理结构的类型 106
冲突的目标 108
把索引当成数据仓库 109
记录强制排序 113
数据自动分组(Grouping) 115
分区是双刃剑 119
分区与数据分布 120
数据分区的最佳方法 121
预连接表 123
神圣的简单性 124
6 锦囊妙计:认识经典SQL模式 127
小结果集,直接条件 129
小结果集,间接条件 137
多个宽泛条件的交集 138
多个间接宽泛条件的交集 140
大结果集 146
基于一个表的自连接 147
通过聚合获得结果集 150
基于日期的简单搜索或范围搜索 156
结果集和别的数据存在与否有关 161
7 变换战术:处理层次结构 167
小结果集,直接条件 129
小结果集,间接条件 137
多个宽泛条件的交集 138
多个间接宽泛条件的交集 140
大结果集 146
基于一个表的自连接 147
通过聚合获得结果集 150
基于日期的简单搜索或范围搜索 156
结果集和别的数据存在与否有关 161
8 孰优孰劣:认识困难,处理困难 199
看似高效的查询条件 200
抽象层 202
分布式系统 205
动态定义的搜索条件 208
9 多条战线:处理并发 225
数据库引擎作为服务提供者 226
并发修改数据 231
10 集中兵力:应付大数据量 247
增长的数据量 248
数据仓库 264
11 精于计谋:挽救响应时间 279
数据的行列转换 280
基于变量列表的查询 294
基于范围的聚合 297
一般规则,最后使用 299
查询与列表中多个项目相符的记录 301
最佳匹配查询 304
优化器指令 305
12 明察秋毫:监控性能 307
数据库速度缓慢 308
服务器负载因素 310
何谓“性能优良” 311
从业务任务角度思考 317
执行计划 319
合理运用执行计划 328
总结:影响性能的重要因素 330
Photo Credits 333
索引 335
猜您喜欢