已索引
该文章已被其他文章引用。
段顾问会对是否需要 shrink、是否需要 compress、是否存在严重的 chain row 等做出建议。
段顾问除了自动运行外,也可以手动运行,然后查看段顾问结果。
手动运行段顾问
基于表分析:
variable id number;
begin
declare
name varchar2(100);
descr varchar2(500);
obj_id number;
begin
name:='advisor_cy test';
descr:='Segment Advisor Example';
dbms_advisor.create_task (
advisor_name => 'Segment Advisor',
task_id => :id,
task_name => name,
task_desc => descr);
dbms_advisor.create_object (
task_name => name,
object_type => 'TABLE',
attr1 => 'HR',
attr2 => 'T1',
attr3 => NULL,
attr4 => NULL,
attr5 => NULL,
object_id => obj_id);
dbms_advisor.set_task_parameter(
task_name => name,
parameter => 'recommend_all',
value => 'TRUE');
dbms_advisor.execute_task(name);
end;
end;
/
基于表空间分析:
如果想基本于表空间分析,只需要修改如下内容:
object_type => 'TABLESPACE',
attr1 => 'EXAMPLE',
attr2 => NULL,
查看段顾问结果
删除段顾问任务
最后要注意删除手动运行的段顾问任务:
如果忘记了任务名,可通过 DBA_ADVISOR_TASKS 查询到任务名:
select task_id, task_name, status from dba_advisor_tasks where ......;
然后可以使用下面命令删除:
exec DBMS_ADVISOR.DELETE_TASK ('advisor_cy test');