在使用DBMS_STATS分析表的时候,我们经常要保存之前的分析,以防分析后导致系统性能低下然后进行快速恢复。

首先创建一个分析表,该表是用来保存之前的分析值。

SQL> begin

2   dbms_stats.create_stat_table(ownname => 'TEST',stattab => 'STAT_TABLE');

3   end;

4   /

PL/SQL 过程已成功完成。

分析表信息

SQL> BEGIN

2   --DBMS_STATS.delete_table_stats(ownname => 'TEST',tabname => 'A');

3   DBMS_STATS.gather_table_stats(ownname => 'TEST',tabname => 'A');

4   END;

5   /

PL/SQL 过程已成功完成。

导出表分析信息到stat_table中。

SQL> BEGIN

2   dbms_stats.export_table_stats(ownname => 'TEST',tabname => 'A',stattab => 'STAT_TABLE');

3   END;

4   /

PL/SQL 过程已成功完成。

SQL>

同理也有

EXPORT_COLUMN_STATS:导出列的分析信息

EXPORT_INDEX_STATS:导出索引分析信息

EXPORT_SYSTEM_STATS:导出系统分析信息

EXPORT_TABLE_STATS:导出表分析信息

EXPORT_SCHEMA_STATS:导出方案分析信息

EXPORT_DATABASE_STATS:导出数据库分析信息

IMPORT_COLUMN_STATS:导入列分析信息

IMPORT_INDEX_STATS:导入索引分析信息

IMPORT_SYSTEM_STATS:导入系统分析信息

IMPORT_TABLE_STATS:导入表分析信息

IMPORT_SCHEMA_STATS:导入方案分析信息

IMPORT_DATABASE_STATS:导入数据库分析信息

GATHER_INDEX_STATS:分析索引信息

GATHER_TABLE_STATS:分析表信息,当cascade为true时,分析表、列(索引)信息

GATHER_SCHEMA_STATS:分析方案信息

GATHER_DATABASE_STATS:分析数据库信息

GATHER_SYSTEM_STATS:分析系统信息

SQL> select count(*) from stat_table;

COUNT(*)

----------

1

删除分析信息

SQL> BEGIN

2   DBMS_STATS.delete_table_stats(ownname => 'TEST',tabname => 'A');

3   END;

4   /

PL/SQL 过程已成功完成。

导入分析信息

SQL> BEGIN

2   DBMS_STATS.import_table_stats(ownname => 'TEST',tabname => 'A',stattab => 'STAT_TABLE');

3   END;

4   /

PL/SQL 过程已成功完成。

SQL>

示例:

--analyze.sql

set serveroutput on size 100000

declare

v_per number(3);

v_start number := dbms_utility.get_time;

v_end   number;

begin

for rec in (select segment_name,segment_type,ceil(sum(bytes)/1024/1024) segment_size

from user_segments group by segment_name,segment_type)

loop

if rec.segment_type = 'INDEX' then

dbms_stats.gather_index_stats(ownname=>'citictest',  --自己改一下INDNAME=>rec.segment_name

);

--        dbms_output.put_line(rec.segment_name||' '||rec.segment_size||'m '||ceil((dbms_utility.get_time - v_start)/100)||'s');

v_start := dbms_utility.get_time;

elsif rec.segment_type = 'TABLE' then

case when rec.segment_size < 32 then

v_per := 100;

when rec.segment_size < 320 then

v_per := 10;

else

v_per := 1;

end case;

dbms_stats.gather_table_stats(OWNNAME=>'citictest',

TABNAME=>rec.segment_name,

ESTIMATE_PERCENT=>v_per,

METHOD_OPT=>'FOR ALL INDEXED COLUMNS');

--         dbms_output.put_line(rec.segment_name||' '||rec.segment_size||'m '||ceil((dbms_utility.get_time - v_start)/100)||'s');

v_start := dbms_utility.get_time;

end if;

end loop;

end;

/

