专栏首页小麦苗的DB宝专栏【DB笔试面试630】在Oracle中,怎样收集表的统计信息?怎样收集分区表的统计信息?

【DB笔试面试630】在Oracle中,怎样收集表的统计信息?怎样收集分区表的统计信息?

题目部分

在Oracle中,怎样收集表的统计信息?怎样收集分区表的统计信息?

答案部分

主要采用DBMS_STATS.GATHER_TABLE_STATS包进行统计信息的收集,如下所示:

DBMS_STATS.GATHER_TABLE_STATS(USER,'TB_NAME',CASCADE=>TRUE);--普通表
DBMS_STATS.GATHER_TABLE_STATS(USER,'TB_NAME',PARTNAME=>'PT_PART_NAME',GRANULARITY=>'PARTITION',CASCADE=>TRUE);--针对分区表的单个分区进行收集统计信息

除此之外,还有一些其它的用法,如下所示:

l EXEC DBMS_STATS.GATHER_DATABASE_STATS();--收集当前数据库下所有用户的统计信息

l EXEC DBMS_STATS.GATHER_SCHEMA_STATS(USER);--收集用户下所有对象的统计信息

当系统的分区表数据量很大时,如果每次都收集全部的分区必然会导致统计信息的收集非常慢,在Oracle 11g之后可以通过设置INCREMENTAL来只针对数据有变动的分区做收集:

EXEC DBMS_STATS.SET_TABLE_PREFS(USER,'TABLE_NAME','INCREMENTAL','TRUE');--只收集数据变动的分区
SELECT DBMS_STATS.GET_PREFS('INCREMENTAL',NULL,'TABLE_NAME') FROM DUAL;--查看分区表INCREMENTAL的值

本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

本文分享自微信公众号 - DB宝(xiaomaimiaolhr)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关于双主的一些说明【91洲际哥的笔记】

    A上同步到B,B上写,就会报duplicate,这还比较好,至少两边数据还是一致的

    二狗不要跑
  • 循序渐进Oracle:数据库的字符集和字符集文件

    导读:本文来自『墨天轮』专栏“循序渐进Oralcle”(https://www.modb.pro/topic/6289,复制到浏览器中打开或者点击“阅读原文”)...

    数据和云
  • 每敲一行代码,需要测试1000次!!!

    此前Oracle 惨遭亚马逊、Salesforce 弃用,究其根本原因,不是因为亚马逊等企业为了省钱,而是因为 Oracle 数据库逐渐满足不了他们业务的发展需...

    用户5224393
  • SQL 性能优化 总结

    ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在...

    张传宁老师
  • 《Oracle Concept》第三章 - 12

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    bisal
  • Oracle 19c之RPM安装

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    bisal
  • 如何手工配置DBControl

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    数据和云01
  • rlwrap 小工具

    yum install readline readline-devel rlwrap -y

    二狗不要跑
  • mysql类似oracle rownum写法

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    用户1208223
  • mysql派生查询必须有别名问题记录

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    用户1208223

扫码关注云+社区

领取腾讯云代金券