1 / 32

9. 自动 SQL 调整

9. 自动 SQL 调整. 简介. 自动 SQL 调整解决方案 SQL Tuning Advisor 为应用程序调整提供综合、自动、具有成本效益的解决方案 减少 SQL 调整时间多达 80% 减少管理成本. 手动调整所面临的挑战. 需要以下几个领域的专业知识 SQL 优化: 调整执行计划 访问设计:提供快速数据访问 SQL 设计: 使用适当的 SQL 结构 耗费时间 每一个 SQL 语句与众不同 潜在大量语句需要调整 永无休止 SQL 负载不断增加 计划衰退. 手动调整示例. 手动调整

melita
Télécharger la présentation

9. 自动 SQL 调整

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 9.自动 SQL 调整 版权所有(2005~2008)eygle

  2. 简介 • 自动 SQL 调整解决方案 • SQL Tuning Advisor • 为应用程序调整提供综合、自动、具有成本效益的解决方案 • 减少 SQL 调整时间多达 80% • 减少管理成本 版权所有(2005~2008) eygle

  3. 手动调整所面临的挑战 • 需要以下几个领域的专业知识 • SQL 优化: 调整执行计划 • 访问设计:提供快速数据访问 • SQL 设计: 使用适当的 SQL 结构 • 耗费时间 • 每一个 SQL 语句与众不同 • 潜在大量语句需要调整 • 永无休止 • SQL 负载不断增加 • 计划衰退 版权所有(2005~2008) eygle

  4. 手动调整示例 手动调整 取得 Explain Plan 的结果 检查查询对象及其大小 检查 Explain Plan 的统计数据并将其与 Execution Plan 的统计数据(存储在 V$SQL视图)比较 识别问题,例如: “first rows”问题,因为尽管查询了大量的历史数据,但仅显示最新的数据 联系应用程序供应商 为供应商生产测试用例 从供应商处获得代码适当被修改的修补程序 在下一个维护周期中安装该修补程序 版权所有(2005~2008) eygle

  5. SQL Tuning Advisor 概述 解决方案 如何调整我的 SQL 负载? SQL Tuning Advisor CBO 组件 无需专家 DBA 提供实施脚本 SQL 负载 版权所有(2005~2008) eygle

  6. SQL Tuning Advisor 版权所有(2005~2008)eygle

  7. 自动 SQL 调整概述 SQL 调整建议 自动调整优化器 SQL Tuning Advisor 收集丢失或者陈旧的统计数据 统计数据分析 SQL 配置文件分析 创建 SQL 配置文件 DBA 增加丢失的索引 访问路径分析 SQL 结构分析 修改 SQL 结构 版权所有(2005~2008) eygle

  8. 自动调整优化器 (ATO) • 它是在调整模式下运行的查询优化器 • 使用相同的计划生成过程但是执行需要更多时间的额外步骤 • 它执行验证步骤 • 验证统计数据和它自己的估计 • 使用动态取样和部分执行来验证 • 它执行试探性步骤 • 试验可以极大提速的新索引的使用 • 分析导致大量计划操作符的 SQL 结构 版权所有(2005~2008) eygle

  9. 统计数据分析 SQL调整建议 自动调整优化器 SQL Tuning Advisor 收集丢失或者陈旧的统计数据 统计数据分析 SQL 配置文件分析 创建 SQL 配置文件 DBA 增加丢失的索引 访问路径分析 SQL 结构分析 修改 SQL 结构 版权所有(2005~2008) eygle

  10. 统计数据分析 • 动机 • 统计数据是查询优化器进行优化所依赖的主要信息 • 统计数据的可用性和准确性非常重要 • 在 Oracle10g 中,自动统计数据收集使统计数据保持最新…… • 但是可能并未将其启用或正确配置! • ATO 验证它需要/使用的统计数据 • 产生辅助信息以弥补丢失或陈旧的统计数据 • 在适当的时候生成收集统计数据的建议 版权所有(2005~2008) eygle

  11. SQL 配置文件分析 SQL调整建议 自动调整优化器 SQL Tuning Advisor 收集丢失或者陈旧的统计数据 统计数据分析 SQL 配置文件分析 创建 SQL 配置文件 DBA 增加丢失的索引 访问路径分析 SQL 结构分析 修改 SQL 结构 版权所有(2005~2008) eygle

  12. SQL 配置文件分析过程 SQL 配置文件分析 提交 创建 优化器 (调整模式) SQL 配置 SQL TuningAdvisor 使用 之后…… 提交 输出 优化器 (正常模式) 优调的计划 数据库用户 版权所有(2005~2008) eygle

  13. SQL 配置文件 • 包含 ATO 针对某条 SQL 语句收集的辅助信息 • 弥补丢失或陈旧的统计数据 • 弥补优化器估计中的错误 • 发生估计错误的原因是数据不对称和数据相关性、复杂的过滤器和联接 • 不需要对 SQL 文本做任何更改 • 最适用于打包的应用程序 • 持久可用 • 即使历经数据库关闭或升级,仍然可用 版权所有(2005~2008) eygle

  14. 访问路径分析 SQL调整建议 自动调整优化器 SQL Tuning Advisor 收集丢失或者陈旧的统计数据 统计数据分析 SQL 配置文件分析 创建 SQL 配置文件 DBA 增加丢失的索引 访问路径分析 SQL 结构分析 修改 SQL 结构 版权所有(2005~2008) eygle

  15. 访问路径分析 • 动机 • 增加一个索引可能会极大提高 SQL 语句的性能 • 问题:丢失一个关键的访问路径 • 没有创建索引或者错误地删除了索引 • ATO 探究新索引的使用 • 如果索引能较大地提高性能,则推荐采用 • 还推荐运行 SQL Access Advisor 为整个工作负载进行全面的索引分析 • SQL Access Advisor 也使用此分析模式 版权所有(2005~2008) eygle

  16. SQL 结构分析 SQL 调整建议 自动调整优化器 SQL Tuning Advisor 收集丢失或者陈旧的统计数据 统计数据分析 SQL 配置文件分析 创建 SQL 配置文件 DBA 增加丢失的索引 访问路径分析 SQL 结构分析 修改 SQL 结构 版权所有(2005~2008) eygle

  17. SQL 结构分析 • 动机 • 帮助应用程序开发人员识别编写得不好的 SQL 语句 • 建议调整 SQL 以提高效率 • 问题分类 • 对 SQL 操作符的语义更改(例如:用 UNION ALL 代替 UNION) • 要看用户是否接受新结果 • 对索引的列的谓词的句法更改(例如:删除“列 = :bind”中的类型不匹配) • SQL 设计问题(例如,增加丢失的联接谓词以删除大型 Cartesian 联接) 版权所有(2005~2008) eygle

  18. SQL 调整使用情景 自动选择 AWR 高负载 SQL ADDM SQL 来源 手动选择 AWR SQL 调整 顾问 游标缓存 SQL 调整集(STS) 过滤器 / 级别 版权所有(2005~2008) eygle 用户定义

  19. SQL 调整集 (STS) • 动机 • 使用户能够调整自定义的 SQL 语句集 • Oracle10g 中用来捕获和管理 SQL 工作负载的新对象 • 与 SQL 语句一同存储: • 执行环境:分析用户、绑定值等 • 执行统计数据: 从缓冲器读取、 CPU 时间、所用时间、执行次数等 • 从任何 SQL 来源创建 • 来源: AWR、 游标缓存、用户定义的 SQL 负载和其他 STS 版权所有(2005~2008) eygle

  20. SQL Tuning Advisor 用户界面 • GUI: 企业管理器 • 从以下 SQL 来源页面运行 SQL Tuning Advisor • ADDM Finding 页面,或者 • Top SQL 页面,或者 • SQL 调整集 (STS) 页面 • 查看 SQL 调整建议 • 实施 SQL 调整建议 • 命令行: DBMS_SQLTUNE 程序包 版权所有(2005~2008) eygle

  21. SQL 来源: ADDM Finding 版权所有(2005~2008) eygle

  22. SQL 来源: Top SQL 版权所有(2005~2008) eygle

  23. SQL 来源: SQL 调整集 版权所有(2005~2008) eygle

  24. SQL 调整选项 版权所有(2005~2008) eygle

  25. 企业管理器界面 • 从以下 SQL 页面运行 SQL Tuning Advisor • ADDM Finding 页面,或者 • Top SQL 页面,或者 • SQL 调整集 (STS) 页面 • 查看 SQL 调整建议 • 实施 SQL 调整建议 版权所有(2005~2008) eygle

  26. SQL 调整建议 — 概述 版权所有(2005~2008) eygle

  27. SQL 调整建议 — 详述 版权所有(2005~2008) eygle

  28. 企业管理器界面 • 从以下 SQL 页面运行 SQL Tuning Advisor • ADDM Finding 页面,或者 • Top SQL 页面,或者 • SQL 调整集 (STS) 页面 • 查看 SQL 调整建议 • 实施 SQL 调整建议 版权所有(2005~2008) eygle

  29. 实施建议 版权所有(2005~2008) eygle

  30. 实施建议 版权所有(2005~2008) eygle

  31. 手动调整 取得 Explain Plan 的结果 检查查询对象及其大小 检查 Explain Plan 的统计数据并将其与 Execution Plan 的统计数据(存储在 V$SQL 视图)比较 识别问题,例如: “first rows”问题,因为尽管查询了大量的历史数据,但仅显示最新的数据 联系应用程序供应商 为供应商生产测试用例 从供应商处获得代码适当被修改的修补程序 在下一个维护周期中安装该修补程序 自动调整 运行 SQL Tuning Advisor 实施建议。 自动与手动 SQL 调整 版权所有(2005~2008) eygle

  32. 结论 • Oracle 10g 消灭了 DBA 所面临的最大的一个挑战— SQL 调整 • 提供有针对性、精确且自动的调整 • 使对打包的应用程序的综合调整成为可能 • 不再依赖熟练的性能专家 • 产生直接的 ROI • 降低管理成本 • 减少系统停机时间 • 提高 DBA 生产力 版权所有(2005~2008) eygle

More Related