一个任务模板是一个保存的配置上对未来基地的任务和工作量。
模板使您可以设置任意数量的任务或工作负载,这些任务或工作负载可以用作将来创建任务的起点或模板。通过设置模板,可以节省执行优化分析时的时间。这种方法还使您能够定制调整分析以适合业务运营。
在物理上,任务和模板之间没有区别。但是,无法执行模板。要从模板创建任务,请指定创建新任务时要使用的模板。那时,SQL Access Advisor将数据和参数设置从模板复制到新创建的任务中。您还可以通过在创建任务时设置模板属性或以后使用该UPDATE_TASK_ATTRIBUTE
过程将现有任务设置为模板。
下表描述了可用于管理任务模板的过程。
表25-3任务模板的DBMS_ADVISOR过程
程序 | 描述 |
---|---|
| 该 |
| 该 |
|
|
假设条件
本教程假定以下内容:
- 您要创建一个名为的模板
MY_TEMPLATE
。 - 您想要为基于的任务推荐的索引和实例化视图设置命名约定
MY_TEMPLATE
。 - 您要
NEWTASK
基于创建任务MY_TEMPLATE
。
要创建模板并将任务基于此模板,请执行以下操作:
- 以用户身份将SQL * Plus连接到数据库
sh
,然后创建一个任务作为模板。例如,创建一个名称
MY_TEMPLATE
如下的模板:VARIABLE template_id NUMBER; VARIABLE template_name VARCHAR2(255); EXECUTE :template_name := 'MY_TEMPLATE'; BEGIN DBMS_ADVISOR.CREATE_TASK ( 'SQL Access Advisor' , :template_id , :template_name , is_template => 'true' ); END;
复制 - 设置模板参数。
例如,以下语句为建议的索引和实例化视图设置命名约定:
-- set naming conventions for recommended indexes/mvs BEGIN DBMS_ADVISOR.SET_TASK_PARAMETER ( :template_name , 'INDEX_NAME_TEMPLATE' , 'SH_IDX$$_<SEQ>' ); END; BEGIN DBMS_ADVISOR.SET_TASK_PARAMETER ( :template_name , 'MVIEW_NAME_TEMPLATE' , 'SH_MV$$_<SEQ>' ); END;
复制 - 创建基于现有模板的任务。
例如,输入以下命令以
NEWTASK
基于创建MY_TEMPLATE
:VARIABLE task_id NUMBER; VARIABLE task_name VARCHAR2(255); EXECUTE :task_name := 'NEWTASK'; BEGIN DBMS_ADVISOR.CREATE_TASK ( 'SQL Access Advisor' , :task_id , :task_name , template=>'MY_TEMPLATE' ); END;
复制
也可以看看:
Oracle Database PL / SQL软件包和类型参考以了解CREATE_TASK
和SET_TASK_PARAMETER
过程