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

Oracle 19C 显示列组信息

原创 Asher.HU 2021-02-04
576


要获取列组的名称,请使用DBMS_STATS.SHOW_EXTENDED_STATS_NAME函数或数据库视图。

您还可以使用视图来获取信息,例如不同值的数量以及列组是否具有直方图。

假设条件

本教程假定以下内容:

  • 您为架构表中cust_state_provincecountry_id创建了一个列组customerssh
  • 您要确定列组名称,不同值的数量以及是否已为列组创建直方图。

监视列组:

  1. 启动SQL * Plus并以sh用户身份连接到数据库
  2. 要确定列组名称,请执行以下任一操作。
    • 执行SHOW_EXTENDED_STATS_NAME功能。

      例如,运行以下PL / SQL程序:

      SELECT SYS.DBMS_STATS.SHOW_EXTENDED_STATS_NAME( 'sh','customers',
             '(cust_state_province,country_id)' ) col_group_name 
      FROM   DUAL;
      

      输出类似于以下内容:

      COL_GROUP_NAME
      ----------------
      SYS_STU#S#WF25Z#QAHIHE#MOFFMM_
      
    • 查询USER_STAT_EXTENSIONS视图。

      例如,运行以下查询:

      SELECT EXTENSION_NAME, EXTENSION 
      FROM   USER_STAT_EXTENSIONS 
      WHERE  TABLE_NAME='CUSTOMERS';
      
      EXTENSION_NAME                     EXTENSION
      -----------------------------------------------------------------------
      SYS_STU#S#WF25Z#QAHIHE#MOFFMM_     ("CUST_STATE_PROVINCE","COUNTRY_ID")
      
  3. 查询不同值的数量,并查找是否已为列组创建直方图。

    例如,运行以下查询:

    SELECT e.EXTENSION col_group, t.NUM_DISTINCT, t.HISTOGRAM
    FROM   USER_STAT_EXTENSIONS e, USER_TAB_COL_STATISTICS t
    WHERE  e.EXTENSION_NAME=t.COLUMN_NAME
    AND    e.TABLE_NAME=t.TABLE_NAME
    AND    t.TABLE_NAME='CUSTOMERS';
    
    COL_GROUP                             NUM_DISTINCT        HISTOGRAM
    -------------------------------------------------------------------
    ("COUNTRY_ID","CUST_STATE_PROVINCE")  145                 FREQUENCY

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论