zoukankan      html  css  js  c++  java
  • Oracle 内置空间管理工具 Segment Advisor

    Oracle内置空间管理工具-Segment Advisor

    数据表上频繁的进行插入、更新和删除动作会产生表空间碎片。Oracle可在表或索引上执行Segment shrink。使得segment的空闲空间可用于表空间中的其它segment,可改善DML性能。

    调用Segment Advisor对指定segment执行增长趋势分析以确定哪些Segment受益于Segment shrink。

    执行shrink操作,Segment Advisor推荐启用表的ROW MOVEMENT

    SQL> alter table wind enable row movement;

    Table altered

    配置Segment Advisor对表进行分析,使用如下PL/SQL块:

    SQL> variable task_id number;

    SQL> declare

      2  name varchar2(100);

      3  descr varchar2(500);

      4  obj_id number;

      5  begin

      6  name := '';

      7  descr := 'Check WIND.ShrinkTable Table';

      8  dbms_advisor.create_task('Segment Advisor',:task_id,name,descr,NULL);

      9  dbms_advisor.create_object(name,'TABLE','WIND','SHRINKTABLE',NULL,NULL,obj_id);

    10  dbms_advisor.set_task_parameter(name,'RECOMMEND_ALL','TRUE');

    11  dbms_advisor.execute_task(name);

    12  end;

    13  /

    PL/SQL procedure successfully completed

    task_id

    ---------

    357

    dbms_advisor.create_task: 指定类型,返回唯一的作业ID并自动生成运行的程序名.

    dbms_advisor.create_object: 指定分析对象信息.

    dbms_advisor.set_task_parameter: 这里指定获取所有关于表的建议.

    dbms_advisor.execute_task: 执行

    以下为获取表建议信息:

    SQL> select owner,task_id,task_name,type,messagel,more_info

      2  from dba_advisor_findings

      3  where task_id=357;

    OWNER   TASK_ID TASK_NAME  TYPE        MESSAGE                                MORE_INFO

    ------- ------- ---------- ----------- -------------------------------------- -------------------------------------------------------------

    WIND    357     TASK_357   INFORMATION 进行压缩, 估计可以省出 10655319 字节。

    分配空间:226492416: 已用空间:215837097: 可回收空间:10655319:

    SQL> select owner,task_id,task_name,benefit_type

      2  from dba_advisor_recommendations

      3  where task_id=357;

    OWNER TASK_ID  TASK_NAME  BENEFIT_TYPE

    ---------- ----------- --------------- --------------------------------------

    WIND     357         TASK_357    进行压缩, 估计可以省出 10655319 字节。

    SQL> select owner,task_id,task_name,command,attr1

      2  from dba_advisor_actions

      3  where task_id=357;

    OWNER TASK_ID TASK_NAME  COMMAND         ATTR1

    ---------- ---------- ---------------- ------------------- ---------------------------------------

    WIND     357       TASK_357     SHRINK SPACE  alter table "WIND"."THRINKTABLE" shrink space

    SQL> alter table wind.thrinktable shrink space;

    注意两个限制:

    一. 没法在基于Oracle 10g上的LOB Segment上工作.

    二. 不允许在包含任何函数索引规则的表进行操作,不管是使用10g或11g.

  • 相关阅读:
    nmp部署(Nginx Mariadb Php-fpm)
    通过能别的主机连接yum库
    基于ftp服务实现yum网络共享
    nginx做代理部署WordPress
    练习题
    php-fpm包的安装与配置
    安装mariadb并修改配置文件
    mysql的简单操作
    telnet IP:ERROR
    加固mysql服务器
  • 原文地址:https://www.cnblogs.com/einyboy/p/2631363.html
Copyright © 2011-2022 走看看