执行包需要dbms_advisor权限:

  1. sys@ORCL> grant advisor to u1;
  2. 授权成功。

创建段顾问任务,指定create_task的advisor_name参数为“段顾问”。查询dba_advisor_definitions来获得所有有效的顾问列表。

  1. u1@ORCL> select * from dba_advisor_definitions;
  2. ADVISOR_ID ADVISOR_NAME                     PROPERTY
  3. ---------- ------------------------------ ----------
  4. 1 ADDM                                    1
  5. 2 SQL Access Advisor                    271
  6. 3 Undo Advisor                            1
  7. 4 SQL Tuning Advisor                    935
  8. 5 Segment Advisor                         3
  9. 6 SQL Workload Manager                    0
  10. 7 Tune MView                             31
  11. 8 SQL Performance Analyzer              935
  12. 9 SQL Repair Advisor                    679
  13. 10 Compression Advisor                     3
  14. 已选择10行。

手动执行段顾问:

  1. sys@ORCL> DECLARE
  2. 2    my_task_id   number;
  3. 3    obj_id       number;
  4. 4    my_task_name varchar2(100);
  5. 5    my_task_desc varchar2(500);
  6. 6  BEGIN
  7. 7    my_task_name := 'BIG_TABLE Advice';
  8. my_task_desc := 'Manual Segment Advisor Run';
  9. 9  ---------
  10. 10  -- Step 1 创建一个任务
  11. 11  ---------
  12. 12    dbms_advisor.create_task (
  13. 13    advisor_name => 'Segment Advisor',
  14. 14    task_id      => my_task_id,
  15. 15    task_name    => my_task_name,
  16. 16    task_desc    => my_task_desc);
  17. 17  ---------
  18. 18  -- Step 2 为这个任务分配一个对象
  19. 19  ---------
  20. 20    dbms_advisor.create_object (
  21. 21    task_name   => my_task_name,
  22. 22    object_type => 'TABLE',
  23. 23    attr1       => 'U1',
  24. 24    attr2       => 'BIG_TABLE',
  25. 25    attr3       => NULL,
  26. 26    attr4       => NULL,
  27. 27    attr5       => NULL,
  28. 28    object_id   => obj_id);
  29. 29  ---------
  30. 30  -- Step 3 设置任务参数
  31. 31  ---------
  32. 32    dbms_advisor.set_task_parameter(
  33. 33    task_name => my_task_name,
  34. 34    parameter => 'recommend_all',
  35. value     => 'TRUE');
  36. ---------
  37. 37  -- Step 4 执行这个任务
  38. 38  ---------
  39. 39    dbms_advisor.execute_task(my_task_name);
  40. 40  END;
  41. 41  /
  42. PL/SQL 过程已成功完成。
  43. sys@ORCL> SELECT
  44. 2   'Segment Advice --------------------------'|| chr(10) ||
  45. 3   'TABLESPACE_NAME  : ' || tablespace_name   || chr(10) ||
  46. 4   'SEGMENT_OWNER    : ' || segment_owner     || chr(10) ||
  47. 5   'SEGMENT_NAME     : ' || segment_name      || chr(10) ||
  48. 6   'ALLOCATED_SPACE  : ' || allocated_space   || chr(10) ||
  49. 7   'RECLAIMABLE_SPACE: ' || reclaimable_space || chr(10) ||
  50. 8   'RECOMMENDATIONS  : ' || recommendations   || chr(10) ||
  51. 9   'SOLUTION 1       : ' || c1                || chr(10) ||
  52. 10   'SOLUTION 2       : ' || c2                || chr(10) ||
  53. 11   'SOLUTION 3       : ' || c3 Advice
  54. 12  FROM
  55. 13  TABLE(dbms_space.asa_recommendations('TRUE', 'TRUE', 'FALSE'));
  56. ADVICE
  57. --------------------------------------------------------------------------------
  58. Segment Advice --------------------------
  59. TABLESPACE_NAME  : USERS
  60. SEGMENT_OWNER    : QYV
  61. SEGMENT_NAME     : BIG_TABLE
  62. ALLOCATED_SPACE  : 125829120
  63. RECLAIMABLE_SPACE: 81788928
  64. RECOMMENDATIONS  : 压缩对象 QYV.BIG_TABLE, 估计可以节省 81788928 字节。
  65. SOLUTION 1       : alter table "QYV"."BIG_TABLE"  compress for oltp
  66. SOLUTION 2       : alter table "QYV"."BIG_TABLE"  move
  67. SOLUTION 3       :
  68. Segment Advice --------------------------
  69. TABLESPACE_NAME  : USERS
  70. SEGMENT_OWNER    : U1
  71. SEGMENT_NAME     : BIG_TABLE
  72. ALLOCATED_SPACE  : 125829120
  73. RECLAIMABLE_SPACE: 109535475
  74. RECOMMENDATIONS  : 启用表 U1.BIG_TABLE 的行移动并执行收缩, 估计可以节省 10953547
  75. 5 字节。
  76. SOLUTION 1       : alter table "U1"."BIG_TABLE" shrink space
  77. SOLUTION 2       : alter table "U1"."BIG_TABLE" shrink space COMPACT
  78. SOLUTION 3       : alter table "U1"."BIG_TABLE" enable row movement
  79. Segment Advice --------------------------
  80. TABLESPACE_NAME  : USERS
  81. SEGMENT_OWNER    : U1
  82. SEGMENT_NAME     : TT
  83. ALLOCATED_SPACE  : 27262976
  84. RECLAIMABLE_SPACE: 17314513
  85. RECOMMENDATIONS  : 启用表 U1.TT 的行移动并执行收缩, 估计可以节省 17314513 字节。
  86. SOLUTION 1       : alter table "U1"."TT" shrink space
  87. SOLUTION 2       : alter table "U1"."TT" shrink space COMPACT
  88. SOLUTION 3       : alter table "U1"."TT" enable row movement
  89. sys@ORCL> SELECT
  90. 2   'Task Name        : ' || f.task_name  || chr(10) ||
  91. 3   'Segment Name     : ' || o.attr2      || chr(10) ||
  92. 4   'Segment Type     : ' || o.type       || chr(10) ||
  93. 5   'Partition Name   : ' || o.attr3      || chr(10) ||
  94. 6   'Message          : ' || f.message    || chr(10) ||
  95. 7   'More Info        : ' || f.more_info TASK_ADVICE
  96. 8  FROM dba_advisor_findings f
  97. 9      ,dba_advisor_objects  o
  98. 10  WHERE o.task_id = f.task_id
  99. 11  AND o.object_id = f.object_id
  100. 12  AND f.task_name like 'BIG_TABLE Advice'
  101. 13  ORDER BY f.task_name;
  102. TASK_ADVICE
  103. -----------------------------------------------------------------------------------------------------------------------------------
  104. Task Name        : BIG_TABLE Advice
  105. Segment Name     : BIG_TABLE
  106. Segment Type     : TABLE
  107. Partition Name   :
  108. Message          : 启用表 U1.BIG_TABLE 的行移动并执行收缩, 估计可以节省 109535475 字节。
  109. More Info        : 分配空间:125829120: 已用空间:16293645: 可回收空间:109535475:
  110. Task Name        : BIG_TABLE Advice
  111. Segment Name     : BIG_TABLE
  112. Segment Type     : TABLE
  113. Partition Name   :
  114. Message          : 启用表 U1.BIG_TABLE 的行移动并执行收缩, 估计可以节省 109535475 字节。
  115. More Info        : 分配空间:125829120: 已用空间:16293645: 可回收空间:109535475:

