sqltuing advisor将一条或多条SQL语句作为输入,并且研究这些语句的结构与执行方式.这些SQL语句称为SQLTUNING SET,标识负载较高的SQL语句与建议改进措施.
SQL ACCESSADVISOR 也将SQL TUNING SET 作为其输入.这个顾问程序通过学习添加索引或物化视图来改进SQL执行性能.
9.SQL Tuning Advisor简介
Oracle 10g的查询优化器具有自动SQL调整功能。SQL Tuning Advisor有两个模式:普通模式和调整(tuning)模式。普通模式类似Oracle以往版本的优化器。SQL语句经过编译,生成一个运行计划,而且所需时间很短。调整模式可以为SQL语句生成推荐的操作及调整,该功能可以为将来运行该SQL语句产生更好的运行计划。
SQL Tuning Advisor可以分析以下几种SQL来源:
1)通过ADDM发现的高负载的SQL
2)仍然处于缓存中的SQL
3)来自AWR中的SQL
4)用户定义的SQL系列
SQL Tuning Advisor会进行下列四种类型的分析:
1)统计数据分析
ATO(自动调整优化器)会检查统计数据是否存在,是否过时
2)SQL Profiling(模仿)
SQL模仿采用其它方法检验其在统计数据分析阶段进行的分析,并可能采用各种优化提示,来尝试多种执行方案
3)访问路径分析
这个分析可能会建议增加一个或多个索引来提高性能
4)SQL结构分析
这种分析可能会找出SQL种的潜在的编码错误或者可能会产生不良计划的SQL结构,例如可能会建议用NOT IN代替NOT EXISTS。
10.SQL调整和DBMS_SQLTUNE包。
DBMS_SQLTUNE包包含了下面3种类型
1)SQL调整任务管理
2)SQL配置文件管理
3)STS(SQL调整集)管理
11.SQL 调整功能的初始化参数
新的初始化参数SQLTUNE_CATEGORY定义了将一个SQL配置文件应用到一个SQL语句时使用的类别,默认是DEFAULT。如果设置了一个测试的SQL配置文件,测试结束后可以用DBMS_SQLTUNE.ALTER_SQL_PROFILE来把测试配置文件改成默认。例如,下面的PL/SQL会把SQL配置文件SYS_SQLPROF_3887495559238改成默认:
SQL> exec dbms_sqltune.alter_sql_profile( -
name => 'SYS_SQLPROF_3887495559238', -
attribute_name => 'CATEGORY' -
value => 'DEFAULT');
下面是attribute_name参数可能的值及含义:
1)STATUS:可以是ENABLED或者DISABLED,用于启用/禁用配置文件
2)NAME:可以更改配置文件的名称。它必须是有效的Oracle标识符
3)DESCRIPTION:描述
4)CATEGORY:可以设置成任何类别名称,必须是有效的Oracle标识符,并且与SQL文本结合后必须具有唯一性
12.SQL访问顾问(SQL AccessAdvisor)介绍
SQL Access Advisor是Oracle顾问框架的一个组件,可以帮助人们确定那些索引、物理化视图等对提高单个查询、整个工作或者指定方案性能。SQL AccessAdvisor为数据仓库或者决策支持环境等主要操作是SELECT的场合带来最大效益。SQL AccessAdvisor执行的分析包括以下几种:
1)考虑只有索引、只有物理化视图还是二者都有能够获得最大的效益。
2)在推荐生成新索引或者物理化视图时,在存储、维护方面的开销与性能提高之间进行平衡。
3)如果指定的是全部负荷(fullworkload),那么生成DROP推荐意见来删除未用的索引或物理化视图。
4)优化物理化视图,在可能的情况下实现快速刷新
5)推荐物理化视图日志以便快速刷新
6)推荐在适合的场所降多个索引组合成一个索引