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

分布式数据库学习Note64:OceanBase社区版中,删除功能如何使用?

OceanBase 数据库调用 DBMS_STATS 包相关的存储过程 PROCEDURE 去删除保存在内部表中收集的统计信息。

目前支持如下三种删除统计信息的方式:

  • 使用存储过程 delete_table_stats 删除表级的统计信息。

  • 使用存储过程 delete_column_stats 删除列级的统计信息。

  • 使用存储过程 delete_schema_stats 删除 Schema 下所有表的统计信息。

  • 使用存储过程 delete_index_stats 删除索引统计信息.

具体的存储过程定义如下:

PROCEDURE delete_table_stats (
  ownname           VARCHAR2,
  tabname           VARCHAR2,
  partname          VARCHAR2 DEFAULT NULL,
  stattab           VARCHAR2 DEFAULT NULL,
  statid            VARCHAR2 DEFAULT NULL,
  cascade_parts     BOOLEAN DEFAULT TRUE,
  cascade_columns   BOOLEAN DEFAULT TRUE,
  cascade_indexes   BOOLEAN DEFAULT TRUE,
  statown           VARCHAR2 DEFAULT NULL,
  no_invalidate     BOOLEAN DEFAULT FALSE,
  force             BOOLEAN DEFAULT FALSE
);

PROCEDURE delete_column_stats (
  ownname          VARCHAR2,
  tabname          VARCHAR2,
  colname          VARCHAR2,
  partname         VARCHAR2 DEFAULT NULL,
  stattab          VARCHAR2 DEFAULT NULL,
  statid           VARCHAR2 DEFAULT NULL,
  cascade_parts    BOOLEAN DEFAULT TRUE,
  statown          VARCHAR2 DEFAULT NULL,
  no_invalidate    BOOLEAN DEFAULT FALSE,
  force            BOOLEAN DEFAULT FALSE,
  col_stat_type    VARCHAR2 DEFAULT 'ALL'
);

PROCEDURE delete_schema_stats (
  ownname           VARCHAR2,
  stattab           VARCHAR2 DEFAULT NULL,
  statid            VARCHAR2 DEFAULT NULL,
  statown           VARCHAR2 DEFAULT NULL,
  no_invalidate     BOOLEAN DEFAULT FALSE,
  force             BOOLEAN DEFAULT FALSE
);

PROCEDURE delete_index_stats(
  ownname          VARCHAR2,
  indname          VARCHAR2,
  partname         VARCHAR2 DEFAULT NULL,
  stattab          VARCHAR2 DEFAULT NULL,
  statid           VARCHAR2 DEFAULT NULL,
  cascade_parts    BOOLEAN  DEFAULT TRUE,
  statown          VARCHAR2 DEFAULT NULL,
  no_invalidate    BOOLEAN  DEFAULT FALSE,
  stattype         VARCHAR2 DEFAULT 'ALL',
  force            BOOLEAN  DEFAULT FALSE,
  tabname            VARCHAR2  DEFAULT NULL
);

参数解释如下表所示。

参数解释
ownname用户名。如果用户名设置为 NULL,会默认使用当前登录的用户名。
tabname表名。
indname索引名。
partname分区名。
colname列名。
stattab该参数暂未实现,不可用。
statid该参数暂未实现,不可用。
cascade_parts是否同时删除分区级、子分区级的统计信息,默认为 TRUE
cascade_columns是否同时列级的统计信息,默认为 TRUE
cascade_indexes该参数暂未实现,不可用。
statown该参数暂未实现,不可用。
no_invalidate该参数暂未实现,不可用。
force是否强制删除,并忽略锁的状态。默认为 FALSE
col_stat_type删除列级统计信息时的类型。
  • 'ALL' 表示删除所有的列级统计信息。
  • 'HISTOGRAM' 表示仅仅只删除列级的直方图信息。

统计信息的删除功能示例如下:

  • 删除用户 user1 的表 tbl1 的所有统计信息。

    CALL dbms_stats.delete_table_stats('user1', 'tbl1');
    
  • 删除用户 user1 的表 tbl1 的 col1 列的所有统计信息。

    CALL dbms_stats.delete_column_stats('user1', 'tbl1', 'col1');
    
  • 删除用户 user1 下的所有表的统计信息。

    CALL dbms_stats.delete_schema_stats('user1');
    
  • 删除用户 user1 的表 tbl1 的 idx1 索引的所有统计信息。

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

评论