已索引

该文章已被其他文章引用。

段顾问会对是否需要 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');

-- By 许望(RHCA、OCM、VCP)
最后修改:2024 年 01 月 18 日 02 : 53 PM
如果觉得我的文章对你有用,请随意赞赏