View
117
Download
1
Category
Preview:
DESCRIPTION
9. 自动 SQL 调整. 简介. 自动 SQL 调整解决方案 SQL Tuning Advisor 为应用程序调整提供综合、自动、具有成本效益的解决方案 减少 SQL 调整时间多达 80% 减少管理成本. 手动调整所面临的挑战. 需要以下几个领域的专业知识 SQL 优化: 调整执行计划 访问设计:提供快速数据访问 SQL 设计: 使用适当的 SQL 结构 耗费时间 每一个 SQL 语句与众不同 潜在大量语句需要调整 永无休止 SQL 负载不断增加 计划衰退. 手动调整示例. 手动调整 - PowerPoint PPT Presentation
Citation preview
9. 自动 SQL 调整
简介 自动 SQL 调整解决方案
SQL Tuning Advisor 为应用程序调整提供综合、自动、具有成本
效益的解决方案 减少 SQL 调整时间多达 80% 减少管理成本
手动调整所面临的挑战
需要以下几个领域的专业知识– SQL 优化: 调整执行计划– 访问设计:提供快速数据访问– SQL 设计: 使用适当的 SQL 结构
耗费时间– 每一个 SQL 语句与众不同– 潜在大量语句需要调整
永无休止– SQL 负载不断增加– 计划衰退
手动调整示例
手动调整1. 取得 Explain Plan 的结果2. 检查查询对象及其大小3. 检查 Explain Plan 的 统计数据并将其与 Execution Pl
an 的统计数据(存储在 V$SQL 视图)比较4. “识别问题,例如: first rows” 问题,因为尽管查询
了大量的历史数据,但仅显示最新的数据5. 联系应用程序供应商6. 为供应商生产测试用例7. 从供应商处获得代码适当被修改的修补程序8. 在下一个维护周期中安装该修补程序
SQL Tuning Advisor 概述
如何调整我的 SQL 负载?
SQL Tuning Advisor
解决方案
CBO 组件
提供实施脚本
无需专家DBA
SQL
负载
版权所有 (2005~2008)eygle
SQL Tuning Advisor
自动 SQL 调整概述
增加丢失的索引
修改 SQL 结构
创建 SQL 配置文件
自动调整优化器
SQL 结构分析
访问路径分析
SQL 配置文件分析
统计数据分析 收集丢失或者陈旧的统计数据
DBA
SQL 调整建议
SQL Tuning Advisor
自动调整优化器 (ATO)
它是在调整模式下运行的查询优化器– 使用相同的计划生成过程但是执行需要更多时间的额
外步骤 它执行验证步骤
– 验证统计数据和它自己的估计 使用动态取样和部分执行来验证
它执行试探性步骤– 试验可以极大提速的新索引的使用– 分析导致大量计划操作符的 SQL 结构
统计数据分析
增加丢失的索引
修改 SQL 结构
创建 SQL 配置文件
自动调整优化器
SQL 结构分析
访问路径分析
SQL 配置文件分析
统计数据分析 收集丢失或者陈旧的统计数据
DBA
SQL调整建议
SQL Tuning Advisor
统计数据分析 动机
– 统计数据是查询优化器进行优化所依赖的主要信息统计数据的可用性和准确性非常重要
在 Oracle10g 中,自动统计数据收集使统计数据保持最……新– 但是可能并未将其启用或正确配置!
ATO 验证它需要 / 使用的统计数据– 产生辅助信息以弥补丢失或陈旧的统计数据– 在适当的时候生成收集统计数据的建议
SQL 配置文件分析
增加丢失的索引
修改 SQL 结构
创建 SQL 配置文件
自动调整优化器
SQL 结构分析
访问路径分析
SQL 配置文件分析
统计数据分析 收集丢失或者陈旧的统计数据
DBA
SQL调整建议
SQL Tuning Advisor
SQL 配置文件分析过程
优化器(调整模式)
创建提交
SQL 配置文件分析
优化器(正常模式)
输出提交
SQL 配置
SQL TuningAdvisor
数据库用户优调的计划
……之后使用
SQL 配置文件 包含 ATO 针对某条 SQL 语句收集的辅助信息
– 弥补丢失或陈旧的统计数据– 弥补优化器估计中的错误
发生估计错误的原因是数据不对称和数据相关性、复杂的过滤器和联接
不需要对 SQL 文本做任何更改– 最适用于打包的应用程序
持久可用– 即使历经数据库关闭或升级,仍然可用
访问路径分析
增加丢失的索引
修改 SQL 结构
创建 SQL 配置文件
自动调整优化器
SQL 结构分析
访问路径分析
SQL 配置文件分析
统计数据分析 收集丢失或者陈旧的统计数据
DBA
SQL调整建议
SQL Tuning Advisor
访问路径分析 动机
– 增加一个索引可能会极大提高 SQL 语句的性能 问题:丢失一个关键的访问路径
– 没有创建索引或者错误地删除了索引 ATO 探究新索引的使用
– 如果索引能较大地提高性能,则推荐采用– 还推荐运行 SQL Access Advisor 为整个工作负载进
行全面的索引分析 SQL Access Advisor 也使用此分析模式
SQL 结构分析
增加丢失的索引
修改 SQL 结构
创建 SQL 配置文件
自动调整优化器
SQL 结构分析
访问路径分析
SQL 配置文件分析
统计数据分析 收集丢失或者陈旧的统计数据
DBA
SQL 调整建议
SQL Tuning Advisor
SQL 结构分析 动机
– 帮助应用程序开发人员识别编写得不好的 SQL 语句– 建议调整 SQL 以提高效率
问题分类– 对 SQL 操作符的语义更改(例如:用 UNION ALL
代替 UNION ) 要看用户是否接受新结果
– “ 对索引的列的谓词的句法更改(例如:删除 列 = :bind” 中的类型不匹配)
– SQL 设计问题(例如,增加丢失的联接谓词以删除 大型 Cartesian 联接)
SQL 调整使用情景
SQL 调整顾问
ADDM 高负载 SQL
游标缓存
AWR
SQL 调整集(STS)
用户定义
过滤器 / 级别
SQL 来源 手动选择
自动选择
AWR
SQL 调整集 (STS)
动机– 使用户能够调整自定义的 SQL 语句集
Oracle10g 中用来捕获和管理 SQL 工作负载的新对象 与 SQL 语句一同存储:
– 执行环境:分析用户、绑定值等– 执行统计数据: 从缓冲器读取、 CPU 时间、所用时间、执行次数等
从任何 SQL 来源创建– 来源: AWR 、游标缓存、用户定义的 SQL 负载和其他 STS
SQL Tuning Advisor 用户界面
GUI: 企业管理器 从以下 SQL 来源页面运行 SQL Tuning A
dvisor– ADDM Finding 页面,或者– Top SQL 页面,或者– SQL 调整集 (STS) 页面
查看 SQL 调整建议 实施 SQL 调整建议
命令行: DBMS_SQLTUNE 程序包
SQL 来源: ADDM Finding
SQL 来源: Top SQL
SQL 来源: SQL 调整集
SQL 调整选项
企业管理器界面
从以下 SQL 页面运行 SQL Tuning Advisor – ADDM Finding 页面,或者– Top SQL 页面,或者– SQL 调整集 (STS) 页面
查看 SQL 调整建议 实施 SQL 调整建议
SQL — 调整建议 概述
SQL — 调整建议 详述
企业管理器界面
从以下 SQL 页面运行 SQL Tuning Advisor– ADDM Finding 页面,或者– Top SQL 页面,或者– SQL 调整集 (STS) 页面
查看 SQL 调整建议 实施 SQL 调整建议
实施建议
实施建议
自动与手动 SQL 调整手动调整
1. 取得 Explain Plan 的结果2. 检查查询对象及其大小3. 检查 Explain Plan 的统计数据并将其与 Execu
tion Plan 的统计数据(存储在 V$SQL 视图)比较
4. 识别问题,例如: “ first rows” 问题,因为尽管查询了大量的历史数据,但仅显示最新的数据
5. 联系应用程序供应商6. 为供应商生产测试用例7. 从供应商处获得代码适当被修改的修补程序8. 在下一个维护周期中安装该修补程序
自动调整1. 运行 SQL Tu
ning Advisor
2. 实施建议。
结论 Oracle 10g 消灭了 DBA 所面临的最大的
一个挑战 — SQL 调整 提供有针对性、精确且自动的调整 使对打包的应用程序的综合调整成为可能 不再依赖熟练的性能专家 产生直接的 ROI
降低管理成本 减少系统停机时间 提高 DBA 生产力
Recommended