11.2 overview

Similar documents
Oracle9i 的查询优化

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

Microsoft Word - 【預官_士_考選歷屆試題86~100】.doc

019-

Microsoft Word - 台東縣文學.doc

Microsoft Word - _二_-1-2D研習講義-孫藝玨.doc

第 1 頁 C97131 第 一 部 分 : 選 擇 題 ( 佔 54 分 ) 一 單 選 題 ( 佔 36 分 ) 說 明 : 第 1 題 至 第 18 題, 每 題 選 出 一 個 最 適 當 的 選 項, 標 示 在 答 案 卡 之 選 擇 題 答 案 區 每 題 答 對 得 2 分, 答 錯

第 一 部 分 目 录 销 售 管 理 规 范 汇 编... 5 Ⅰ 销 售 资 格 管 理 篇 关 于 保 险 公 司 销 售 人 员 资 格 管 理 的 规 定 关 于 银 邮 代 理 机 构 代 理 资 格 管 理 的 规 定 关 于 银 邮

Microsoft Word - Book 3 巫山行.doc

027-

zt

一、银行结售汇业务

田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田

浙 江 财 经 大 学 891 统 计 学 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 浙 江 财 经 大 学 统 计 学 891 全 套 考 研 资 料...22 浙 江 财 经 大 学 高 等 数 学 601 全 套 考 研 资 料

Microsoft Word - Book 11 人道行.doc

<4D F736F F D EA16DBB50B3AFA742A4A7AED1A16EBD67A6AEA4CEA8E4C3C0B34EAF53A6E2B1B4AA522D2DB3B9A5BFA9BE5F702E34332D35345F2E646F63>

盐 田 区 2015 年 社 会 建 设 行 动 计 划 2015 年 是 全 面 深 化 改 革 的 关 键 之 年 全 面 推 进 依 法 治 区 的 开 局 之 年, 也 是 十 二 五 规 划 的 收 官 之 年 十 三 五 规 划 的 谋 划 之 年 结 合 省 市 年 度 社 会 工 作

025-

山 东 财 经 大 学 431 金 融 学 综 合 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 2-2 金 融 学 笔 记, 由 考 取 本 校 本 专 业 高 分 研 究 生 总 结 而 来, 重 点 突 出, 借 助 此 笔 记 可 以 大 大 提 高 复 习 2-3 金

042-

親鸞和懺悔道的哲學

<4D F736F F D BEC7A67E2DB5A7B8D52DBB79A4E5AFE0A44FB4FAC5E7BEE3A658A5FE2E646F63>

Microsoft Word - Book 2 月下行.doc

鲤城区保留的区级前置审批事项目录(116项).xls

关于印发《干部人事档案材料收集归档规定》的通知

第 1 頁 C97232 第 一 部 分 : 選 擇 題 ( 佔 55 分 ) 一 單 選 題 ( 佔 34 分 ) 說 明 : 第 1 至 第 17 題, 每 題 選 出 一 個 最 適 當 的 選 項, 劃 記 在 答 案 卡 之 選 擇 題 答 案 區 每 題 答 對 得 2 分, 答 錯 或

蘇轍〈黃州快哉亭記〉析論

第 1 頁 C97231 第 一 部 分 : 選 擇 題 ( 佔 55 分 ) 一 單 選 題 ( 佔 34 分 ) 說 明 : 第 1 至 第 17 題, 每 題 選 出 一 個 最 適 當 的 選 項, 劃 記 在 答 案 卡 之 選 擇 題 答 案 區 每 題 答 對 得 2 分, 答 錯 或


Microsoft Word 司仲敖.doc

