---
title: "设置功能 | OceanBase 文档中心"
description: 设置功能 统计信息的设置功能是指通过使用 DBMS_STATS 系统包下的存储过程手工方式去设定表级、列级的基本统计信息。 说明 目前还暂不支持设置列级的直方图信息。 OceanBase 数据库目前支持对表与列设置统计信息，具体使方的方式： 使用存储过程 set_table_stats 设置表级的基本统计信息。 使用…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.3 企业版 LTS

# 设置功能

更新时间：2023-07-18 17:25:58

统计信息的设置功能是指通过使用 DBMS_STATS 系统包下的存储过程手工方式去设定表级、列级的基本统计信息。

> **说明**
>
>  
>
> 目前还暂不支持设置列级的直方图信息。

OceanBase 数据库目前支持对表与列设置统计信息，具体使方的方式：

- 使用存储过程 `set_table_stats` 设置表级的基本统计信息。
 - 使用存储过程 `set_column_stats` 设置列级的基本统计信息。

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

```sql
PROCEDURE set_table_stats (
  ownname            VARCHAR2,
  tabname            VARCHAR2,
  partname           VARCHAR2 DEFAULT NULL,
  stattab            VARCHAR2 DEFAULT NULL,
  statid             VARCHAR2 DEFAULT NULL,
  numrows            NUMBER DEFAULT NULL,
  numblks            NUMBER DEFAULT NULL,
  avgrlen            NUMBER DEFAULT NULL,
  flags              NUMBER DEFAULT NULL,
  statown            VARCHAR2 DEFAULT NULL,
  no_invalidate      BOOLEAN DEFAULT FALSE,
  cachedblk          NUMBER DEFAULT NULL,
  cachehit           NUMBER DEFAULT NULL,
  force              BOOLEAN DEFAULT FALSE
);

PROCEDURE set_column_stats (
  ownname            VARCHAR2,
  tabname            VARCHAR2,
  colname            VARCHAR2,
  partname           VARCHAR2 DEFAULT NULL,
  stattab            VARCHAR2 DEFAULT NULL,
  statid             VARCHAR2 DEFAULT NULL,
  distcnt            NUMBER   DEFAULT NULL,
  density            NUMBER   DEFAULT NULL,
  nullcnt            NUMBER   DEFAULT NULL,
  epc                NUMBER   DEFAULT NULL,
  minval             RAW      DEFAULT NULL,
  maxval             RAW      DEFAULT NULL,
  bkvals             NUMARRAY  DEFAULT NULL,
  novals             NUMARRAY  DEFAULT NULL,
  chvals             CHARARRAY DEFAULT NULL,
  eavals             RAWARRAY  DEFAULT NULL,
  rpcnts             NUMARRAY  DEFAULT NULL,
  eavs               NUMBER   DEFAULT NULL,
  avgclen            NUMBER   DEFAULT NULL,
  flags              NUMBER   DEFAULT NULL,
  statown            VARCHAR2 DEFAULT NULL,
  no_invalidate      BOOLEAN DEFAULT FALSE,
  force              BOOLEAN DEFAULT FALSE
);

```

参数解释如下表所示。

| 参数 | 解释 |
| --- | --- |
| ownname | 用户名。如果用户名设置为 `NULL`，会默认使用当前登录用户名。 |
| tabname | 表名。 |
| partname | 分区名。 |
| colname | 列名。 |
| numrows | 表级的总行数。 |
| avgrlen | 表级的平均行。 |
| distcnt | 列级的 NDV 值。 |
| density | 列级的稠密度。 |
| nullcnt | 列级的 `NULL` 值个数。 |
| avgclen | 列级的平均长度。 |
| force | 是否强制删除，并忽略锁的状态。默认为 `FALSE`。 |

统计信息设置功能的示例如下：

- 设置用户 `user1` 的表 `tbl1` 的总行数为一万行。

  ```sql
  CALL dbms_stats.set_table_stats('user1', 'tbl1', numrows=>10000);

  ```
 - 设置用户 `user1` 的表 `tbl1` 的 `col1` 列的 NDV 为 10，`NULL` 值个数为 10。

  ```sql
  CALL dbms_stats.set_column_stats('user1', 'tbl1', 'col1', distcnt=>10, nullcnt=>10);

  ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
