[20130529] dbms_stats.report_col_usage.txt

[20130529] dbms_stats.report_col_usage.txt

11G下dbms_stats包增加了report_col_usage函数,我曾经写过两篇blog.

http://space.itpub.net/267265/viewspace-757319
http://space.itpub.net/267265/viewspace-757320

要收集exented statistics,先要执行,exec dbms_stats.seed_col_usage(null,null,100).实际上如果你想了解那些在where条件出现,那
些使用like,那些做了连接等信息,直接执行调用dbms)stats.report_col_usage函数,就可以知道.

SQL> @ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
SQL> select dbms_stats.report_col_usage(user,'emp') from dual ;
DBMS_STATS.REPORT_COL_USAGE(USER,'EMP')
----------------------------------------------------------------------------------------
LEGEND:
.......
EQ         : Used in single table EQuality predicate
RANGE      : Used in single table RANGE predicate
LIKE       : Used in single table LIKE predicate
NULL       : Used in single table is (not) NULL predicate
EQ_JOIN    : Used in EQuality JOIN predicate
NONEQ_JOIN : Used in NON EQuality JOIN predicate
FILTER     : Used in single table FILTER predicate
JOIN       : Used in JOIN predicate
GROUP_BY   : Used in GROUP BY expression
...............................................................................
###############################################################################
COLUMN USAGE REPORT FOR SCOTT.EMP
.................................
1. DEPTNO                              : EQ EQ_JOIN
2. EMPNO                               : EQ EQ_JOIN
3. ENAME                               : EQ NULL
4. HIREDATE                            : EQ RANGE
5. JOB                                 : EQ LIKE
6. SAL                                 : RANGE
###############################################################################
这样就不需要写复杂的sql语句查询,查看这些信息.而且也不直观.
SQL> SELECT *  FROM sys.col_usage$ where obj# in (select object_id from dba_objects where wner=user and object_name='EMP');
      OBJ#    INTCOL# EQUALITY_PREDS EQUIJOIN_PREDS NONEQUIJOIN_PREDS RANGE_PREDS LIKE_PREDS NULL_PREDS TIMESTAMP
---------- ---------- -------------- -------------- ----------------- ----------- ---------- ---------- -------------------
     73201          1              6              2                 0           0          0          0 2013-05-17 17:47:06
     73201          2              4              0                 0           0          0          1 2013-05-14 10:15:41
     73201          3              3              0                 0           0          1          0 2013-05-17 17:47:06
     73201          5              2              0                 0           1          0          0 2013-05-15 10:10:07
     73201          6              0              0                 0           3          0          0 2013-05-17 17:47:06
     73201          8              5              2                 0           0          0          0 2013-05-16 15:58:50
6 rows selected.
时间: 2024-09-20 19:45:46

[20130529] dbms_stats.report_col_usage.txt的相关文章

[20150228]DBMS_STATS Tracing.txt

[20150228]DBMS_STATS Tracing.txt --这个是很久的链接,可以跟踪dbms_stats的操作过程,自己测试看看. http://www.pythian.com/blog/options-for-tracing-oracle-dbms_stats/ Tracing is enabled by calling dbms_stats.set_global_prefs('trace',) Following are the possible values for the t

[20130327]dbms_stats.seed_col_usage的使用.txt

[20130327]dbms_stats.seed_col_usage的使用.txt http://blogs.oracle.com/optimizer/entry/how_do_i_know_what_extended_statistics_are_needed_for_a_given_workloadhttp://www.itpub.net/thread-1498587-1-1.html oracle 11.2.0.2介绍了Auto Column Group Creation,自动确立在那些

[20130328]dbms_stats.seed_col_usage的使用2.txt

[20130328]dbms_stats.seed_col_usage的使用2.txt 对昨天dbms_stats.seed_col_usage的使用做一些补充. SQL> exec dbms_stats.reset_col_usage(NULL,NULL) PL/SQL procedure successfully completed. -- This procedure deletes the recorded column (group) usage information -- from

Oracle 12C优化器的巨大变化,上生产必读(下)

在Oracle 12c数据库中,随着新的查询优化自适应方法的引入,还有对可用的统计信息的强化,优化器实现了一个巨大的飞跃.今天就让我们继续这个话题,一起来揭晓Oracle 12C其他的强大功能吧. 16 全局临时表上的会话级统计信息  全局临时表通常用于存储应用程序上下文中的中间结果.一个全局临时表的定义,是全系统中拥有适当权限的所有用户所共享的,但其数据永远是会话私有的.在全局临时表(必须是会话级临时表,PRESERVE ROWS ON COMMIT,提交时保留数据)上收集统计信息是行得通的:

Oracle多列统计信息

Oracle多列统计信息    通常,当我们将SQL语句提交给Oracle数据库时,Oracle会选择一种最优方式来执行,这是通过查询优化器Query Optimizer来实现的.CBO(Cost-Based Optimizer)是Oracle默认使用的查询优化器模式.在CBO中,SQL执行计划的生成,是以一种寻找成本(Cost)最优为目标导向的执行计划探索过程.所谓成本(Cost)就是将CPU和IO消耗整合起来的量化指标,每一个执行计划的成本就是经过优化器内部公式估算出的数字值.      

[20130528]dbms_stats.gather_table_stats的method_opt.txt

[20130528]dbms_stats.gather_table_stats的method_opt.txt 同事想删除某个表的直方图信息,结果老是删除不掉.问我,我看了一下,马上明白使用参数错误,他使用的是method_opt=>'for columns size 1'.缺少了all参数.应该写成method_opt=>'for all columns size 1'. 实际上这个问题我以前做一些测试的时候我就发现,一直没有好好的总结.找个机会总结一下. 1.测试环境: SQL> @v

[20130924]12c dbms_stats包的一些缺省参数.txt

[20130924]12c dbms_stats包的一些缺省参数.txt 11G下: SQL> @ver BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production SELECT DBMS_STATS.get_param ('AU

[20130502]dbms_stats缺省参数.txt

[20130502]dbms_stats缺省参数.txt 今天抽空看了dbms_stats缺省参数,我的测试环境是11G. column cascade format a30column degree format a10column estimate_percent format a30column method_opt format a30column no_invalidate format a30column granularity format a10column publish fo

[20141006]analyze与dbms_stats.txt

[20141006]analyze与dbms_stats.txt --别人问一个奇怪的问题,如何知道表使用analyze分析的还是使用dbms_stats分析的. --一般oracle不建议再使用analyze来分析表,这个命令保留分析表和索引的完整性,以及分析表是否存在行链接还是行迁移. --不过,问题提出来,还是看看有什么方法确定? 1.建立测试环境: @ver SCOTT@test01p> @ver BANNER