24.03.2015 Views

老蒋谈存储案例教学 - LinuxTone.Org

老蒋谈存储案例教学 - LinuxTone.Org

老蒋谈存储案例教学 - LinuxTone.Org

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

----------<br />

243<br />

Elapsed: 00:00:00.08<br />

这 是 在 Share_pool 和 Data buffer 都 没 有 数 据 缓 冲 区 的 情 况 下 所 用 的 时 间<br />

SQL> alter system flush SHARED_POOL;<br />

System altered.<br />

清 空 Share_pool, 保 留 Data buffer<br />

SQL> select count(*) from scpass ;<br />

COUNT(*)<br />

----------<br />

243<br />

Elapsed: 00:00:00.02<br />

SQL> select count(*) from scpass ;<br />

COUNT(*)<br />

----------<br />

243<br />

Elapsed: 00:00:00.00<br />

从 两 句 SQL 的 时 间 差 上 可 以 看 出 该 SQL 的 Parse 时 间 约 为 00:00:00.02<br />

对 于 保 存 在 共 享 池 中 的 SQL 语 句 , 可 以 从 V$Sqltext、v$Sqlarea 中 查 询 到 , 对 于 编 程 者<br />

来 说 , 要 尽 量 提 高 语 句 的 重 用 率 , 减 少 语 句 的 分 析 时 间 。 一 个 设 计 的 差 的 应 用 程 序 可 以 毁 掉 整<br />

个 数 据 库 的 Share pool, 提 高 SQL 语 句 的 重 用 率 必 须 先 养 成 良 好 的 变 成 习 惯 , 尽 量 使 用 Bind<br />

变 量 。<br />

数 据 字 典 缓 冲 区 (Data Dictionary Cache)<br />

显 而 易 见 , 数 据 字 典 缓 冲 区 是 ORACLE 特 地 为 数 据 字 典 准 备 的 一 块 缓 冲 池 , 供 ORACLE<br />

内 部 使 用 , 没 有 什 么 可 以 说 的 。<br />

b、 块 缓 冲 区 高 速 缓 存 (Database Buffer Cache)<br />

这 些 缓 冲 是 对 应 所 有 数 据 文 件 中 的 一 些 被 使 用 到 的 数 据 块 。 让 他 们 能 够 在 内 存 中 进 行 操<br />

作 。 在 这 个 级 别 里 没 有 系 统 文 件 ,, 户 数 据 文 件 , 临 时 数 据 文 件 , 回 滚 段 文 件 之 分 。 也 就 是 任 何<br />

文 件 的 数 据 块 都 有 可 能 被 缓 冲 。 数 据 库 的 任 何 修 改 都 在 该 缓 冲 里 完 成 , 并 由 DBWR 进 程 将 修<br />

改 后 的 数 据 写 入 磁 盘 。<br />

这 个 缓 冲 区 的 块 基 本 上 在 两 个 不 同 的 列 表 中 管 理 。 一 个 是 块 的 “ 脏 ” 表 (Dirty List), 需 要 用 数<br />

据 库 块 的<br />

书 写 器 (DBWR) 来 写 入 , 另 外 一 个 是 不 脏 的 块 的 列 表 (Free List), 一 般 的 情 况 下 , 是 使 用 最<br />

近 最 少 使 用 (Least Recently Used,LRU) 算 法 来 管 理 。 块 缓 冲 区 高 速 缓 存 又 可 以 细 分 为 以 下 三<br />

PDF 文 件 使 用 "pdfFactory Pro" 试 用 版 本 创 建 www.fineprint.cn

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!