dbms_advisor 手动生成段顾问建议!
执行包需要dbms_advisor权限:
- sys@ORCL> grant advisor to u1;
- 授权成功。
创建段顾问任务,指定create_task的advisor_name参数为“段顾问”。查询dba_advisor_definitions来获得所有有效的顾问列表。
- u1@ORCL> select * from dba_advisor_definitions;
- ADVISOR_ID ADVISOR_NAME PROPERTY
- ---------- ------------------------------ ----------
- 1 ADDM 1
- 2 SQL Access Advisor 271
- 3 Undo Advisor 1
- 4 SQL Tuning Advisor 935
- 5 Segment Advisor 3
- 6 SQL Workload Manager 0
- 7 Tune MView 31
- 8 SQL Performance Analyzer 935
- 9 SQL Repair Advisor 679
- 10 Compression Advisor 3
- 已选择10行。
手动执行段顾问:
- sys@ORCL> DECLARE
- 2 my_task_id number;
- 3 obj_id number;
- 4 my_task_name varchar2(100);
- 5 my_task_desc varchar2(500);
- 6 BEGIN
- 7 my_task_name := 'BIG_TABLE Advice';
- my_task_desc := 'Manual Segment Advisor Run';
- 9 ---------
- 10 -- Step 1 创建一个任务
- 11 ---------
- 12 dbms_advisor.create_task (
- 13 advisor_name => 'Segment Advisor',
- 14 task_id => my_task_id,
- 15 task_name => my_task_name,
- 16 task_desc => my_task_desc);
- 17 ---------
- 18 -- Step 2 为这个任务分配一个对象
- 19 ---------
- 20 dbms_advisor.create_object (
- 21 task_name => my_task_name,
- 22 object_type => 'TABLE',
- 23 attr1 => 'U1',
- 24 attr2 => 'BIG_TABLE',
- 25 attr3 => NULL,
- 26 attr4 => NULL,
- 27 attr5 => NULL,
- 28 object_id => obj_id);
- 29 ---------
- 30 -- Step 3 设置任务参数
- 31 ---------
- 32 dbms_advisor.set_task_parameter(
- 33 task_name => my_task_name,
- 34 parameter => 'recommend_all',
- value => 'TRUE');
- ---------
- 37 -- Step 4 执行这个任务
- 38 ---------
- 39 dbms_advisor.execute_task(my_task_name);
- 40 END;
- 41 /
- PL/SQL 过程已成功完成。
- sys@ORCL> SELECT
- 2 'Segment Advice --------------------------'|| chr(10) ||
- 3 'TABLESPACE_NAME : ' || tablespace_name || chr(10) ||
- 4 'SEGMENT_OWNER : ' || segment_owner || chr(10) ||
- 5 'SEGMENT_NAME : ' || segment_name || chr(10) ||
- 6 'ALLOCATED_SPACE : ' || allocated_space || chr(10) ||
- 7 'RECLAIMABLE_SPACE: ' || reclaimable_space || chr(10) ||
- 8 'RECOMMENDATIONS : ' || recommendations || chr(10) ||
- 9 'SOLUTION 1 : ' || c1 || chr(10) ||
- 10 'SOLUTION 2 : ' || c2 || chr(10) ||
- 11 'SOLUTION 3 : ' || c3 Advice
- 12 FROM
- 13 TABLE(dbms_space.asa_recommendations('TRUE', 'TRUE', 'FALSE'));
- ADVICE
- --------------------------------------------------------------------------------
- Segment Advice --------------------------
- TABLESPACE_NAME : USERS
- SEGMENT_OWNER : QYV
- SEGMENT_NAME : BIG_TABLE
- ALLOCATED_SPACE : 125829120
- RECLAIMABLE_SPACE: 81788928
- RECOMMENDATIONS : 压缩对象 QYV.BIG_TABLE, 估计可以节省 81788928 字节。
- SOLUTION 1 : alter table "QYV"."BIG_TABLE" compress for oltp
- SOLUTION 2 : alter table "QYV"."BIG_TABLE" move
- SOLUTION 3 :
- Segment Advice --------------------------
- TABLESPACE_NAME : USERS
- SEGMENT_OWNER : U1
- SEGMENT_NAME : BIG_TABLE
- ALLOCATED_SPACE : 125829120
- RECLAIMABLE_SPACE: 109535475
- RECOMMENDATIONS : 启用表 U1.BIG_TABLE 的行移动并执行收缩, 估计可以节省 10953547
- 5 字节。
- SOLUTION 1 : alter table "U1"."BIG_TABLE" shrink space
- SOLUTION 2 : alter table "U1"."BIG_TABLE" shrink space COMPACT
- SOLUTION 3 : alter table "U1"."BIG_TABLE" enable row movement
- Segment Advice --------------------------
- TABLESPACE_NAME : USERS
- SEGMENT_OWNER : U1
- SEGMENT_NAME : TT
- ALLOCATED_SPACE : 27262976
- RECLAIMABLE_SPACE: 17314513
- RECOMMENDATIONS : 启用表 U1.TT 的行移动并执行收缩, 估计可以节省 17314513 字节。
- SOLUTION 1 : alter table "U1"."TT" shrink space
- SOLUTION 2 : alter table "U1"."TT" shrink space COMPACT
- SOLUTION 3 : alter table "U1"."TT" enable row movement
- sys@ORCL> SELECT
- 2 'Task Name : ' || f.task_name || chr(10) ||
- 3 'Segment Name : ' || o.attr2 || chr(10) ||
- 4 'Segment Type : ' || o.type || chr(10) ||
- 5 'Partition Name : ' || o.attr3 || chr(10) ||
- 6 'Message : ' || f.message || chr(10) ||
- 7 'More Info : ' || f.more_info TASK_ADVICE
- 8 FROM dba_advisor_findings f
- 9 ,dba_advisor_objects o
- 10 WHERE o.task_id = f.task_id
- 11 AND o.object_id = f.object_id
- 12 AND f.task_name like 'BIG_TABLE Advice'
- 13 ORDER BY f.task_name;
- TASK_ADVICE
- -----------------------------------------------------------------------------------------------------------------------------------
- Task Name : BIG_TABLE Advice
- Segment Name : BIG_TABLE
- Segment Type : TABLE
- Partition Name :
- Message : 启用表 U1.BIG_TABLE 的行移动并执行收缩, 估计可以节省 109535475 字节。
- More Info : 分配空间:125829120: 已用空间:16293645: 可回收空间:109535475:
- Task Name : BIG_TABLE Advice
- Segment Name : BIG_TABLE
- Segment Type : TABLE
- Partition Name :
- Message : 启用表 U1.BIG_TABLE 的行移动并执行收缩, 估计可以节省 109535475 字节。
- More Info : 分配空间:125829120: 已用空间:16293645: 可回收空间:109535475:
删除一个任务:
- u1@ORCL> exec dbms_advisor.delete_task('BIG_TABLE Advice');
- PL/SQL 过程已成功完成。
dbms_advisor 手动生成段顾问建议!的更多相关文章
- Oracle手工生成段建议(Segment Advisor)
一.描写叙述 从oracle 10g開始,oracle引入了段顾问(Segment Advisor),用于检查数据库中是否有与存储空间相关的建议,而且从10gR2開始,oracle自己主动调度并执行一 ...
- 手动生成/etc/shadow文件中的密码
shadow文件的格式就不说了.就说说它的第二列——密码列. 通常,passwd直接为用户指定密码就ok了.但在某些情况下,要为待创建的用户事先指定密码,还要求是加密后的密码,例如kickstart文 ...
- mongoose手动生成ObjectId
用mongoose驱动保存数据,如果_id没有定义,那么在save的时候,mongoose驱动会自己生成一个_id.那么如果需要手动生成可以用mongoose.Types.ObjectId()方法. ...
- 手动生成moc文件
在VS中写Qt项目时,手动添加了一个类,由于要用到信号槽,所以需要生成相应的moc文件.写好信号槽以后,在类里面第一行应该写上Q_OBJECT关键字,编译项目会提示无法找到moc_XXX.cpp文件. ...
- 新引入thinkphp报错“应用目录[./Application/]不可写,目录无法自动生成! 请手动生成项目目录~”
新引入thinkphp报错“应用目录[./Application/]不可写,目录无法自动生成! 请手动生成项目目录~”, 其主要原因是文件夹的权限问题,手动将项目文件夹权限更改为可读可写就OK,具体操 ...
- Hyperledger Fabric手动生成CA证书搭建Fabric网络
之前介绍了使用官方脚本自动化启动一个Fabric网络,并且所有的证书都是通过官方的命令行工具cryptogen直接生成网络中的所有节点的证书.在开发环境可以这么简单进行,但是生成环境下还是需要我们自定 ...
- 如何在Windows中手动生成SSH密钥?(转)
在Windows上,您可以通过多种方式创建SSH密钥.Windows需要SSH客户端,但在其操作系统上没有默认的SSH客户端.请注意,Windows目前正在测试本机OpenSSH应用程序,一般,不提倡 ...
- 使用Themleaf 模板引擎手动生成html文件
1.为什么要写这一篇呢? 在做一个邮件发送功能的时候,需要发送html邮件,javaMail 发送html 的时候需要有已经生成的html正文,所以需要提前将要发送的内容生成,所以就需要模板引擎来动态 ...
- 手动生成WebService代理类
方式一: 手动生成WebService代理类需要把一句生成语句,如 wsdl.exe /l:cs /out:D:/ProxyServices.cs http://localhost/WebServic ...
随机推荐
- 在Asp.net中为图像加入水印信息
using System.Drawing; using System.IO; using System.Drawing.Imaging; private void AddTextToImg(strin ...
- 数据库 proc编程六
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...
- Differential Geometry之第十章极小曲面
第十章.极小曲面 1.极小图 Animation showing the deformation of a helicoid into a catenoid. Animation of Scherk' ...
- Ubuntu 16.04 更换阿里云源
Ubuntu 16.04 更换阿里云源sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份sudo gedit /etc/apt/so ...
- Unity3d优化总结2
优化: 1. 更新不透明贴图的压缩格式为ETC 4bit,因为android市场的手机中的GPU有多种, 每家的GPU支持不同的压缩格式,但他们都兼容ETC格式, 2. 对于透明贴图,我们只能选择RG ...
- ThinkPHP项目笔记之数据库配置篇
对于配置文件,有几点说明 common:公共配置,也就是前台,后台,都可以调用的文件,具有普遍性 前台/后台:就是针对前后台的配置文件,具有针对性. 如:(公共文件基本配置) <?php ret ...
- Android studio 添加admob googgle play services
Android studio 添加admob googgle play services MainActivity import com.google.android.gms.ads.AdReques ...
- android Contacts/Acore进程常常被Kill,导致联系人开机后丢失怎么办?
Contacts/Acore进程,在内存较少和开机进程过多的情况下会常常被 ActivityManager Kill 掉. 导致Sim卡联系人开机后未导入或者仅仅导入一部分,造成联系人丢失的现象,可是 ...
- Win7下搭建安卓android开发环境
本文出自 “孤狼” 博客,请务必保留此出处http://332374363.blog.51cto.com/5262696/1310882 另外,在搭建android开发环境时,还参考了http://w ...
- Javascript实现图片的预加载的完整实现
图片预加载是web开发中一种应用相当广泛的技术,比如我们在做图片翻转显示等特效的时候,为了让图片在转换的时候不出现等待,我们最好是先让图片下载到本地,然后在继续执行后续的操作.今天我们将来实现一个完整 ...