
作者:【美】皮特(BoisyG.Pitre
页数:242
出版社:人民邮电出版社
出版日期:2016
ISBN:9787115422309
电子书格式:pdf/epub/txt
内容简介
完全针对初学者,既适合接触过其他编程语言的有经验程序员,也适合有足够学习欲望的新手。
包含大量屏幕截图和示例代码,让初学者全面了解swift和xcode工具集。
基于概念和交互式环境快速扎实掌握苹果开发技能,真正学会开发完整app。
作者简介
Boisy G. Pitre
资深苹果开发专家,曾任Siri语音识别技术提供方Nuance公司Mac产品小组的资深软件工程师,参与开发了语音识别软件Dragon Dictate。MacTech杂志《Developer to Developer》月度专栏作家,曾多次在MacTech和CocoaConf等会议上发表技术演讲。现任情绪识别公司Affectiva的移动远景规划师,领导团队致力于将公司的表情分析技术迁移到移动平台。
相关资料
“boisy g. pitre深入参与了语音开发等多项重大苹果开发项目,并拥有在mactech上撰写专栏的经验,这些都让本书实用且易于理解。”——mac和applescript开发专家bill cheeseman
“对于初学者来说,本书清晰易懂,是快速学习swift语言的参考书!”——amazon.com读者评论
本书特色
本书针对初学者,从变量、类型、函数、闭包等基本概念入手,结合swift 示例,一步步指导读者使用swift 开发app。给出了一个app 开发全流程。
本书适合任何想学习swift 的人员参考。
目录
第一部分 基 础第1章 性能问题 21.1 需要为性能做规划吗 21.1.1 需求分析 21.1.2 分析与设计 41.1.3 编码和单元测试 41.1.4 集成和验收测试 61.2 为性能而设计 61.2.1 缺乏数据库逻辑设计 61.2.2 实现通用表 71.2.3 未使用约束加强数据完整性 71.2.4 缺乏数据库物理设计 71.2.5 未正确选择数据类型 81.2.6 未正确使用绑定变量 81.2.7 未利用数据库高级特性 81.2.8 未使用pl/sql进行以数据为中心的处理 91.2.9 执行不必要的提交 91.2.10 持续打开和关闭数据库连接 91.3 你真的面临性能问题吗 91.3.1 系统监控 101.3.2 响应时间监控 101.3.3 强迫性调优障碍 101.4 如何处理性能问题 111.4.1 业务视角和系统视角 111.4.2 问题的编录 121.4.3 解决问题 121.5 小结 15第2章 关键概念 162.1 选择率和基数 162.2 什么是游标 172.3 游标的生命周期 182.4 解析的工作原理 202.4.1 可共享游标 222.4.2 绑定变量 252.5 读写数据块 352.6 检测 362.6.1 应用程序代码 372.6.2 数据库调用 392.7 小结 42第二部分 识 别第3章 分析可重现的问题 453.1 跟踪数据库调用 453.1.1 sql跟踪 453.1.2 跟踪文件的结构 573.1.3 使用trcsess 593.1.4 探查器 603.1.5 使用tkprof 603.1.6 使用tvd$xtat 703.2 探查pl/sql代码 793.2.1 使用dmbs_hprof 793.2.2 使用dbms_profiler 853.2.3 触发探查器 893.3 小结 90第4章 实时分析不可重现的问题 914.1 分析路线图 914.2 动态性能视图 934.2.1 操作系统统计信息 934.2.2 时间模型统计信息 944.2.3 等待级别和等待事件 964.2.4 系统和会话统计信息 1004.2.5 度量值 1014.2.6 当前会话状态 1024.2.7 活动会话历史 1034.2.8 sql语句统计信息 1114.2.9 实时监控 1124.3 使用diagnosticspack和tuning pack进行分析 1154.3.1 数据库服务器负载 1154.3.2 系统级别分析 1164.3.3 会话级别分析 1204.3.4 sql语句信息 1224.4 不使用diagnosticspack进行分析 1254.4.1 数据库服务器负载 1254.4.2 系统级别分析 1264.4.3 会话级别分析 1294.4.4 sql语句信息 1304.5 小结 131第5章 不可重现问题的事后分析 1325.1 知识库 1325.2 自动工作负载存储库 1335.2.1 执行配置 1335.2.2 捕获快照 1345.2.3 管理基线 1355.3 statspack 1365.3.1 执行安装 1375.3.2 配置存储库 1375.3.3 捕获和清除快照 1385.3.4 管理基线 1395.4 使用diagnosticspack进行分析 1405.5 不使用diagnosticspack进行分析 1405.6 小结 145第三部分 查询优化器第6章 查询优化器简介 1486.1 基础知识 1486.2 体系结构 1506.3 查询转换 1526.3.1 计数转换 1526.3.2 公共子表达式消除 1536.3.3 “或”扩张 1536.3.4 视图合并 1546.3.5 选择列表裁剪 1556.3.6 谓词下推 1566.3.7 谓词迁移 1586.3.8 非重复放置 1586.3.9 非重复消除 1596.3.10 group-by放置 1596.3.11 order-by消除 1606.3.12 子查询展开 1606.3.13 子查询合并 1616.3.14 使用窗口函数移除子查询 1626.3.15 联接消除 1626.3.16 联接因式分解 1636.3.17 外联接转内联接 1636.3.18 完全外联接 1646.3.19 表扩张 1646.3.20 集合操作联接转变 1656.3.21 星型转换 1666.3.22 物化视图查询重写 1666.4 小结 166第7章 系统统计信息 1677.1 dbms_stats包 1677.2 有哪些系统统计信息可用 1687.3 收集系统统计信息 1707.3.1 无工作负载统计信息 1707.3.2 工作负载统计信息 1717.3.3 在无工作负载统计信息和工作负载统计信息之间进行选择 1747.4 还原系统统计信息 1747.5 使用备份表 1757.6 管理操作的日志记录 1767.7 对查询优化器的影响 1777.8 小结 182第8章 对象统计信息 1838.1 dbms_stats包 1838.2 有哪些对象统计信息可用 1858.2.1 表统计信息 1868.2.2 列统计信息 1878.2.3 直方图 1898.2.4 扩展统计信息 2008.2.5 索引统计信息 2058.2.6 分区对象统计信息 2068.3 收集对象统计信息 2078.3.1 目标对象 2088.3.2 收集选项 2128.3.3 备份表 2178.4 配置dbms_stats包 2188.4.1 传统方式 2188.4.2 现代方式 2198.5 处理全局临时表 2218.6 处理挂起的对象统计信息 2228.7 处理分区对象 2238.7.1 挑战 2238.7.2 增量统计信息 2268.7.3 复制统计信息 2288.8 调度对象统计信息的收集 2298.8.1 10g方式 2298.8.2 11g和12c方式 2318.9 还原对象统计信息 2328.10 锁定对象统计信息 2348.11 比较对象统计信息 2368.12 删除对象统计信息 2388.13 导出、导入、获取和设置对象统计信息 2398.14 管理操作的日志记录 2398.15 保持对象统计信息为最新的策略 2418.16 小结 242第9章 配置查询优化器 2439.1 配置还是不配置 2439.2 配置路线图 2449.3 设置正确的参数 2459.3.1 查询优化器参数 2469.3.2 pga管理 2609.4 小结 266第10章 执行计划 26710.1 获取执行计划 26710.1.1 explain plan语句 26710.1.2 动态性能视图 27010.1.3 自动工作负载存储库和statspack 27210.1.4 跟踪工具 27410.2 dbms_xplan包 27710.2.1 输出 27710.2.2 display函数 28110.2.3 display_cursor函数 28610.2.4 display_awr函数 28810.3 解释执行计划 28910.3.1 父?子关系 29010.3.2 操作的类型 29210.3.3 独立操作 29210.3.4 迭代操作 29510.3.5 无关联组合操作 29510.3.6 关联组合操作 29710.3.7 分而治之 30510.3.8 特殊情况 30710.3.9 自适应执行计划 31010.4 识别低效的执行计划 31410.4.1 错误的估算 31410.4.2 未识别限制条件 31610.5 小结 317第四部分 优 化第11章 sql优化技巧 32011.1 修改访问结构 32111.1.1 工作原理 32111.1.2 何时使用 32211.1.3 陷阱和谬误 32211.2 修改sql语句 32211.2.1 工作原理 32211.2.2 何时使用 32311.2.3 陷阱和谬误 32411.3 hint 32411.3.1 工作原理 32411.3.2 何时使用 33011.3.3 陷阱和谬误 33011.4 修改执行环境 33211.4.1 工作原理 33211.4.2 何时使用 33411.4.3 陷阱和谬误 33411.5 存储概要 33411.5.1 工作原理 33511.5.2 何时使用 34311.5.3 陷阱和谬误 34311.6 sql配置文件 34411.6.1 工作原理 34511.6.2 何时使用 35711.6.3 陷阱和谬误 35711.7 sql计划管理 35811.7.1 工作原理 35911.7.2 何时使用 37211.7.3 陷阱和谬误 37211.8 小结 373第12章 解析 37412.1 识别解析问题 37412.1.1 快速解析 37512.1.2 长解析 38012.2 解决解析问题 38112.2.1 快速解析 38112.2.2 长解析 38712.3 避开解析问题 38712.3.1 游标共享 38812.3.2 服务器端语句缓存 39012.4 使用应用编程接口 39212.4.1 pl/sql 39212.4.2 oci 39512.4.3 jdbc 39612.4.4 odp.net 39812.4.5 php 39912.5 小结 400第13章 优化数据访问 40113.1 识别次优访问路径 40113.1.1 识别 40113.1.2 误区 40313.1.3 原因 40513.1.4 解决方案 40613.2 弱选择性的sql语句 40913.2.1 全表扫描 40913.2.2 全分区扫描 41113.2.3 范围分区 41113.2.4 散列和列表分区 42213.2.5 复合分区 42213.2.6 设计要素 42413.2.7 全索引扫描 42613.3 强选择性的sql语句 42913.3.1 rowid访问 42913.3.2 索引访问 43013.3.3 单表散列群集访问 46813.4 小结 470第14章 优化联接 47114.1 定义 47114.1.1 联接树 47114.1.2 联接的类型 47514.1.3 限制条件与联接条件 47814.2 嵌套循环联接 47914.2.1 概念 47914.2.2 两表联接 48014.2.3 四表联接 48114.2.4 缓冲区缓存预取 48214.3 合并联接 48414.3.1 概念 48414.3.2 两表联接 48514.3.3 四表联接 48814.3.4 工作区 48914.4 散列联接 49414.4.1 概念 49414.4.2 两表联接 49514.4.3 四表联接 49614.4.4 工作区 49814.4.5 索引联接 49814.5 外联接 49914.6 选择联接方法 49914.6.1 first-rows优化 50014.6.2 all-rows优化 50014.6.3 支持的联接方法 50014.6.4 并行联接 50014.7 分区智能联接 50114.7.1 完全智能化分区连接 50114.7.2 部分智能化分区联接 50414.8 星型转换 50514.9 小结 511第15章 数据访问和联接优化之外 51215.1 物化视图 51215.1.1 工作原理 51215.1.2 何时使用 53015.1.3 陷阱和谬误 53115.2 结果缓存 53115.2.1 工作原理 53215.2.2 何时使用 53815.2.3 陷阱和谬误 53815.3 并行处理 53915.3.1 工作原理 54015.3.2 何时使用 56715.3.3 陷阱和谬误 56715.4 直接路径插入 57115.4.1 工作原理 57215.4.2 何时使用 57415.4.3 陷阱和谬误 57415.5 行预取 57515.5.1 工作原理 57515.5.2 何时使用 57915.5.3 陷阱和谬误 58015.6 数组接口 58015.6.1 工作原理 58015.6.2 何时使用 58315.6.3 陷阱和谬误 58315.7 小结 583第16章 优化物理设计 58416.1 最优列顺序 58416.2 最优数据类型 58616.2.1 数据类型选择中的陷阱 58616.2.2 数据类型选择最佳实践 58916.3 行迁移和行链接 59116.3.1 迁移与链接 59116.3.2 问题描述 59316.3.3 问题识别 59316.3.4 解决方案 59416.4 块争用 59416.4.1 问题描述 59416.4.2 问题识别 59516.4.3 解决方案 59916.5 数据压缩 60216.5.1 概念 60216.5.2 要求 60316.5.3 方法 603参考文献 606















