[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 dictionary. Column (group) usage information is used by gather
-- procedures to automatically determine the columns that require histograms.
-- Also this information is used by create_extended_stats to create extensions
-- for the group of columns seen in the workload. So resetting column usage
-- will affect these functionalities. This procedure should be used only in very
-- rare cases where you need to start from scratch and need to seed
-- column usage all over again.

在做1次10046跟踪看看,这些信息记录在那个表。
alter session set events '10046 trace name context forever, level 12';
exec dbms_stats.seed_col_usage(null,null,100);
Select * from t1 where id2=3 and name='test';
Select * from t1 where id2=3 and name='test';
Select * from t1 where id2=3 and name='test';
select dbms_stats.report_col_usage(user,'t1') from dual ;
alter session set events '10046 trace name context off';

检查跟踪文件发现:

/* Formatted on 2013/03/28 15:14 (Formatter Plus v4.8.8) */
MERGE INTO SYS.col_group_usage$ d
   USING (SELECT :1 obj#, :2 cols
            FROM DUAL) s
   ON (d.obj# = s.obj# AND d.cols = s.cols)
   WHEN MATCHED THEN
      UPDATE
         SET d.TIMESTAMP = :3, d.flags = d.flags + :4 - BITAND (d.flags, :4)
   WHEN NOT MATCHED THEN
      INSERT (obj#, cols, TIMESTAMP, flags)
      VALUES (:1, :2, :3, :4)
看看文件内容:
SQL> column cols format a30
SQL> select * from SYS.col_group_usage$;
      OBJ# COLS                           TIMESTAMP                FLAGS
---------- ------------------------------ ------------------- ----------
    273081 2,3                            2013-03-28 15:12:12          1

SQL> select * from dba_objects where object_id=273081;
OWNER  OBJECT_NAME          SUBOBJECT_  OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE         CREATED             LAST_DDL_TIME       TIMESTAMP           STATUS  T G S  NAMESPACE EDITION_NAME
------ -------------------- ---------- ---------- -------------- ------------------- ------------------- ------------------- ------------------- ------- - - - ---------- ------------------------------
SCOTT  T1                                  273081         273081 TABLE               2013-03-27 17:12:13 2013-03-28 14:46:24 2013-03-28:14:46:24 VALID   N N N          1

--可以确定就是T1表的2,3字段。

时间: 2024-10-23 10:25:26

[20130328]dbms_stats.seed_col_usage的使用2.txt的相关文章

[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,自动确立在那些

[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-757319http://space.itpub.net/267265/viewspace-757320 要收集exented statistics,先要执行,exec dbms_stats.seed_col_usage(null,n

[20140812]oracle12c dbms_stats的缺省参数

[20140812]oracle 12c. dbms_stats的缺省参数.txt --昨天,别人讲我写的链接依旧漏掉宝dbms_stats的缺省参数,今天看了一下,确实如此,写一个比较全面的, --实际上这些值保存在SYS.OPTSTAT_HIST_CONTROL$中. --链接: http://blog.itpub.net/267265/viewspace-773277/ 直接查询它就ok了. SYS@test> select sname, sval1,spare1, spare4 from

深入并行:从并行加载到12c Adaptive特性深度理解Oracle并行

陈焕生 Oracle Real-World Performance Group 成员,senior performance engineer,专注于 OLTP.OLAP 系统 在 Exadata 平台和 In-Memory 特性上的最佳实践.个人博客 http://dbsid.com . 编辑手记:感谢陈焕生的精品文章,这篇文章首发在ACOUG,在此转载分享给大家,Sidney撰写这个系列的文章时间跨度也有两年,下篇刚刚出炉. 上篇分为两篇文章: 深入并行:从生产者到消费者模型深度理解Oracl

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消耗整合起来的量化指标,每一个执行计划的成本就是经过优化器内部公式估算出的数字值.      

[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

[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