一 緒 論 ( 一 ) 研 究 動 機 及 目 的 中 國 唐 代 為 佛 教 發 展 輝 煌 時 期, 其 中 禪 宗 也 是 當 時 鼎 盛 流 行 的 宗 派 之 一 本 文 主 要 在 探 討 馬 祖 道 一 (709~788, 以 下 簡 稱 馬 祖 ) 所 傳 承 的 洪 州 禪 ( 又

彰化縣九十一年運動大會目錄

专业技术人员正高级


語文學習領域─本國語文(國語文)




学 习 贯 彻 中 央 尧 省 尧 市 纪 委 全 会 精 神 专 栏 中 国 共 产 党 第 十 八 届 中 央 纪 律 检 查 委 员 会 第 六 次 全 体 会 议 公 报 渊 2016 年 1 月 14 日 中 国 共 产 党 第 十 八 届 中 央 纪 律 检 查 委 员 会 第 六 次

Microsoft Word - 临政办发12.doc

中共山东省委高校工委

目 录 第 一 部 分 国 家 知 识 产 权 局 概 况 一 主 要 职 能 二 部 门 预 算 单 位 构 成 第 二 部 分 国 家 知 识 产 权 局 2016 年 部 门 预 算 表 一 财 政 拨 款 收 支 总 表 二 一 般 公 共 预 算 支 出 表 三 一 般 公 共 预 算 基

科学技术部2013年度部门预算

一、二○○二年学校工作的简要回顾

Microsoft Word - 白俄罗斯公司法汉语译文2015年7月15日修改版.docx

第 一 部 分 中 国 气 象 局 职 责 及 概 况 一 主 要 职 责 ( 一 ) 拟 定 气 象 工 作 的 方 针 政 策 法 律 法 规 发 展 战 略 和 长 远 规 划 ; 制 定 发 布 气 象 工 作 的 规 章 制 度 技 术 标 准 和 规 范 并 监 督 实 施 ; 承 担

无 锡 职 业 技 术 学 院 国 有 资 产 管 理 办 法 第 一 章 总 则 第 一 条 为 加 强 学 校 国 有 资 产 管 理, 合 理 配 置 和 有 效 使 用 国 有 资 产, 确 保 国 有 资 产 安 全 与 完 整, 保 障 和 促 进 学 校 各 项 事 业 发 展, 根

南 昌 大 学 人 力 资 源 工 作 简 讯 2015 年 第 2 期 ( 总 第 27 期 ) 目 录 1 人 力 资 源 综 合 信 息 2 人 员 调 配 及 机 构 编 制 管 理 信 息 3 劳 资 工 作 信 息 4 师 资 管 理 信 息 5 高 层 次 人 才 及 队 伍 建 设

三亚市政府投资建设项目代建制管理工作介绍

目 录 一 部 门 职 责... 1 二 预 算 编 报 范 围... 3 三 2013 年 部 门 预 算 报 表 及 情 况 说 明... 5 收 支 预 算 总 表 及 情 况 说 明... 5 收 入 预 算 表 及 情 况 说 明... 7 支 出 预 算 表 及 情 况 说 明... 1

Transcription:

1

< 在 此 处 插 入 图 片 > Explain Plan 命 令 说 明 Maria Colgan

免 责 声 明 本 讲 座 旨 在 为 您 提 供 有 关 如 何 阅 读 SQL 执 行 计 划 的 说 明, 并 帮 助 您 确 定 该 计 划 是 否 满 足 您 的 要 求 本 讲 座 并 不 能 使 您 一 举 成 为 优 化 器 专 家, 也 无 法 使 您 具 备 轻 松 调 整 SQL 语 句 的 能 力!

议 题 什 么 是 执 行 计 划, 如 何 生 成 执 行 计 划? 一 个 优 秀 的 优 化 器 计 划 是 什 么 样 的? 理 解 执 行 计 划 基 数 访 问 方 法 联 接 顺 序 联 接 类 型 分 区 修 剪 并 行 度 执 行 计 划 示 例

什 么 是 执 行 计 划, 如 何 生 成 执 行 计 划? < 在 此 处 插 入 图 片 >

什 么 是 执 行 计 划? 执 行 计 划 显 示 在 执 行 一 条 SQL 语 句 时 必 须 执 行 的 详 细 步 骤 这 些 步 骤 表 示 为 一 组 数 据 库 运 算 符, 这 些 运 算 符 将 使 用 和 生 成 行 这 些 运 算 符 及 其 实 施 的 顺 序 由 优 化 器 使 用 查 询 转 换 及 物 理 优 化 技 术 的 组 合 来 确 定 执 行 计 划 通 常 以 表 格 的 形 式 显 示, 但 它 实 际 上 为 树 形

什 么 是 执 行 计 划? 查 询 SELECT prod_category, avg(amount_sold) FROM sales s, products p WHERE p.prod_id = s.prod_id GROUP BY prod_category; 执 行 计 划 的 表 格 表 示 ----------------------------------------------------------- Id Operation Name ----------------------------------------------------------- 0 SELECT STATEMENT 1 HASH GROUP BY 2 HASH JOIN 3 TABLE ACCESS FULL PRODUCTS 4 PARTITION RANGE ALL 5 TABLE ACCESS FULL SALES ---------------------------------------------------------- 执 行 计 划 的 树 形 表 示 TABLE ACCESS PRODUCTS Group By HASH JOIN TABLE ACCESS SALES

如 何 获 取 执 行 计 划 可 以 使 用 两 种 方 法 查 看 执 行 计 划 1.EXPLAIN PLAN 命 令 显 示 一 条 SQL 语 句 的 执 行 计 划, 而 不 实 际 执 行 此 语 句 2.V$SQL_PLAN 在 Oracle 9i 中 引 入 的 字 典 视 图, 它 可 显 示 已 编 译 到 游 标 缓 存 中 一 个 游 标 的 一 条 SQL 语 句 的 执 行 计 划 使 用 DBMS_XPLAN 包 来 显 示 执 行 计 划 在 某 些 情 况 下, 使 用 EXPLAIN PLAN 显 示 的 计 划 可 能 与 使 用 V$SQL_PLAN 显 示 的 计 划 不 同

如 何 获 取 执 行 计 划 示 例 1 EXPLAIN PLAN 命 令 和 dbms_xplan.display 函 数 SQL> EXPLAIN PLAN FOR SELECT prod_category, avg(amount_sold) FROM sales s, products p WHERE p.prod_id = s.prod_id GROUP BY prod_category; Explained SQL> SELECT plan_table_output FROM table(dbms_xplan.display('plan_table',null,'basic')); ------------------------------------------ Id Operation Name ------------------------------------------ 0 SELECT STATEMENT 1 HASH GROUP BY 2 HASH JOIN 3 TABLE ACCESS FULL PRODUCTS 4 PARTITION RANGE ALL 5 TABLE ACCESS FULL SALES -------------------------------------------

如 何 获 取 执 行 计 划 示 例 2 生 成 并 显 示 在 会 话 中 最 后 执 行 的 SQL 语 句 的 执 行 计 划 SQL>SELECT prod_category, avg(amount_sold) FROM sales s, products p WHERE p.prod_id = s.prod_id GROUP BY prod_category; no rows selected SQL> SELECT plan_table_output FROM table(dbms_xplan.display_cursor(null,null,'basic')); ------------------------------------------ Id Operation Name ------------------------------------------ 0 SELECT STATEMENT 1 HASH GROUP BY 2 HASH JOIN 3 TABLE ACCESS FULL PRODUCTS 4 PARTITION RANGE ALL 5 TABLE ACCESS FULL SALES -------------------------------------------

一 个 优 秀 的 优 化 器 计 划 是 什 么 样 的? < 在 此 处 插 入 图 片 >

一 个 优 秀 的 优 化 器 计 划 是 什 么 样 的? 优 化 器 有 两 个 不 同 的 目 标 串 行 执 行 : 其 关 注 的 是 开 销 开 销 越 低 越 好 并 行 执 行 : 其 关 注 的 是 性 能 速 度 越 快 越 好 两 个 基 本 问 题 : 什 么 是 开 销? 什 么 是 性 能?

什 么 是 开 销? 优 化 器 生 成 的 神 奇 数 字? 执 行 SQL 语 句 所 需 的 资 源? 复 杂 计 算 的 结 果? 执 行 语 句 所 需 时 间 的 估 计? 实 际 定 义 开 销 指 的 是 所 使 用 的 工 作 单 元 或 资 源 的 数 量 优 化 器 用 CPU 内 存 使 用 和 IO 作 为 工 作 单 元 开 销 是 对 执 行 操 作 时 要 使 用 的 CPU 和 内 存 量 以 及 磁 盘 I/O 数 的 估 计 开 销 是 Oracle 的 一 个 内 部 量 度

性 能 是 什 么? 完 成 尽 可 能 多 的 查 询? 使 用 最 少 的 资 源 获 得 尽 可 能 快 的 运 行 速 度? 获 得 最 佳 的 并 发 率? 实 际 定 义 性 能 指 的 是 对 查 询 的 最 快 响 应 时 间 目 标 是 尽 可 能 快 地 完 成 查 询 操 作 优 化 器 不 关 注 执 行 计 划 所 需 的 资 源

理 解 执 行 计 划 < 在 此 处 插 入 图 片 >

SQL 执 行 计 划 您 在 查 看 计 划 时 能 否 确 定 以 下 项 是 否 正 确? 基 数 每 个 对 象 是 否 生 成 正 确 的 行 数? 访 问 方 法 是 否 以 最 好 的 方 式 访 问 数 据? 扫 描? 索 引 查 找? 联 接 顺 序 是 否 以 正 确 的 顺 序 联 接 各 表 以 便 尽 早 尽 多 地 消 除 数 据? 联 接 类 型 是 否 使 用 了 正 确 的 联 接 类 型? 分 区 修 剪 我 执 行 过 分 区 修 剪 吗? 是 否 消 除 了 足 够 多 的 数 据? 并 行 度

基 数 什 么 是 基 数? 估 算 将 返 回 的 行 数 单 值 谓 词 的 基 数 = 行 的 总 数 / 不 同 值 的 总 数 例 如 : 共 100 行, 共 10 个 不 同 值 => 基 数 = 10 行 或 者, 如 果 为 柱 状 图 表 示, 则 是 行 数 * 密 度 为 什 么 要 关 注? 它 将 影 响 所 有 方 面! 访 问 方 法 联 接 类 型 联 接 顺 序 等 哪 些 因 素 会 导 致 基 数 出 错? 统 计 信 息 陈 旧 / 缺 少 数 据 偏 差 一 个 表 有 多 个 单 列 谓 词 where 子 句 谓 词 中 包 含 函 数 复 杂 表 达 式, 其 中 包 含 来 自 不 同 表 的 列

基 数 或 选 择 度 估 算 返 回 行 数 的 基 数 使 用 简 单 的 SELECT COUNT(*) 从 每 个 表 应 用 任 何 属 于 该 表 的 WHERE 子 句 谓 词 确 定 正 确 的 基 数

使 用 以 下 代 码 查 看 基 数 SELECT /*+ gather_plan_statistics */ p.prod_name as product, sum(s.quantity_sold) as units, FROM sales s, products p WHERE s.prod_id =p.prod_id GROUP BY p.prod_name; SELECT * FROM table ( DBMS_XPLAN.DISPLAY_CURSOR(FORMAT=>'ALLSTATS LAST')); 比 较 计 划 中 每 个 操 作 的 估 算 返 回 行 数 与 实 际 返 回 行 数

使 用 SQL 监 视 器 查 看 基 数 利 用 SQL 监 视 器, 您 可 以 比 较 计 划 中 每 个 操 作 的 估 算 返 回 行 数 与 实 际 返 回 行 数

有 关 解 决 基 数 问 题 的 建 议 原 因 统 计 信 息 陈 旧 / 缺 少 解 决 方 法 DBMS_STATS 数 据 偏 差 创 建 一 个 柱 状 图 * 一 个 表 有 多 个 单 列 谓 词 在 一 个 联 接 中 使 用 多 个 列 包 含 函 数 的 列 复 杂 表 达 式, 其 中 包 含 来 自 多 个 表 的 列 使 用 DBMS_STATS.CREATE_EXTENDED_STATS 创 建 一 个 列 组 使 用 DBMS_STATS.CREATE_EXTENDED_STATS 创 建 一 个 列 组 使 用 DBMS_STATS.CREATE_EXTENDED_STATS 创 建 有 关 包 含 函 数 的 列 的 统 计 信 息 使 用 4 级 或 更 高 的 动 态 抽 样 级 别 * 柱 状 图 会 对 具 有 11g 之 前 的 绑 定 的 语 句 产 生 令 人 注 目 的 副 作 用 请 谨 慎 使 用

访 问 方 法 获 取 数 据 访 问 方 法 完 整 表 扫 描 按 ROWID 访 问 表 索 引 唯 一 扫 描 索 引 范 围 扫 描 索 引 跳 过 扫 描 完 整 索 引 扫 描 快 速 完 整 索 引 扫 描 索 引 联 接 位 图 索 引 解 释 读 取 表 中 所 有 行 并 过 滤 掉 那 些 不 符 合 WHERE 子 句 谓 词 的 行 用 于 索 引 DOP 集 等 ROWID 指 定 含 有 所 需 行 的 数 据 文 件 和 数 据 块 以 及 该 行 在 该 块 中 的 位 置 当 在 索 引 或 WHERE 子 句 中 提 供 rowid 时 使 用 将 只 返 回 一 行 当 语 句 中 包 含 UNIQUE 或 PRIMARY KEY 约 束 条 件 时 使 用, 这 些 约 束 条 件 用 于 保 证 只 访 问 一 行 访 问 相 邻 索 引 项, 可 返 回 多 个 ROWID 值 与 等 式 一 起 用 于 非 唯 一 索 引, 或 与 范 围 谓 词 一 起 用 于 唯 一 索 引 (<.> between 等 ) 如 果 前 导 列 中 只 有 很 少 的 不 同 值, 而 非 前 导 列 中 有 许 多 不 同 的 值, 则 跳 过 索 引 的 前 导 部 分, 使 用 其 余 有 用 的 部 分 处 理 索 引 的 所 有 叶 块, 但 只 有 经 过 足 够 多 的 分 支 块 才 能 找 到 第 1 个 叶 块 当 所 有 需 要 的 列 都 位 于 索 引 中 且 order by 子 句 与 索 引 结 构 匹 配, 或 者 排 序 合 并 联 接 已 完 成 时, 即 可 使 用 扫 描 索 引 中 的 所 有 块, 用 来 在 所 有 需 要 的 列 都 在 索 引 中 时 代 替 FTS 使 用 多 块 IO, 可 以 并 行 运 行 散 列 联 接 多 个 索 引, 这 些 索 引 一 起 包 含 有 查 询 中 引 用 的 所 有 表 列 不 会 消 除 排 序 操 作 使 用 键 值 位 图 和 映 射 函 数, 映 射 函 数 可 将 每 个 比 特 的 位 置 转 换 成 一 个 rowid 可 以 有 效 地 合 并 对 应 于 WHERE 子 句 中 的 多 个 条 件 的 索 引

访 问 方 法 如 果 发 现 使 用 了 错 误 的 访 问 方 法, 请 检 查 基 数 联 接 顺 序... 查 看 Operation 部 分 以 了 解 对 象 的 访 问 方 式

访 问 方 法 示 例 一 个 countries 表 包 含 10K 行, 并 且 有 一 个 country_id 主 键 您 希 望 对 以 下 查 询 使 用 什 么 计 划? Select country_id, name from countries where country_id in ('AU','FR','IE ); Select country_id, name from countries where country_id between 'AU' and 'IE'; Select country_id, name from countries where name='usa';

有 关 解 决 访 问 的 建 议 问 题 使 用 表 扫 描, 而 不 是 索 引 扫 描 采 用 错 误 的 索 引 原 因 DOP 针 对 表, 而 不 是 索 引 或 MBRC 值 统 计 信 息 陈 旧 / 缺 少 采 用 了 匹 配 最 多 列 的 索 引 完 整 索 引 访 问 方 式 的 开 销 要 比 索 引 查 找 后 跟 表 访 问 方 式 的 开 销 低 * 柱 状 图 会 对 具 有 11g 之 前 的 绑 定 的 语 句 产 生 令 人 注 目 的 副 作 用 请 谨 慎 使 用

联 接 类 型 联 接 可 从 多 个 表 中 检 索 数 据 访 问 方 法 解 释 嵌 套 循 环 联 接 散 列 联 接 对 于 外 部 表 中 的 每 一 行,Oracle 访 问 内 部 表 中 的 所 有 行 当 联 接 多 个 小 型 数 据 子 集, 并 且 有 一 个 高 效 的 方 法 ( 索 引 查 找 ) 来 访 问 第 二 个 表 时, 这 非 常 有 用 对 两 个 表 中 较 小 的 表 执 行 扫 描, 使 用 结 果 行 根 据 内 存 中 的 联 接 键 创 建 散 列 表 然 后 扫 描 较 大 的 表, 对 结 果 行 的 联 接 列 执 行 散 列 操 作, 并 用 其 值 探 测 散 列 表 以 查 找 匹 配 的 行 对 于 较 大 的 表 和 if equality 谓 词, 这 非 常 有 用 排 序 合 并 联 接 包 括 两 个 步 骤 : 1. 排 序 联 接 操 作 : 基 于 联 接 键 对 两 个 输 入 都 进 行 排 序 2. 合 并 联 接 操 作 : 将 排 序 的 列 表 合 并 在 一 起 当 两 个 表 之 间 的 联 接 条 件 是 不 相 等 条 件 时, 这 非 常 有 用 笛 卡 尔 联 接 外 联 接 将 来 自 一 个 数 据 源 的 每 一 行 与 来 自 另 一 个 数 据 源 的 每 一 行 进 行 联 接, 生 成 这 两 个 数 据 集 的 笛 卡 尔 乘 积 只 有 在 表 非 常 小 时 才 适 用 如 果 没 有 在 查 询 中 指 定 任 何 联 接 条 件, 则 这 是 唯 一 的 选 择 返 回 所 有 满 足 联 接 条 件 的 行, 并 从 没 有 (+) 的 表 中 返 回 所 有 这 样 的 行 : 在 另 一 个 表 中 没 有 满 足 联 接 条 件 的 行

联 接 类 型 查 看 Operation 部 分 以 检 查 是 否 使 用 了 正 确 联 接 类 型 如 果 使 用 了 错 误 的 联 接 类 型, 则 返 回 并 检 查 所 编 写 的 语 句 是 否 正 确, 以 及 估 算 的 基 数 是 否 正 确

联 接 类 型 示 例 1 应 为 此 查 询 使 用 什 么 联 接 类 型? SELECT e.name, e.salary, d.dept_name FROM hr.employees e, hr.departments d WHERE d.dept_name IN ('Marketing,'Sales') AND e.department_id=d.department_id; Employees 有 107 行 Departments 有 27 行 Employees 和 Departments 之 间 基 于 dept_id 的 外 键 关 系

联 接 类 型 示 例 2 应 为 此 查 询 使 用 什 么 联 接 类 型? SELECT o.customer_id, l.unit_price * l.quantity FROM oe.orders o,oe.order_items l WHERE l.order_id = o.order_id; Orders 有 105 行 Order Items 有 665 行

联 接 类 型 示 例 3 应 为 此 查 询 使 用 什 么 联 接 类 型? SELECT o.order_id,0.order_date,e.name FROM oe.orders o, hr.employees e; Orders 有 105 行 Employees 有 107 行

联 接 类 型 示 例 4 应 为 此 查 询 使 用 什 么 联 接 类 型? SELECT d.department_id,e.emp_id FROM hr.employees e FULL OUTER JOIN hr.departments d ON e.department_id = d.department_id ORDER BY d.department_id; Employees 有 107 行 Departments 有 27 行 Employees 和 Departments 之 间 基 于 dept_id 的 外 键 关 系

联 接 顺 序 在 多 表 语 句 中 对 多 个 表 进 行 联 接 的 顺 序 应 该 从 可 消 除 最 多 行 数 的 表 开 始 操 作 将 受 可 用 访 问 方 法 的 很 大 影 响 一 些 基 本 规 则 总 是 最 先 执 行 最 多 生 成 一 行 的 联 接 当 使 用 外 联 接 时, 在 谓 词 中, 含 有 此 外 联 接 运 算 符 的 表 必 须 位 于 其 他 表 之 后 如 果 不 能 执 行 视 图 合 并, 在 联 接 视 图 外 部 的 表 之 前 联 接 视 图 内 部 的 所 有 表

连 接 顺 序 2 1 3 如 果 联 接 顺 序 不 正 确, 请 检 查 统 计 信 息 基 数 及 访 问 方 法 需 要 从 可 最 大 程 度 减 少 结 果 集 行 数 的 表 开 始 操 作

分 区 修 剪 问 :2008 年 5 月 20-22 日 这 几 天 的 总 销 售 额 是 多 少? Sales 表 2008 年 5 月 18 日 2008 年 5 月 19 日 Select sum(sales_amount) From SALES Where sales_date between to_date( 05/20/2008, MM/DD/YYYY ) and to_date( 05/23/2008, MM/DD/YYYY ); 仅 访 问 3 个 相 关 的 分 区 2008 年 5 月 20 日 2008 年 5 月 21 日 2008 年 5 月 22 日 2008 年 5 月 23 日 2008 年 5 月 24 日

分 区 修 剪 如 果 显 示 了 单 词 KEY, 则 意 味 着 将 在 运 行 时 确 定 所 访 问 的 分 区 Pstart 和 Pstop 列 出 了 查 询 操 作 所 访 问 的 分 区

并 行 度 目 标 是 并 行 执 行 计 划 的 所 有 方 面 确 定 是 使 用 一 组 还 是 多 组 并 行 服 务 器 进 程 生 产 者 和 使 用 者 确 定 计 划 中 是 否 有 任 何 串 行 运 行 的 部 分

并 行 度 IN-OUT 列 显 示 出 哪 些 步 骤 是 并 行 运 行 的, 以 及 使 用 的 是 一 组 还 是 多 组 并 行 服 务 器 进 程 如 果 任 何 行 显 示 为 以 字 母 "S" 开 头, 则 表 明 将 以 串 行 方 式 运 行, 检 查 所 使 用 的 每 个 表 和 索 引 的 DOP

确 定 在 计 划 的 扫 描 过 程 中 的 并 行 度 粒 度 数 据 被 划 分 为 以 下 粒 度 块 范 围 分 区 将 为 每 个 并 行 服 务 器 分 配 一 个 或 多 个 粒 度 该 粒 度 方 法 在 Operation 部 分 中 的 扫 描 内 容 的 上 一 行 中 指 定

确 定 计 划 中 扫 描 过 程 中 的 并 行 度 粒 度

访 问 方 法 及 其 并 行 执 行 方 式 访 问 方 法 完 整 表 扫 描 按 ROWID 访 问 表 索 引 唯 一 扫 描 索 引 范 围 扫 描 ( 降 序 ) 索 引 跳 过 扫 描 完 整 索 引 扫 描 快 速 完 整 索 引 扫 描 位 图 索 引 ( 以 星 型 转 换 方 式 ) 并 行 化 方 法 块 迭 代 器 分 区 分 区 分 区 分 区 分 区 块 迭 代 器 块 迭 代 器

并 行 分 发 当 使 用 生 产 者 与 使 用 者 组 时 是 必 需 的 生 产 者 必 须 将 其 数 据 传 递 或 分 发 到 使 用 者 将 行 传 递 到 的 运 算 符 负 责 确 定 分 发 分 发 可 以 在 本 地 执 行, 也 可 以 在 RAC 中 的 其 他 节 点 上 执 行 五 种 常 见 的 重 新 分 发

并 行 分 发 散 列 假 定 其 中 一 个 表 是 散 列 分 区 形 式 对 联 接 列 的 值 应 用 散 列 函 数 分 发 到 基 于 相 应 散 列 分 区 而 工 作 的 使 用 者 广 播 其 中 一 个 结 果 集 的 是 小 型 结 果 集 向 所 有 使 用 者 发 送 数 据 副 本 范 围 通 常 用 于 并 行 排 序 操 作 各 并 行 服 务 器 基 于 数 据 范 围 而 工 作 QC 无 需 进 行 排 序, 即 可 以 正 确 的 顺 序 显 示 并 行 服 务 器 结 果 分 区 键 分 发 PART (KEY) 假 定 目 标 表 已 进 行 分 区 目 标 表 的 分 区 被 映 射 到 并 行 服 务 器 生 产 者 基 于 分 区 列 将 扫 描 的 每 行 映 射 到 使 用 者 循 环 随 机 但 均 匀 地 在 使 用 者 中 分 发 数 据

并 行 分 发 显 示 PQ 服 务 器 如 何 在 彼 此 之 间 分 发 行

阅 读 计 划 示 例 < 在 此 处 插 入 图 片 >

示 例 SQL 语 句 和 方 框 图 SELECT '(' pcode ')' pcode_desc AS PRODUCT, CNT FROM (SELECT a.pcode, b.pcode_desc, count(a.pcode) CNT FROM t_acct_master_hd a,hogan_pcode_hd_ref b, t_tran_detail_hd c WHERE a.pcode = b.pcode AND a.acct_num=c.acct_num AND a.co_id=c.co_id AND c.asof_yyyymm=200102 AND c.tran_amt <2000000000 GROUP BY a.pcode, b.pcode_desc ORDER BY a.pcode, b.pcode_desc ) HOGAN_PCODE_HD_REF T_TRAN_DETAIL_HD ACCT_NUM CO_ID PCOD E T_ACCT_MASTER_HD 数 TB 大 小 1 GB 大 小

执 行 计 划 示 例 ( 续 ) 1. 检 查 所 返 回 的 行 数 是 否 大 致 正 确 2. 基 数 估 算 是 否 正 确? 3. 访 问 方 法 是 否 正 确? 意 味 着 没 有 收 集 到 统 计 信 息, 强 烈 表 明 这 不 是 最 佳 计 划

执 行 计 划 示 例 ( 续 ) 3 2 1 5. 是 否 使 用 了 正 确 的 联 接 方 法? 6. 联 接 顺 序 是 否 正 确? 是 否 首 先 访 问 可 消 除 最 多 行 的 表? 4. 是 否 已 发 生 分 区 修 剪?

执 行 计 划 示 例 ( 续 ) 7. 检 查 是 否 并 行 执 行 计 划 的 所 有 方 面 8. 检 查 分 发 方 法, 确 保 不 会 广 播 大 型 表

执 行 计 划 示 例 ( 续 ) 解 决 方 案 1. 现 在 实 际 只 返 回 了 一 行, 开 销 降 低 为 原 来 的 四 分 之 一 2 1 3 2. 基 数 是 正 确 的, 并 且 对 于 每 个 联 接, 行 数 减 少 4. 分 区 修 剪, 一 个 范 围 分 区, 四 个 散 列 分 区 7. 并 行 执 行 计 划 的 所 有 方 面 8. 现 在 的 行 分 布 都 是 散 列 分 布 6. 联 接 顺 序 已 改 变 PWJ, 将 散 列 联 接 到 查 找 表 5. 联 接 类 型 仍 然 是 是 散 列 联 接, 但 现 在 是 PWJ 3. 访 问 方 法 保 持 不 变

查 询 确 定 是 否 获 得 了 合 适 的 计 划 SELECT quantity_sold FROM sales s, customers c WHERE s.cust_id =c.cust_id;id 您 期 望 此 语 句 的 计 划 应 是 什 么 样 的?S NOT NULL) 说 明 联 接 到 customers 是 多 余 的, 因 为 没 有 选 择 列 存 在 主 键 外 键 关 系 意 味 着 我 们 可 以 删 除 表

问 答