删除一个任务:

    1. u1@ORCL> exec dbms_advisor.delete_task('BIG_TABLE Advice');
    2. PL/SQL 过程已成功完成。

dbms_advisor 手动生成段顾问建议!的更多相关文章

  1. Oracle手工生成段建议(Segment Advisor)

    一.描写叙述 从oracle 10g開始,oracle引入了段顾问(Segment Advisor),用于检查数据库中是否有与存储空间相关的建议,而且从10gR2開始,oracle自己主动调度并执行一 ...

  2. 手动生成/etc/shadow文件中的密码

    shadow文件的格式就不说了.就说说它的第二列——密码列. 通常,passwd直接为用户指定密码就ok了.但在某些情况下,要为待创建的用户事先指定密码,还要求是加密后的密码,例如kickstart文 ...

  3. mongoose手动生成ObjectId

    用mongoose驱动保存数据,如果_id没有定义,那么在save的时候,mongoose驱动会自己生成一个_id.那么如果需要手动生成可以用mongoose.Types.ObjectId()方法. ...

  4. 手动生成moc文件

    在VS中写Qt项目时,手动添加了一个类,由于要用到信号槽,所以需要生成相应的moc文件.写好信号槽以后,在类里面第一行应该写上Q_OBJECT关键字,编译项目会提示无法找到moc_XXX.cpp文件. ...

  5. 新引入thinkphp报错“应用目录[./Application/]不可写,目录无法自动生成! 请手动生成项目目录~”

    新引入thinkphp报错“应用目录[./Application/]不可写,目录无法自动生成! 请手动生成项目目录~”, 其主要原因是文件夹的权限问题,手动将项目文件夹权限更改为可读可写就OK,具体操 ...

  6. Hyperledger Fabric手动生成CA证书搭建Fabric网络

    之前介绍了使用官方脚本自动化启动一个Fabric网络,并且所有的证书都是通过官方的命令行工具cryptogen直接生成网络中的所有节点的证书.在开发环境可以这么简单进行,但是生成环境下还是需要我们自定 ...

  7. 如何在Windows中手动生成SSH密钥?(转)

    在Windows上,您可以通过多种方式创建SSH密钥.Windows需要SSH客户端,但在其操作系统上没有默认的SSH客户端.请注意,Windows目前正在测试本机OpenSSH应用程序,一般,不提倡 ...

  8. 使用Themleaf 模板引擎手动生成html文件

    1.为什么要写这一篇呢? 在做一个邮件发送功能的时候,需要发送html邮件,javaMail 发送html 的时候需要有已经生成的html正文,所以需要提前将要发送的内容生成,所以就需要模板引擎来动态 ...

  9. 手动生成WebService代理类

    方式一: 手动生成WebService代理类需要把一句生成语句,如 wsdl.exe /l:cs /out:D:/ProxyServices.cs http://localhost/WebServic ...

