zoukankan      html  css  js  c++  java
  • Oracle 收集统计信息11g和12C在差异

        Oracle 基于事务临时表11g和12C下,能看到临时表后收集的统计数据,前者记录被清除,后者没有,这是一个很重要的不同。

    关于使用企业环境12C,11g,使用暂时表会造成时快时慢。之前我有帖子http://blog.csdn.net/stevendbaguo/article/details/39964807。用了hint之后,也不是特别好。于是直接採集,结果暂时表被清空。

    解决办法是:建基于session的暂时表,且每次用完之后要truncate,要不然,会有问题。

    SQL> select * from v$version;

    BANNER                                                                               CON_ID
    -------------------------------------------------------------------------------- ----------
    Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0
    PL/SQL Release 12.1.0.1.0 - Production                                                    0
    CORE 12.1.0.1.0Production                                                        0
    TNS for Linux: Version 12.1.0.1.0 - Production                                            0
    NLSRTL Version 12.1.0.1.0 - Production                                                    0
    SQL> drop table test purge;
    --基于事务的暂时表
    SQL> create global temporary table test
        (
          ID   number
        )
        on commit delete rows;
    SQL> insert into test select object_id from dba_objects;
    99412 rows inserted
    SQL> select count(1) from test;
      COUNT(1)
    ----------
         99412
    SQL> exec dbms_stats.gather_table_stats(user,'test');
    SQL> select count(1) from test;
      COUNT(1)
    ----------
         99412
         
         
         
    SQL> select * from v$version;
    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE 11.2.0.1.0Production
    TNS for Linux: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    SQL> drop table test purge;
    --基于事务的暂时表
    SQL> create global temporary table test
        (
          ID   number
        )
        on commit delete rows;
    SQL> insert into test select object_id from dba_objects;
    70379 rows inserted
    SQL> select count(1) from test;
      COUNT(1)
    ----------
         70379
    SQL> exec dbms_stats.gather_table_stats(user,'test');
    SQL> select count(1) from test;
      COUNT(1)
    ----------
             0
  • 相关阅读:
    PostgreSQL主备切换
    PostgreSQL流复制
    PostgreSQL存储过程(5)-异常错误处理
    PostgreSQL存储过程(4)-return语句
    vue+element ui项目总结点(二)table合计栏目,按照起始年份--截止年份 插入数据并向后追加数据以最后一条年份+1
    vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、mockjs用法、路由懒加载三种方式
    react基础语法(五) state和props区别和使用
    js获取上周、本周、下周的时间
    Python基础语法(二)
    Python基础语法(一)
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5045625.html
Copyright © 2011-2022 走看看