暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 带有直方图的数据库sql性能

askTom 2018-03-18
175

问题描述

嗨,团队,

是他们在列上找到旧直方图的任何方法。在我的情况下,我看到表具有基于直方图高度的列状态,但之前它是freq。基于,在这种情况下我知道这一点,因为我们已经收集了数据,但是在直方图类型发生变化的情况下,如果我们没有任何方便的细节与早期的直方图类型有关,并假设统计信息被收集并且直方图的类型发生了变化,那么在这种情况下,我们如何找到旧的直方图类型?

此外,您能否帮助我们找到计划变更的原因?我们需要考虑什么因素?
要求您提供一些详细信息,这将对我的学习阶段有所帮助




专家解答

您可以查询DBA_TAB_STATS_HISTORY以获取表上何时收集统计信息的列表。例如

SQL> select STATS_UPDATE_TIME
  2  from   DBA_TAB_STATS_HISTORY
  3  where  OWNER = 'ASKTOM'
  4  and    TABLE_NAME = 'ATE_QUESTION_VIEWS'
  5  order  by 1;

STATS_UPDATE_TIME
-----------------------------------------------
22-FEB-18 11.24.21.709000 PM +08:00
22-FEB-18 11.44.27.112000 PM +08:00
23-FEB-18 10.00.28.915000 PM +08:00
复制



(据我所知) 我们不会在字典视图中公开历史直方图级别的数据,但是您也许可以从诸如

select 
     c.table_name 
    ,c.column_name
    ,h.savtime
    ,h.bucket
    ,h.endpoint
    ,h.epvalue
from sys.wri$_optstat_histgrm_history  h
    ,dba_objects o
    ,dba_tab_columns c
WHERE o.owner= 'ASKTOM'
and   o.object_name='ATE_QUESTION_VIEWS'
and   c.column_name='QUESTION_ID'
and   o.object_id=h.obj#
and   c.column_id=h.intcol#
and   o.object_name=c.table_name
and   o.owner=c.owner
order by savtime, bucket
/
复制


但是很明显,一旦我们在那个级别进行挖掘,我就无法确认我的查询是否正确,或者将在不同的版本中工作。另一种策略是使用第一个查询的结果从各个时间点恢复统计信息的版本,然后查询标准字典视图。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论