----查看oracle 需要shrink space 优化的表。
select af.task_name, ao.attr2 segname, ao.attr3 partition, ao.type, af.message
from dba_advisor_findings af, dba_advisor_objects ao
where ao.task_id = af.task_id
and ao.object_id = af.object_id
and ao.owner = 'SYS';
----oracle 优化任务的时间。
select * from dba_ADVISOR_LOG where task_name like 'SYS_AUTO_SPCADV%';
----oracle 每天运行的job_name任务
SELECT owner,job_name,state,last_start_date,last_run_duration,failure_count
FROM dba_scheduler_jobs ;
-----oracle运行任务的的状态
SELECT log_id, job_name, status,
TO_CHAR (log_date, 'DD-MON-YYYY HH24:MI') log_date
FROM dba_scheduler_job_run_details
WHERE job_name ='AUTO_SPACE_ADVISOR_JOB'
select * from dba_advisor_findings af;
select * from dba_advisor_objects ao;
----------
select * from dba_scheduler_programs where PROGRAM_NAME = 'AUTO_SPACE_ADVISOR_JOB';
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块:
variable task_id number;
declare
name varchar2(100);
descr varchar2(500);
obj_id number;
begin
name := '';
descr := 'Check WIND.ShrinkTable Table';
dbms_advisor.create_task('Segment Advisor',:task_id,name,descr,NULL);
dbms_advisor.create_object(name,'TABLE','WIND','SHRINKTABLE',NULL,NULL,obj_id);
dbms_advisor.set_task_parameter(name,'RECOMMEND_ALL','TRUE');
dbms_advisor.execute_task(name);
end;
/
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.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29677883/viewspace-1170247/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29677883/viewspace-1170247/