Dav_笔记13:SQL Access Advisor 之 2 使用SQL Access Advisor-2

使用SQL Access Advisor-2

本节讨论有关SQL Access Advisor的一般信息和使用所需的步骤,包括:

■使用建议书

使用建议书

本节讨论使用建议的以下方面:

■建议和行动

■推荐选项

■评估模式

■在建议分析期间查看中间结果

■生成建议书

■查看建议

■停止推荐流程

■标记建议

■修改建议

■生成SQL脚本

■脚本包括分区建议时的特殊注意事项

■何时不再需要建议书

建议和行动

SQL Access Advisor提出了几条建议,每条建议都包含一个或多个单独的操作。

通常,每个推荐都为一个查询或一组查询提供了好处。建议中的所有个人行动必须一起实施,以实现全部利益。建议可以分享行动。

例如,CREATE INDEX语句可以为多个查询提供好处,但其中一些查询可能会受益于额外的CREATE MATERIALIZED VIEW语句。在这种情况下,顾问程序将生成两个建议:一个用于仅需要索引的查询集,另一个用于需要索引和物化视图以最佳方式运行的查询集。

分区建议是一种特殊类型的推荐。当SQL Access Advisor确定对指定基表进行分区可以提高工作负载性能时,顾问程序会为包含引用基表的查询的每个建议添加分区操作。此技术可确保在正确分区的表上实现索引和物化视图建议。

推荐选项

在顾问程序生成建议之前,必须首先使用SET_TASK_PARAMETER过程定义任务的参数。

如果未定义参数,则数据库使用默认值。

您可以使用SET_TASK_PARAMETER过程设置任务参数。语法如下。

DBMS_ADVISOR.SET_TASK_PARAMETER (

task_name IN VARCHAR2,

parameter IN VARCHAR2,

value IN [VARCHAR2 | NUMBER]);

有许多任务参数,为帮助识别相关参数,它们已按表18-1分类。 请注意,已弃用工作负载筛选的所有任务参数。

在以下示例中,将任务MYTASK的存储更改设置为100 MB。这表示100 MB的额外建议空间。零值表示不能分配额外的空间。负值表示顾问程序必须尝试按当前空间利用率修剪指定的数量。

EXECUTE DBMS_ADVISOR.SET_TASK_PARAMETER('MYTASK','STORAGE_CHANGE',100000000);

在以下示例中,设置VALID_TABLE_LIST参数以筛选出不包含表SH.SALES和SH.CUSTOMERS的所有查询。

EXECUTE DBMS_ADVISOR.SET_TASK_PARAMETER( - 
'MYTASK','VALID_TABLE_LIST','SH.SALES,SH.CUSTOMERS');

有关SET_TASK_PARAMETER过程及其参数的详细信息,请参阅Oracle数据库PL / SQL包和类型参考。

评估模式

SQL Access Advisor以两种模式运行:解决问题和评估。

默认情况下,SQL Access Advisor通过查找索引结构,分区,物化视图和物化视图日志的增强功能来尝试解决访问方法问题。

例如,解决问题的运行可能会建议创建新索引,向实体化视图日志添加新列,等等。

仅执行评估时,SQL Access Advisor仅评论提供的工作负载将使用哪些访问结构。仅评估运行可能仅生成建议,例如保留索引,保留实体化视图等。评估模式可用于准确查看工作负载正在使用的索引和物化视图。 SQL Access Advisor不评估现有基表分区的性能影响。

在建议分析期间查看中间结果

SQL Access Advisor现在可以在分析操作期间查看中间结果。以前,在处理完成或用户中断之前,分析操作的结果不可用。现在,即使SQL Access Advisor任务仍在执行,用户也可以访问相应的推荐和操作表中的结果。好处是长时间运行的任务可以提供证据,允许用户通过中断任务来接受当前结果,而不是等待冗长的执行完成。

要接受当前的建议集,用户必须中断任务。此中断表示SQL Access Advisor停止处理并将任务标记为INTERRUPTED。此时,用户可以更新推荐属性并生成脚本。或者,用户可以允许SQL Access Advisor完成推荐过程。

请注意,中间结果表示直到该时间点的工作负载内容的建议。如果建议对整个工作负载敏感至关重要,那么Oracle建议您允许任务执行正常完成。此外,顾问在推荐过程早期提出的建议不包含任何基表分区建议。分区分析需要处理大部分工作负载,然后才能确定分区是否有益。因此,如果SQL Access Advisor检测到某个权益,则只有稍后的中间结果才会包含基表分区建议。

生成建议书

您可以使用EXECUTE_TASK过程和任务名称生成建议。该过程完成后,您可以检查DBA_ADVISOR_LOG表中的实际执行状态以及已生成的建议和操作的数量。您可以在{DBA,USER} _ADVISOR_RECOMMENDATIONS中按任务名称查询建议。您可以在{DBA,USER} _ADVISOR_ACTIONS中按任务查看这些建议的操作。

EXECUTE_TASK程序

此过程对指定的任务执

  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值