随机推荐

  1. 【BZOJ】1010: [HNOI2008]玩具装箱toy(dp+斜率优化)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1010 蛋疼用latex写了份题解.. 2015.03.07 upd:很多东西可能有问题,最好看下边提 ...

  2. 【NOIP模拟题】Permutation(dp+高精度)

    首先我们可以这样想: 设状态f[i, j]表示1-i序列有j个'<'的方案数 那么考虑转移 因为i比i-1大,所以可以考虑从i-1来转移.首先i是要插入1-i-1这个序列的,所以我们可以思考插入 ...

  3. img与特殊布局下对浏览器渲染的剖析

    补白 在内联元素中,分为替换元素和非替换元素(不了解的同学可以百度一下),非替换元素是不可以设置尺寸的,而替换元素作为特殊的内联元素,由于其自身拥有尺寸属性,所以其的尺寸是可以进行再次设置的. 此文适 ...

  4. ArcGIS GP应用-GP模型服务发布

    1.双击模型名称打开运行窗体 2.在图上交互和窗体中输入数据后,点击确定运行模型,查看运行结果 3.在当前模型“缓冲区分析”的目录树上,右击含有图形(点.线.面)的节点,点击添加至显示,显示图片 4. ...

  5. Linux命令之乐--expr

    计算字符长度 [root@Director ~]# echo $var hello world [root@Director test]# expr length "$var" 数 ...

  6. jenkins配置邮件报警

    author:headsen chen date: 2018-05-15  13:49:21 在jerkins的主配置页面上: 注意:不用 安装什么报警邮件的插件.直接配置就可以了. 系统管理 --- ...

  7. 【BZOJ3781、2038】莫队算法2水题

    [BZOJ3781]小B的询问 题意:有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数 ...

  8. MySQL备份1356错误提示修复办法

    mysqldump备份出现错误提示 mysqldump: Couldn't execute 'SHOW FIELDS FROM `view_videos`': View 'hekegame_video ...

  9. Code Forces 21C Stripe 2

    C. Stripe 2 time limit per test 1 second memory limit per test 64 megabytes input standard input out ...

  10. POJ3272 Cow Traffic

    题目链接:http://poj.org/problem?id=3272 题目意思:n个点m条边的有向图,从所有入度为0的点出发到达n,问所有可能路径中,经过的某条路的最大次数是多少.边全是由标号小的到 ...