oracle 表分析 影响,oracle 表分析相关推荐

  1. dev shm与oracle,初识/dev/shm oracle

    今天,一同事问到了/dev/shm目录下为什么会有很多以ora_开头的文件,都有什么用途.虽然经常在linux系统下看到shm设备,但却从没有太多的关心shm到底是干什么用的.为此,特地在网上找了资料 ...

  2. 导出oracle awr分析报告,配置oracle内存参数,察看表空间使用率

    cmd 命令生成awr报告: cmd 窗口 输入 -> Sqlplus sys/orcl@orcl as sysdba  (sys登陆oracle) . 导出awr命令 @?/rdbms/adm ...

  3. oracle表分析都分析什么,oracle表分析

    analyze table tablename compute statistics; analyze index indexname compute statistics; 对于使用CBO很有好处, ...

  4. Oracle 表分析缩表,MySQL中的表分析

    零:说在前面 众所周知,Oracle中,对于大量增删改操作的表需要定时进行表分析,以便回收被标记废弃的磁盘空间,缩减表的实际大小.对于异常状态的索引,也需要定时对索引进行重构. MySQL中亦有类似需 ...

  5. Jdbc访问mysql查询聚合函数_JDBC连接参数设置对Oracle数据库的影响分析

    一次数据库性能问题处理引发的JDBC参数设置思考 近期某环境下系统,出现大面积页面访问缓慢情况,每个页面交易响应时间2-5秒,严重超过平日访问阈值. 经排查分析,问题主要出现在数据库,生成AWR得到3 ...

  6. Oracle中用system存数据,【学习笔记】Oracle表空间 数据存放system表空间影响数据库性能...

    天萃荷净 分享一篇,关于Oracle数据库system表空间研究,不能将用户数据存放在system表空间的原因 为什么不建议客户把业务数据存放到SYSTEM表空间中,一直想通过试验的数据来说明问题,今 ...

  7. oracle 物化视图、中间表的方案

    物化视图 有个项目因为有比较多的查询汇总,考虑到速度,所以使用了物化视图.简单的把用到的给整理了下.先看简单创建语句: create materialized view mv_materialized ...

  8. oracle 在线表分析报告,Oracle Statspack分析报告详解(一)

    statspack 输出结果中必须查看的十项内容 1.负载间档(Load profile) 2.实例效率点击率(Instance efficiency hit ratios) 3.首要的5个等待事件( ...

  9. oracle 驱动表提示错误代码,oracle驱动表以及如何确定驱动表

    驱动表普遍认为是由SQL语句的写法决定的,简单的说,就是FROM语句后面的表列表中的最后一个.由于SQL语句是从后向前进行分析,Oracle会根据FROM语句从后到前将各个表依次连接起来. SQL&g ...

最新文章

  1. Web 开发人员必备的随机 JSON 数据生成工具
  2. Eclipse + Spring boot +mybatis + mysql
  3. Linux 的多线程编程的高效开发经验
  4. matlab_simulink笔记01——模块属性的设置以及模块参数的设置
  5. server端推送消息机制
  6. 草稿 listview动态绑定数据
  7. 华为服务器装系统怎么选pxe,华为TaiShan服务器PXE操作系统
  8. atitit  验证码理论与概览与 验证码规范 解决方案.docx
  9. 程序设计基础(c语言)(第3版)课后习题答案
  10. csrss.exe介绍
  11. lighty2.0沙箱版本的协议和配置分析采用ragel 成功案例
  12. velodyne+cartographer 2D构建栅格地图
  13. onPullDownRefresh和uni.startPullDownRefresh(OBJECT)、uni.stopPullDownRefresh()的关系
  14. 分享WIN7输入法图标不显示的几种解决方法
  15. ETL工程师_个人职责
  16. 造物数藏:以数字藏品为契机 不断完善应用场景探索
  17. 云计算课程作业专业词汇
  18. php 光速,光速 - 实验帮百科
  19. 随机数生成器(结绳中文app编程)
  20. 网站统计中的数据收集原理及实现-埋点统计

热门文章

  1. 大学毕业出路利弊浅谈
  2. myisam 表锁优化参考
  3. flex+php截图Demo
  4. Windows系统顽固型文件清除方法
  5. html入门学习(二)
  6. 设计模式-原型模式(Prototype)
  7. linux usermod -aG命令:将用户添加到某个组group
  8. vue-element-admin文档gitee地址
  9. 在现有k8s集群中安装kubesphere时报错:metrics-server failed
  10. spring boot发送普通文本邮件/HTML邮件/附件邮件/图片邮件完整代码