本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你的实际工作提出了具体建议。本书适合SQL数据库开发者、软件架构师,也适合DBA,尤其是数据库应用维护人员阅读。
前言\r\n1 制定计划:为性能而设计\r\n 数据的关系视图\r\n 规范化的重要性\r\n 有值、无值、空值\r\n 限用Boolean型字段\r\n 理解子类型(Subtype)\r\n 约束应明确声明\r\n 过于灵活的危险性\r\n 历史数据的难题\r\n 设计与性能\r\n 处理流程\r\n 数据集中化(Centralizing)\r\n 系统复杂性\r\n 小结\r\n2 发动战争:高效访问数据库\r\n 查询的识别\r\n 保持数据库连接稳定\r\n 战略优先于战术\r\n 先定义问题,再解决问题\r\n 保持数据库Schema稳定\r\n 直接操作实际数据\r\n 用SQL处理集合\r\n 动作丰富的SQL语句\r\n 充分利用每次数据库访问\r\n 接近DBMS核心\r\n 只做必须做的\r\n sQL语句反映业务逻辑\r\n 把逻辑放到查询中\r\n 一次完成多个更新\r\n 慎用自定义函数\r\n 简洁的SQL\r\n SQL的进攻式编程\r\n 精明地使用异常(Exceptions)\r\n3 战术部署:建立索引\r\n 找到“切入点”\r\n 索引与目录\r\n 让索引发挥作用\r\n 函数和类型转换对索引的影响\r\n 索引与外键\r\n 同一字段,多个索引\r\n 系统生成键\r\n 索引访问的不同特点\r\n4 机动灵活:思考SQL语句\r\n SQL的本质\r\n 掌握SQL艺术的五大要素\r\n 过滤\r\n 5 了如指掌:理解物理实现\r\n 物理结构的类型\r\n 冲突的目标\r\n 把索引当成数据仓库\r\n 记录强制排序\r\n 数据自动分组(Grouping)\r\n 分区是双刃剑\r\n 分区与数据分布\r\n 数据分区的最佳方法\r\n 预连接表\r\n 神圣的简单性\r\n6 锦囊妙计:认识经典SQL模式\r\n 小结果集,直接条件\r\n 小结果集,间接条件\r\n 多个宽泛条件的交集\r\n 多个间接宽泛条件的交集\r\n 大结果集\r\n 基于一个表的自连接\r\n 通过聚合获得结果集\r\n 基于日期的简单搜索或范围搜索\r\n 结果集和别的数据存在与否有关\r\n7 变换战术:处理层次结构\r\n 小结果集,直接条件\r\n 小结果集,间接条件\r\n 多个宽泛条件的交集\r\n 多个间接宽泛条件的交集\r\n 大结果集\r\n 基于一个表的自连接\r\n 通过聚合获得结果集\r\n 基于日期的简单搜索或范围搜索\r\n 结果集和别的数据存在与否有关\r\n8 孰优孰劣:认识困难,处理困难\r\n 看似高效的查询条件\r\n 抽象层\r\n 分布式系统\r\n 动态定义的搜索条件\r\n9 多条战线:处理并发\r\n 数据库引擎作为服务提供者\r\n 并发修改数据\r\n10 集中兵力:应付大数据量\r\n 增长的数据量\r\n 数据仓库\r\n11 精于计谋:挽救响应时间\r\n 数据的行列转换\r\n 基于变量列表的查询\r\n 基于范围的聚合\r\n 一般规则,最后使用\r\n 查询与列表中多个项目相符的记录\r\n 最佳匹配查询\r\n 优化器指令\r\n12 明察秋毫:监控性能\r\n 数据库速度缓慢\r\n 服务器负载因素\r\n 何谓“性能优良”\r\n 从业务任务角度思考\r\n 执行计划\r\n 合理运用执行计划\r\n 总结:影响性能的重要因素\r\n Photo Credits\r\n 索引
Stephane Faroult,经营着RoughSea公司,从事数据库咨询业务,致力于帮助客户从数据库投资中获得最佳性能。他的SQL经验开始于1983年。Oracle法国的第一个性能及调优课程就是他1987年编写的。
无封面