ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 11g新特性--pending statistics

11g新特性--pending statistics

原创 Linux操作系统 作者:lsq_008 时间:2013-01-26 21:41:15 0 删除 编辑
在11gr2后,收集统计信息后,可以选择使用或不使用新的统计信息,如果使用新的统计信息,则统计信息被保存在USER_TAB_STATISTICS 和 USER_IND_STATISTICS.中
如果不使用,则统计信息被保存在USER_TAB_PENDING_STATS 和 USER_IND_PENDING_STATS中

使用如下方法查看是否使用新的统计信息:
SQL> SELECT DBMS_STATS.GET_PREFS('PUBLISH') PUBLISH FROM DUAL;

PUBLISH
--------------------------------------------------------------------------------
TRUE

使用如下存储过程,可以修改默认的发布方式:
Exec dbms_stats.set_table_prefs('HR', 'TEST', 'PUBLISH', 'false');


测试如下:
SQL> exec dbms_stats.gather_table_stats(user,'test');

PL/SQL procedure successfully completed.

SQL> select table_name,LAST_ANALYZED from user_tab_statistics where table_name='TEST';

TABLE_NAME                     LAST_ANALYZED
------------------------------ -------------------
TEST                           2012-12-25 09:44:18

SQL> Exec dbms_stats.set_table_prefs('HR', 'TEST', 'PUBLISH', 'false');

PL/SQL procedure successfully completed.

SQL> exec dbms_stats.gather_table_stats(user,'test');

PL/SQL procedure successfully completed.

SQL> select table_name,LAST_ANALYZED from user_tab_statistics where table_name='TEST';

TABLE_NAME                     LAST_ANALYZED
------------------------------ -------------------
TEST                           2012-12-25 09:44:18

--可见,再次收集统计信息后,last_analyzed时间没有发生变化

SQL> Exec dbms_stats.set_table_prefs('HR', 'TEST', 'PUBLISH', 'true');

PL/SQL procedure successfully completed.

SQL> exec dbms_stats.gather_table_stats(user,'test');

PL/SQL procedure successfully completed.

SQL> select table_name,LAST_ANALYZED from user_tab_statistics where table_name='TEST';

TABLE_NAME                     LAST_ANALYZED
------------------------------ -------------------
TEST                           2012-12-25 09:47:50

--修改publish为true后,再次执行统计信息收集,last_analyzed已经被更新

--如果需要使用未publish的统计信息,需要修改optimizer_use_pending_statistics参数为true


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10972173/viewspace-753395/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
十余年大型金融及电信系统数据库管理经验,曾服务于中国建设银行、中国移动。对oracle,mysql数据库有深入了解。 擅长python开发,独立开发了开源数据库自动化监控运维平台Power Monitor。

注册时间:2008-02-29

  • 博文量
    335
  • 访问量
    1369108