diff --git a/docs/docs-cn/1.about-oceanbase-database/1.what-is-oceanbase.md b/docs/docs-cn/1.about-oceanbase-database/1.what-is-oceanbase.md deleted file mode 100644 index 9d2bb01ad..000000000 --- a/docs/docs-cn/1.about-oceanbase-database/1.what-is-oceanbase.md +++ /dev/null @@ -1,63 +0,0 @@ -什么是 OceanBase 数据库 -====================================== - - - -OceanBase 数据库是一个金融级分布式关系数据库,提供社区版和企业版: - -* OceanBase 数据库社区版包含 OceanBase 的所有核心功能,源代码完全公开,且使用免费。 - - - -* OceanBase 数据库企业版在 OceanBase 社区版的基础上,提供更多高级功能,如商业特性兼容、图形化管理工具、操作审计、安全加密、高可用扩展等。如果您想了解 OceanBase 企业版的相关功能,请参考 [OceanBase 企业版文档](https://www.oceanbase.com/docs)。 - - - - - - -本手册仅适用于 OceanBase 数据库社区版。 - -特性 ------------------------ - -OceanBase 数据库具有如下特性: - -* 高可用 - - OceanBase 数据库将数据以多副本的方式存储在集群的各个节点,可以轻松实现高可用,保证 RPO=0,甚至异地多活。即使单个节点出现故障也不影响业务。多副本能够满足从节点、机架、机房到城市级别的高可用、容灾要求,并且克服传统数据库的主备模式在主节点出现异常时 RPO\>0 的问题。 - - -* 可扩展 - - OceanBase 数据库具有极强的可扩展性,可以在线进行平滑扩容或缩容,在扩容后自动实现系统负载均衡。并且扩容或缩容过程对应用透明。 - - -* 低成本 - - OceanBase 数据库可以在通用服务器上运行,不依赖于特定的高端硬件,能够有效降低用户的硬件成本。OceanBase 数据库使用基于 LSM-Tree 的存储引擎,能够有效地对数据进行压缩,并且不影响性能,可以降低用户的存储成本。 - - -* HTAP - - OceanBase 数据库的分布式并行计算引擎对 OLTP 应用和 OLAP 应用都进行了很好的优化,并且支持跨数据库节点的 DQL 和 DML 并发执行,真正实现了一套计算引擎同时支持混合负载。 - - -* 兼容性 - - OceanBase 数据库高度兼容 MySQL 数据库生态。OceanBase 数据库支持 MySQL 5.6 版本全部语法,可以与 MySQL 业务无缝切换。 - - -* 多租户 - - OceanBase 数据库通过租户实现资源隔离,每个数据库服务的实例不感知其他实例的存在,并通过权限控制确保不同租户数据的安全性。多租户与 OceanBase 数据库强大的可扩展性相结合,能够提供安全、灵活的 DBaaS 服务。 - - - - - -许可证 ------------------------- - -OceanBase 数据库社区版完全开源,使用 [MulanPubL - 2.0](https://license.coscl.org.cn/MulanPubL-2.0/index.html) 许可证,您可以免费复制和使用源代码。当您修改或分发源代码时,请遵守木兰协议。 - diff --git a/docs/docs-cn/1.about-oceanbase-database/2.noun-interpretation.md b/docs/docs-cn/1.about-oceanbase-database/2.noun-interpretation.md deleted file mode 100644 index 4f45430a4..000000000 --- a/docs/docs-cn/1.about-oceanbase-database/2.noun-interpretation.md +++ /dev/null @@ -1,22 +0,0 @@ -名词解释 -========================= - -本文介绍您在使用 OceanBase 数据库时可能需要了解的名词解释。 - -* OceanBase 数据库 - - 蚂蚁集团完全自主研发的金融级分布式关系数据库。OceanBase 数据库具有高可用、可拓展、高兼容、低成本、强一致及高性能等特点。详细信息参考 [什么是 OceanBase 数据库](../1.about-oceanbase-database/1.what-is-oceanbase.md)。 - - -* OceanBase Database Proxy - - OceanBase 数据库代理,简称为 ODP。ODP 是 OceanBase 数据库专用的连接代理软件。ODP 的核心功能包括:保证最佳路由,避免分布式事务;保护 OceanBase 数据库的高可用能力,单台服务器故障不影响应用。详细信息,参考 ODP 文档。 - - -* OceanBase Deployer - - OceanBase 开源软件的安装部署工具,简称为 OBD。OBD 同时也是包管理器,可以用来管理 OceanBase 所有的开源软件 **。** - - - - diff --git a/docs/docs-cn/10.sql-reference/1.basic-elements/1.data-type.md b/docs/docs-cn/10.sql-reference/1.basic-elements/1.data-type.md deleted file mode 100644 index 55f013a39..000000000 --- a/docs/docs-cn/10.sql-reference/1.basic-elements/1.data-type.md +++ /dev/null @@ -1,187 +0,0 @@ -数据类型 -========================= - - - -OceanBase支持如下数据类型: - -* 数值类型 - -* 日期时间类型 - -* 字符类型 - -* 大对象类型 - - - - - - - - -数值类型 -------------- - -数值类型可以划分为三类: - -* 整数类型:`BOOL`/`BOOLEAN`、`TINYINT`、`SMALLINT`、`MEDIUMINT`、`INT`/`INTEGER`、`BIGINT`。 - - - - - - -* 定点类型:`DECIMAL`/`NUMERIC`。 - - - - - - -* 浮点类型:`FLOAT`、`DOUBLE`。 - -* Bit-Value类型:`BIT` - - - - -所有数据类型都可以同时使用`UNSIGNED`关键字声明为无符号类型,这会导致值域发生变化。 - -数值类型在定义时可以指定precision和scale,不同类型中precision和scale的含义可能有所不同,详情请见各类型详细说明。 - -整数类型 -------------- - -整数类型为定长、精确数值类型,值域取决于类型长度,以及是否为无符号,precision只表示最小显示宽度,详见"ZEROFILL属性"节。以下为相关信息: - - -| 类型 | 长度(字节) | 值域(有符号) | 值域(无符号) | -|---------------------------------------------|--------|---------------------------|--------------------| -| `BOOL`/`BOOLEAN`/ `TINYINT` | 1 | \[-2 \^ 7 , 2 \^ 7 - 1\] | \[0, 2 \^ 8 - 1\] | -| `SMALLINT` | 2 | \[-2 \^ 15, 2 \^ 15 - 1\] | \[0, 2 \^ 16 - 1\] | -| `MEDIUMINT` | 3 | \[-2 \^ 23, 2 \^ 23 - 1\] | \[0, 2 \^ 24 - 1\] | -| `INT`/`INTEGER` | 4 | \[-2 \^ 31, 2 \^ 31 - 1\] | \[0, 2 \^ 32 - 1\] | -| `BIGINT` | 8 | \[-2 \^ 63, 2 \^ 63 - 1\] | \[0, 2 \^ 64 - 1\] | - - - - - -`BOOL`等价于`BOOLEAN`,这两个类型又等价于`TINYINT(1)`。 - -`INT`等价于`INTEGER`。 - -定点类型 -------------- - -定点类型为变长、精确数值类型,值域和精度取决于precision和scale,以及是否为无符号。precision和scale分别表示十进制下的总最大有效位数、小数部分最大有效位数,整数部分最大有效位数等于precision - scale,其中precision和scale的最大值分别为65、30,默认值分别为10、0。例如: - -* `DECIMAL(5, 2)`,整数部分和小数部分最大有效位数分别为3、2,所以值域为\[-999.99, 999.99\]。 - -* 如果同时定义为`UNSIGNED`,则值域为\[0, 999.99\]。 - - - - -`DECIMAL`等价于`NUMERIC`。 - -#### 浮点类型 - -浮点类型为定长、非精确数值类型,值域和精度取决于类型长度、precision和scale,以及是否为无符号。precision和scale分别表示十进制下的总最大有效位数、小数部分最大有效位数,整数部分最大有效位数等于precision - scale,其中precision和scale的最大值分别为53、30。 - -浮点类型的精度只是IEEE标准中规定的理论值,实际情况可能因硬件或操作系统限制略有不同。 - -以下为不指定precision和scale时的默认信息: - - -| 类型 | 长度(字节) | 值域(有符号) | 值域(无符号) | 精度 | -|----------|--------|---------------------------|------------------|-----| -| `FLOAT` | 4 | \[-2 \^ 128, 2 \^ 128\] | \[0, 2 \^ 128\] | 7位 | -| `DOUBLE` | 8 | \[-2 \^ 1024, 2 \^ 1024\] | \[0, 2 \^ 1024\] | 15位 | - - - - - -如果指定precision和scale,则值域确定方法与定点类型相同。 - -#### ZEROFILL属性 - -数值类型在定义时可以通过ZEROFILL关键字指定最小显示宽度,同时将该类型隐式定义为UNSIGNED。在数据实际显示宽度不足最小显示宽度时,通过先在小数部分补零到scale上限、再在整数部分补零到precision上限的方式,将显示宽度补足到最小显示宽度。例如: - -* `INT(5) ZEROFILL`:当数据值为`123`时,将显示为`00123`。 - -* `DECIMAL(10, 5) ZEROFILL`:当数据值为`123.456`时,将显示为`00123.45600`。 - - - - - - - - -#### BIT-Value类型 - -BIT数据类型用于存储bit values。一个BIT(M)能够存储M-bit的值,M的范围是1\~64。 - -bit value通过b'value'的形式指定, **value** 是用0和1来指定的,例如,b'111'表示7,b'10000000'表示128。 - -当向BIT(M)列插入值时,如果插入值的长度小于 **M** ,则会在左侧填充0。例如:将b'101'插入到BIT(6)时,相当于插入了b'000101'。 - -日期时间类型 ---------------- - -以下为相关信息: - - -| 类型 | 格式 | 下界 | 上界 | 含义 | -|-------------|----------------------------------|----------------------------|----------------------------|-------------| -| `DATETIME` | YYYY-MM-DD HH:MM:SS\[.fraction\] | 0000-01-01 00:00:00.000000 | 9999-12-31 23:59:59.999999 | 日期时间(不考虑时区) | -| `TIMESTAMP` | YYYY-MM-DD HH:MM:SS\[.fraction\] | 0000-01-01 00:00:00.000000 | 9999-12-31 23:59:59.999999 | 日期时间(考虑时区) | -| `DATE` | YYYY-MM-DD | 0000-01-01 | 9999-12-31 | 日期 | -| `TIME` | HH:MM:SS\[.fraction\] | -838:59:59.000000 | 838:59:59.000000 | 时间 | -| `YEAR` | YYYY | 1901 | 2155 | 年份 | - - - - - -`DATETIME`、`TIMESTAMP`、`TIME`的值域和精度取决于scale。该属性表示小数部分最大有效位数,最大值为6,默认值为0。 - -字符类型 -------------- - -以下为普通字符类型相关信息: - - -| 类型 | 长度 | 定义长度上限(字符) | 字符集 | -|-------------|----|-----------------------------|-----------| -| `VARCHAR` | 变长 | 262144 / 256K | `UTF8MB4` | -| `VARBINARY` | 变长 | 1048576 / 1M | `BINARY` | -| `CHAR` | 定长 | 256 | `UTF8MB4` | -| `BINARY` | 定长 | 256 | `BINARY` | -| `enum` | 变长 | 最多定义65535个元素,每个元素长度最多255个字符 | `UTF8MB4` | -| `set` | 变长 | 最多定义64个元素,每个元素长度最多255个字符 | `UTF8MB4` | - - - -大对象类型 --------------- - -以下为大对象类型相关信息: - - -| 类型 | 长度 | 存储长度上限(字节) | 字符集 | -|--------------|----|----------------|-----------| -| `TINYTEXT` | 变长 | 256 | `UTF8MB4` | -| `TINYBLOB` | 变长 | 256 | `BINARY` | -| `TEXT` | 变长 | 65536 / 64K | `UTF8MB4` | -| `BLOB` | 变长 | 65536 / 64K | `BINARY` | -| `MEDIUMTEXT` | 变长 | 16777216 / 16M | `UTF8MB4` | -| `MEDIUMBLOB` | 变长 | 16777216 / 16M | `BINARY` | -| `LONGTEXT` | 变长 | 50331648 / 48M | `UTF8MB4` | -| `LONGBLOB` | 变长 | 50331648 / 48M | `BINARY` | - - - diff --git a/docs/docs-cn/10.sql-reference/1.basic-elements/2.expression.md b/docs/docs-cn/10.sql-reference/1.basic-elements/2.expression.md deleted file mode 100644 index e2b0180af..000000000 --- a/docs/docs-cn/10.sql-reference/1.basic-elements/2.expression.md +++ /dev/null @@ -1,80 +0,0 @@ -表达式 -======================== - - - -表达式是广义概念,通常有若干个输入参数,并且返回一个输出结果。其中输入参数可能来自于常量或单行数据,也可能来自于多行数据。表达式可以组合,一个表达式的输入可以为另一个表达式的输出。 - -根据表达式的来源和形式,可分为如下几类: - -* 列引用 - - - - - - - - -* 常量 - - - - - - - - -* 运算符 - - - - - - - - -* 函数 - - - - - - -例如: - -```javascript -SELECT ABS(a + 1) - FROM t1 - WHERE a > 0; -``` - - - - - -* a为列引用。 - - - - - - -* 0、1为常量。 - - - - - - -* `>`、`+`为运算符,以0、1、a表达式为输入。 - - - - - - -* `ABS`为函数,以`+`表达式为输入。 - - - diff --git a/docs/docs-cn/10.sql-reference/1.basic-elements/3.type-conversion.md b/docs/docs-cn/10.sql-reference/1.basic-elements/3.type-conversion.md deleted file mode 100644 index c8a326a5d..000000000 --- a/docs/docs-cn/10.sql-reference/1.basic-elements/3.type-conversion.md +++ /dev/null @@ -1,10 +0,0 @@ -类型转换 -========================= - - - -OceanBase支持显式类型转换和隐式类型转换。 - -显示类型转换通过`CAST`函数实现。 - -隐式类型转换发生在这样的场景中:一个操作需要一个指定类型的参数,但语句的实际参数值并不是指定类型,这时OceanBase会将实际参数值转为指定类型后,再进行后续操作。 diff --git a/docs/docs-cn/10.sql-reference/1.basic-elements/4.character-set.md b/docs/docs-cn/10.sql-reference/1.basic-elements/4.character-set.md deleted file mode 100644 index a5e91169a..000000000 --- a/docs/docs-cn/10.sql-reference/1.basic-elements/4.character-set.md +++ /dev/null @@ -1,20 +0,0 @@ -字符集 -======================== - - - -目前只支持如下字符集: - -* `UTF8MB4`:变长编码,字符最大长度4字节。 - - - - - - -* `BINARY`:定长编码,字符固定长度1字节。 - - - - -`UT8`/`UTF8MB3`是`UTF8MB4`的子集,变长编码,字符最大长度3字节。为支持无缝迁移,OceanBase在语法上将`UTF8`视为`UTF8MB4`的同义词。 diff --git a/docs/docs-cn/10.sql-reference/1.basic-elements/5.collation.md b/docs/docs-cn/10.sql-reference/1.basic-elements/5.collation.md deleted file mode 100644 index bc7af6991..000000000 --- a/docs/docs-cn/10.sql-reference/1.basic-elements/5.collation.md +++ /dev/null @@ -1,25 +0,0 @@ -排序规则 -========================= - - - -目前只支持如下排序规则: - -* `UTF8MB4`的`UTF8MB4_GENERAL_CI`。 - - - - - - -* `UTF8MB4`的`UTF8MB4_BIN`。 - - - - - - -* `BINARY`的`BINARY`。 - - - diff --git a/docs/docs-cn/10.sql-reference/1.basic-elements/6.data-comparison-rules.md b/docs/docs-cn/10.sql-reference/1.basic-elements/6.data-comparison-rules.md deleted file mode 100644 index a7808b255..000000000 --- a/docs/docs-cn/10.sql-reference/1.basic-elements/6.data-comparison-rules.md +++ /dev/null @@ -1,29 +0,0 @@ -数据比较规则 -=========================== - - - -OceanBase允许任意两或多个任意类型的数据进行比较,比较结果可能为: - -* 非0 / TRUE - - - - - - -* 0 / FALSE。 - - - - - - -* NULL。 - - - - -如果参与比较的数据类型不一致,OceanBase会根据相关规则确定一个用于比较的数据类型,逻辑上所有参与比较的数据都需要先转换为该数据类型才能参与比较操作。 - -如果比较类型为文本类型,则还需要确定一个用于比较的排序规则。 diff --git a/docs/docs-cn/10.sql-reference/1.basic-elements/7.literal.md b/docs/docs-cn/10.sql-reference/1.basic-elements/7.literal.md deleted file mode 100644 index 4236fb9ab..000000000 --- a/docs/docs-cn/10.sql-reference/1.basic-elements/7.literal.md +++ /dev/null @@ -1,64 +0,0 @@ -字面量 -======================== - - - -文本 ------------ - -文本是使用单引号`'`或双引号`"`引起来的字符序列,如果打开`ANSI_QUOTES`模式,那只有单引号`'`可以用于引用字符串。 - -数值 ------------ - -十进制数值可以分为精确数值(整数和定点数值)和浮点数值。数值可以使用小数点`.`作为十进制分隔符,也可以在前面加一个负号`-`来表示负值。 - -十六进制数值只支持整数数值,以前缀`0X`开始,允许出现字母`A`到`F`,所有字母不区分大小写。 - -日期时间 -------------- - -日期时间字面量有文本或数值两种形式。 - -* 文本格式可使用全量分隔符:`'2015-07-21 12:34:56.789'`,或完全不使用分隔符:`'20150721'`。 - - - - - - -* 数值格式只允许使用小数点`.`作为秒和微秒部分的分隔符:`20150721123456.789`。 - -* 在需要使用分隔符时,除了秒和微秒部分之间只能使用小数点`.`外,其它分隔符建议只使用`-`、`/`、`:`等常用分隔符。 - - - - - - - - -转义字符 -------------- - -转义字符是在字符串中,某些序列前添加反斜线`\`,用于表示特殊含义。转义字符对大小写敏感。例如`\b`表示退格,但`\B`表示`B`。 - -以下为所有转义符列表: - - -| 转义符 | 含义 | -|------|---------------------| -| `\b` | 退格符。 | -| `\f` | 换页符。 | -| `\n` | 换行符。 | -| `\r` | 回车符。 | -| `\t` | tab字符。 | -| `\\` | 反斜线字符。 | -| `\'` | 单引号。 | -| `\"` | 双引号。 | -| `\_` | 下划线。 | -| `\%` | 百分号。 | -| `\0` | NULL。 | -| `\Z` | ASCII 26,控制符Ctrl+Z。 | - - diff --git a/docs/docs-cn/10.sql-reference/1.basic-elements/8.annotation.md b/docs/docs-cn/10.sql-reference/1.basic-elements/8.annotation.md deleted file mode 100644 index 7f595a222..000000000 --- a/docs/docs-cn/10.sql-reference/1.basic-elements/8.annotation.md +++ /dev/null @@ -1,42 +0,0 @@ -注释 -======================= - - - -SQL 语句 ---------------- - -在普通 SQL 语句中,OceanBase 数据库支持如下 3 种注释方法: - -* 从 `#` 到行尾 - - - - - - - - -* 从 `--` 到行尾 - - - -* 从 `/*` 到 `*/` - - - - - - - - -数据库对象 --------------- - -在 DDL 语句中通过 `COMMENT` 子句可以为数据库对象指定注释。例如: - -```unknow -create table t(pk INT PRIMARY KEY COMMENT '主键'); -``` - - diff --git a/docs/docs-cn/10.sql-reference/2.operator/1.arithmetic-operators.md b/docs/docs-cn/10.sql-reference/2.operator/1.arithmetic-operators.md deleted file mode 100644 index d5ff70987..000000000 --- a/docs/docs-cn/10.sql-reference/2.operator/1.arithmetic-operators.md +++ /dev/null @@ -1,54 +0,0 @@ -算术运算符 -========================== - - - -以下为所有算术运算符列表: - - -| 运算符 | 操作数 | 含义 | -|-----------|-------|----------------| -| `+` | 一元/二元 | 一元表示正数,二元表示加法。 | -| `-` | 一元/二元 | 一元表示负数,二元表示减法。 | -| `*` | 二元 | 乘法。 | -| `/` | 二元 | 普通除法。 | -| `DIV` | 二元 | 整数除法,返回商数。 | -| `MOD`或`%` | 二元 | 整数除法,返回余数。 | - - - -整数除法遵循如下原则: - -* 商数不论正负,统一向0取整。 - - - - - - -* 余数正负与被除数相同。 - - - - -例如: - -```javascript -OceanBase (root@oceanbase)> SELECT (-7) DIV (3.6), (-7) MOD (3.6); -+----------------+----------------+ -| (-7) DIV (3.6) | (-7) MOD (3.6) | -+----------------+----------------+ -| -1 | -3.4 | -+----------------+----------------+ -1 row in set (0.01 sec) - -OceanBase (root@oceanbase)> SELECT (-7) DIV (-3.4), (-7) % (-3.4); -+-----------------+---------------+ -| (-7) DIV (-3.4) | (-7) % (-3.4) | -+-----------------+---------------+ -| 2 | -0.2 | -+-----------------+---------------+ -1 row in set (0.02 sec) -``` - - diff --git a/docs/docs-cn/10.sql-reference/2.operator/2.bitwise-operators.md b/docs/docs-cn/10.sql-reference/2.operator/2.bitwise-operators.md deleted file mode 100644 index 39956131e..000000000 --- a/docs/docs-cn/10.sql-reference/2.operator/2.bitwise-operators.md +++ /dev/null @@ -1,20 +0,0 @@ -位运算符 -========================= - - - -位运算使用`BIGINT UNSIGNED`计算,不需考虑符号位。 - -以下为所有位运算符列表: - - -| 运算符 | 操作数 | 含义 | -|------------|-----|-------| -| `&` | 二元 | 按位与。 | -| `|` | 二元 | 按位或。 | -| `~` | 一元 | 按位取反。 | -| `^` | 二元 | 按位异或。 | -| `<<` | 二元 | 逻辑左移。 | -| `>>` | 二元 | 逻辑右移。 | - - diff --git a/docs/docs-cn/10.sql-reference/2.operator/3.comparison-operators.md b/docs/docs-cn/10.sql-reference/2.operator/3.comparison-operators.md deleted file mode 100644 index 3f68d05ef..000000000 --- a/docs/docs-cn/10.sql-reference/2.operator/3.comparison-operators.md +++ /dev/null @@ -1,78 +0,0 @@ -比较运算符 -========================== - - - -以下为所有比较运算符列表: - - -| 运算符 | 操作数 | 含义 | NULL参与运算 | -|---------------------|-----|------------|----------------| -| `=` | 二元 | 等于。 | 结果为NULL。 | -| `<>`/`!=` | 二元 | 不等于。 | 结果为NULL。 | -| `>` | 二元 | 大于。 | 结果为NULL。 | -| `>=` | 二元 | 大于等于。 | 结果为NULL。 | -| `<` | 二元 | 小于。 | 结果为NULL。 | -| `<=` | 二元 | 小于等于。 | 结果为NULL。 | -| `[NOT] IN` | 二元 | 是否在集合中。 | 详见说明。 | -| `[NOT] BETWEEN AND` | 三元 | 是否在区间内。 | 详见说明。 | -| `IS [NOT] TRUE` | 一元 | 是否等于TRUE。 | 结果为TRUE或FALSE。 | -| `IS [NOT] FALSE` | 一元 | 是否等于FALSE。 | 结果为TRUE或FALSE。 | -| `IS [NOT] NULL` | 一元 | 是否等于NULL。 | 结果为TRUE或FALSE。 | -| `<=>` | 二元 | 安全等于。 | 结果为TRUE或FALSE。 | - - - - - -以下为部分运算符对NULL的特殊处理: - -* `value [NOT] IN ()`: - - - - - - - - - - - - - - -* `value [NOT] BETWEEN lower AND upper`: - - - - - - - - - - - - -例如: - -```javascript -OceanBase (root@oceanbase)> SELECT 1 IN (1, NULL), 1 IN (2, NULL); -+----------------+----------------+ -| 1 IN (1, NULL) | 1 IN (2, NULL) | -+----------------+----------------+ -| 1 | NULL | -+----------------+----------------+ -1 row in set (0.01 sec) - -OceanBase (root@oceanbase)> SELECT 1 BETWEEN 0 AND NULL, 1 BETWEEN 2 AND NULL; -+----------------------+----------------------+ -| 1 BETWEEN 0 AND NULL | 1 BETWEEN 2 AND NULL | -+----------------------+----------------------+ -| NULL | 0 | -+----------------------+----------------------+ -1 row in set (0.01 sec) -``` - - diff --git a/docs/docs-cn/10.sql-reference/2.operator/4.logical-operators.md b/docs/docs-cn/10.sql-reference/2.operator/4.logical-operators.md deleted file mode 100644 index 590ac27de..000000000 --- a/docs/docs-cn/10.sql-reference/2.operator/4.logical-operators.md +++ /dev/null @@ -1,15 +0,0 @@ -逻辑运算符 -========================== - - - -以下为所有逻辑运算符列表: - - -| 运算符 | 操作数 | 含义 | -|--------------------|-----|-----| -| `AND`/`&&` | 二元 | 逻辑与 | -| `OR`/`||` | 二元 | 逻辑或 | -| `NOT`/`!` | 一元 | 逻辑非 | - - diff --git a/docs/docs-cn/10.sql-reference/2.operator/5.date-and-time-operators.md b/docs/docs-cn/10.sql-reference/2.operator/5.date-and-time-operators.md deleted file mode 100644 index 87144684d..000000000 --- a/docs/docs-cn/10.sql-reference/2.operator/5.date-and-time-operators.md +++ /dev/null @@ -1,28 +0,0 @@ -日期时间运算符 -============================ - - - -以下为所有日期时间运算符列表: - - -| 运算符 | 操作数 | 含义 | -|-----|-----|---------------| -| `+` | 二元 | 同`DATE_ADD`函数 | -| `-` | 二元 | 同`DATE_SUB`函数 | - - - -例如: - -```javascript -OceanBase (root@oceanbase)> SELECT '2008-12-31 23:59:59' + INTERVAL 1 SECOND; -+-------------------------------------------+ -| '2008-12-31 23:59:59' + INTERVAL 1 SECOND | -+-------------------------------------------+ -| 2009-01-01 00:00:00 | -+-------------------------------------------+ -1 row in set (0.01 sec) -``` - - diff --git a/docs/docs-cn/10.sql-reference/2.operator/6.character-concatenation-operators.md b/docs/docs-cn/10.sql-reference/2.operator/6.character-concatenation-operators.md deleted file mode 100644 index ca1fb39e9..000000000 --- a/docs/docs-cn/10.sql-reference/2.operator/6.character-concatenation-operators.md +++ /dev/null @@ -1,27 +0,0 @@ -字符连接运算符 -============================ - - - -以下为所有字符连接运算符列表: - - -| 运算符 | 操作数 | 含义 | -|------|-----|-------| -| `||` | 二元 | 字符串连接 | - - - -如前节所述,`||`也可作为逻辑或运算符,两个不同含义是通过SQL MODE控制的: - -* SQL MODE包含`PIPES_AS_CONCAT`时,`||`为字符连接运算符。 - - - - - - -* SQL MODE不包含`PIPES_AS_CONCAT`时,`||`为逻辑与运算符。 - - - diff --git a/docs/docs-cn/10.sql-reference/2.operator/7.hierarchical-query-operators.md b/docs/docs-cn/10.sql-reference/2.operator/7.hierarchical-query-operators.md deleted file mode 100644 index ae3518688..000000000 --- a/docs/docs-cn/10.sql-reference/2.operator/7.hierarchical-query-operators.md +++ /dev/null @@ -1,14 +0,0 @@ -层次查询运算符 -============================ - - - -以下为所有层次查询运算符列表: - - -| 运算符 | 操作数 | 含义 | -|-------------------|-----|------------------------| -| `PRIOR` | 一元 | 用于指明column来自parent row | -| `CONNECT_BY_ROOT` | 一元 | 用于指明顶层祖先 | - - diff --git a/docs/docs-cn/10.sql-reference/2.operator/8.collation-operators.md b/docs/docs-cn/10.sql-reference/2.operator/8.collation-operators.md deleted file mode 100644 index e98d1dc92..000000000 --- a/docs/docs-cn/10.sql-reference/2.operator/8.collation-operators.md +++ /dev/null @@ -1,23 +0,0 @@ -排序规则运算符 -============================ - - - -以下为所有排序规则运算符列表: - - -| 运算符 | 操作数 | 含义 | -|-----------|--------|------| -| `COLLATE` | 一元(后缀) | 排序规则 | - - - -例如: - -```javascript -SELECT last_name - FROM employees - ORDER BY last_name COLLATE UTF8MB4_GENERAL_CI; -``` - - diff --git a/docs/docs-cn/10.sql-reference/3.functions/1.single-row-functions.md b/docs/docs-cn/10.sql-reference/3.functions/1.single-row-functions.md deleted file mode 100644 index 665054c25..000000000 --- a/docs/docs-cn/10.sql-reference/3.functions/1.single-row-functions.md +++ /dev/null @@ -1,3037 +0,0 @@ -函数 -======================= - - - -日期时间函数 ---------------- - -日期时间函数主要用来显示有关日期和时间的信息。 - -#### CURDATE - -**声明** - -```javascript -CURDATE() -``` - - - -**说明** - -返回当前日期,不含时间部分。 - -**例子** - -```javascript -obclient> SELECT CURDATE(); -+------------+ -| CURDATE() | -+------------+ -| 2018-05-05 | -+------------+ -1 row in set (0.00 sec) -``` - - - - - -#### CURRENT_DATE - -**声明** - -```javascript -CURRENT_DATE() -CURRENT_DATE -``` - - - -**说明** - -同 `CURDATE()`。 - - - -#### CURRENT_TIME - -**声明** - -```javascript -CURRENT_TIME([scale]) -``` - - - -**说明** - -返回当前时间,不含日期部分。 - -`scale` 有效值为 0 到 6,表示微秒部分精度,默认值为 0。 - -**例子** - -```javascript -obclient> SELECT CURRENT_TIME(6); -+-----------------+ -| CURRENT_TIME(6) | -+-----------------+ -| 11:11:45.215311 | -+-----------------+ -1 row in set (0.01 sec) -``` - - - - - -#### CURRENT_TIMESTAMP - -**声明** - -```javascript -CURRENT_TIMESTAMP([scale]) -``` - - - -**说明** - -返回当前日期时间,考虑时区设置。 - -`scale` 有效值为 0 到 6,表示微秒部分精度,默认值为 0。 - -**例子** - -```javascript -obclient> SELECT CURRENT_TIMESTAMP(6); -+----------------------------+ -| CURRENT_TIMESTAMP(6) | -+----------------------------+ -| 2018-05-05 11:35:39.177764 | -+----------------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### CURTIME - -**声明** - -```javascript -CURTIME() -``` - - - -**说明** - -同 `CURRENT_TIME()`。 - - - -#### DATE_ADD - -**声明** - -```javascript -DATE_ADD(date, INTERVAL expr unit) -``` - - - -**说明** - -日期时间的算术计算。 - -* `date` 表示日期时间基准,日期部分必选,时间部分可选。 - - - - - - - - -* `expr` 表示时间间隔,可以为负值。 - - - - - - - - -* `unit` 表示时间间隔单位。 - - - - - - -以下为所有时间间隔单位列表: - - -| 单位 | 类型 | 含义 | 格式 | -|----------------------|----|-------|----------------------------------------| -| `MICROSECOND` | 独立 | 微秒 | `MICROSECONDS` | -| `SECOND` | 独立 | 秒 | `SECONDS` | -| `MINUTE` | 独立 | 分钟 | `MINUTES` | -| `HOUR` | 独立 | 小时 | `HOURS` | -| `DAY` | 独立 | 天 | `DAYS` | -| `WEEK` | 独立 | 周 | `WEEKS` | -| `MONTH` | 独立 | 月 | `MONTHS` | -| `QUARTER` | 独立 | 季度 | `QUARTERS` | -| `YEAR` | 独立 | 年 | `YEARS` | -| `SECOND_MICROSECOND` | 组合 | 秒到微秒 | `'SECONDS.MICROSECONDS'` | -| `MINUTE_MICROSECOND` | 组合 | 分钟到微秒 | `'MINUTES:SECONDS.MICROSECONDS'` | -| `MINUTE_SECOND` | 组合 | 分钟到秒 | `'MINUTES:SECONDS'` | -| `HOUR_MICROSECOND` | 组合 | 小时到微秒 | `'HOURS:MINUTES:SECONDS.MICROSECONDS'` | -| `HOUR_SECOND` | 组合 | 小时到秒 | `'HOURS:MINUTES:SECONDS'` | -| `HOUR_MINUTE` | 组合 | 小时到分钟 | `'HOURS:MINUTES'` | -| `DAY_SECOND` | 组合 | 天到秒 | `'DAYS HOURS:MINUTES:SECONDS'` | -| `DAY_MINUTE` | 组合 | 天到分钟 | `'DDAYSD HOURS:MINUTES'` | -| `DAY_HOUR` | 组合 | 天到小时 | `'DAYS HOURS'` | -| `YEAR_MONTH` | 组合 | 年到月 | `'YEARS-MONTHS'` | - - - -**例子** - -```javascript -obclient> SELECT - -> DATE_ADD(NOW(), INTERVAL 5 DAY), - -> DATE_ADD('2014-01-10', INTERVAL 5 MICROSECOND), - -> DATE_ADD('2014-01-10', INTERVAL 5 SECOND), - -> DATE_ADD('2014-01-10', INTERVAL 5 MINUTE), - -> DATE_ADD('2014-01-10', INTERVAL 5 HOUR), - -> DATE_ADD('2014-01-10', INTERVAL 5 DAY), - -> DATE_ADD('2014-01-10', INTERVAL 5 WEEK), - -> DATE_ADD('2014-01-10', INTERVAL 5 MONTH), - -> DATE_ADD('2014-01-10', INTERVAL 5 QUARTER), - -> DATE_ADD('2014-01-10', INTERVAL 5 YEAR), - -> DATE_ADD('2014-01-10', INTERVAL '5.000005' SECOND_MICROSECOND), - -> DATE_ADD('2014-01-10', INTERVAL '05:05.000005' MINUTE_MICROSECOND), - -> DATE_ADD('2014-01-10', INTERVAL '05:05' MINUTE_SECOND), - -> DATE_ADD('2014-01-10', INTERVAL '05:05:05.000005' HOUR_MICROSECOND), - -> DATE_ADD('2014-01-10', INTERVAL '05:05:05' HOUR_SECOND), - -> DATE_ADD('2014-01-10', INTERVAL '05:05' HOUR_MINUTE), - -> DATE_ADD('2014-01-10', INTERVAL '01 05:05:05.000005' DAY_MICROSECOND), - -> DATE_ADD('2014-01-10', INTERVAL '01 05:05:05' DAY_SECOND), - -> DATE_ADD('2014-01-10', INTERVAL '01 05:05' DAY_MINUTE), - -> DATE_ADD('2014-01-10', INTERVAL '01 05' DAY_HOUR), - -> DATE_ADD('2014-01-10', INTERVAL '1-01' YEAR_MONTH) - -> \G -*************************** 1. row *************************** - DATE_ADD(NOW(), INTERVAL 5 DAY): 2018-05-10 14:54:52 - DATE_ADD('2014-01-10', INTERVAL 5 MICROSECOND): 2014-01-10 00:00:00.000005 - DATE_ADD('2014-01-10', INTERVAL 5 SECOND): 2014-01-10 00:00:05 - DATE_ADD('2014-01-10', INTERVAL 5 MINUTE): 2014-01-10 00:05:00 - DATE_ADD('2014-01-10', INTERVAL 5 HOUR): 2014-01-10 05:00:00 - DATE_ADD('2014-01-10', INTERVAL 5 DAY): 2014-01-15 - DATE_ADD('2014-01-10', INTERVAL 5 WEEK): 2014-02-14 - DATE_ADD('2014-01-10', INTERVAL 5 MONTH): 2014-06-10 - DATE_ADD('2014-01-10', INTERVAL 5 QUARTER): 2015-04-10 - DATE_ADD('2014-01-10', INTERVAL 5 YEAR): 2019-01-10 - DATE_ADD('2014-01-10', INTERVAL '5.000005' SECOND_MICROSECOND): 2014-01-10 00:00:05.000005 - DATE_ADD('2014-01-10', INTERVAL '05:05.000005' MINUTE_MICROSECOND): 2014-01-10 00:05:05.000005 - DATE_ADD('2014-01-10', INTERVAL '05:05' MINUTE_SECOND): 2014-01-10 00:05:05 - DATE_ADD('2014-01-10', INTERVAL '05:05:05.000005' HOUR_MICROSECOND): 2014-01-10 05:05:05.000005 - DATE_ADD('2014-01-10', INTERVAL '05:05:05' HOUR_SECOND): 2014-01-10 05:05:05 - DATE_ADD('2014-01-10', INTERVAL '05:05' HOUR_MINUTE): 2014-01-10 05:05:00 -DATE_ADD('2014-01-10', INTERVAL '01 05:05:05.000005' DAY_MICROSECOND): 2014-01-11 05:05:05.000005 - DATE_ADD('2014-01-10', INTERVAL '01 05:05:05' DAY_SECOND): 2014-01-11 05:05:05 - DATE_ADD('2014-01-10', INTERVAL '01 05:05' DAY_MINUTE): 2014-01-11 05:05:00 - DATE_ADD('2014-01-10', INTERVAL '01 05' DAY_HOUR): 2014-01-11 05:00:00 - DATE_ADD('2014-01-10', INTERVAL '1-01' YEAR_MONTH): 2015-02-10 -1 row in set (0.01 sec) -``` - - - - - -#### DATE_FORMAT - -**声明** - -```javascript -DATE_FORMAT(date, format) -``` - - - -**说明** - -将日期时间以指定格式输出。 - -* `date` 表示日期时间。 - - - - - - - - -* `format` 表示输出格式。 - - - - - - - - -以下为所有输出格式列表: - - -| 格式符 | 含义 | 格式 | -|------|------------------------------|------------------------| -| `%a` | 星期的英文缩写。 | `Sun..Sat` | -| `%b` | 月份的英文缩写。 | `Jan..Dec` | -| `%c` | 月份的数字形式。 | `1..12` | -| `%D` | 日的英文缩写。 | `1st..31st` | -| `%d` | 日的数字形式。 | `01..31` | -| `%e` | 日的数字形式。 | `1.. 31` | -| `%f` | 微秒。 | `000000..999999` | -| `%H` | 小时。 | `00..23` | -| `%h` | 小时。 | `01..12` | -| `%I` | 小时。 | `01..12` | -| `%i` | 分钟。 | `00..59` | -| `%j` | 一年中的第几天。 | `001..366` | -| `%k` | 小时。 | `0..23` | -| `%l` | 小时。 | `0..12` | -| `%M` | 月份的英文名称。 | `January..December` | -| `%m` | 月份的数字形式。 | `01..12` | -| `%p` | 上午或下午。 | `AM/PM` | -| `%r` | 12小时制时间。 | `hh:mm:ss AM/PM` | -| `%S` | 秒。 | `00..59` | -| `%s` | 秒。 | `00..59` | -| `%T` | 24小时制时间。 | `hh:mm:ss` | -| `%U` | 一年中的第几周,周日为每周第一天。 | `00..53` | -| `%u` | 一年中的第几周,周一为每周第一天。 | `00..53` | -| `%V` | 一年中的第几周,周日为每周第一天(和`%X`同时使用)。 | `01..53` | -| `%v` | 一年中的第几周,周一为每周第一天(和`%x`同时使用)。 | `01..53` | -| `%W` | 星期的英文名称。 | `Sunday..Saturday` | -| `%w` | 一周中的第几天。 | `0=Sunday..6=Saturday` | -| `%X` | 一周所属的年份,周日为每周第一天(和`%V`同时使用)。 | | -| `%x` | 一周所属的年份,周一为每周第一天(和`%v`同时使用)。 | | -| `%Y` | 四位年份。 | | -| `%y` | 两位年份。 | | -| `%%` | 文字字符,输出一个`%`。 | | - - - -**例子** - -```javascript -obclient> SELECT - -> DATE_FORMAT('2014-01-01', '%Y-%M-%d'), - -> DATE_FORMAT('2014-01-01', '%X-%V'), - -> DATE_FORMAT('2014-01-01', '%U') - -> \G -*************************** 1. row *************************** -DATE_FORMAT('2014-01-01', '%Y-%M-%d'): 2014-January-01 - DATE_FORMAT('2014-01-01', '%X-%V'): 2013-52 - DATE_FORMAT('2014-01-01', '%U'): 00 -1 row in set (0.01 sec) -``` - - - - - -#### DATE_SUB - -**声明** - -```javascript -DATE_SUB(date, INTERVAL expr unit) -``` - - - -**说明** - -日期时间的算术计算。 - -请参考 `DATE_ADD()`。 - - - -#### DATEDIFF - -**声明** - -```javascript -DATEDIFF(date1, date2) -``` - - - -**说明** - -返回 `date1` 和 `date2` 之间的天数。 - -计算中只用到参数的日期部分,忽略时间部分。 - -**例子** - -```javascript -obclient> SELECT DATEDIFF('2015-06-19','1994-12-17'); -+-------------------------------------+ -| DATEDIFF('2015-06-19','1994-12-17') | -+-------------------------------------+ -| 7489 | -+-------------------------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### EXTRACT - -**声明** - -```javascript -EXTRACT(unit FROM date) -``` - - - -**说明** - -以整数类型返回 `date` 的指定部分值。如果指定多个部分,则将所有值按顺序拼接。 - -`unit` 请参考 `DATE_ADD()`。当 `unit` 为 `WEEK` 时,请参考 `DATE_FORMAT()` 的 `%U` 说明。 - -**例子** - -```javascript -SELECT EXTRACT(WEEK FROM '2013-01-01'), -EXTRACT(WEEK FROM '2013-01-06'), -EXTRACT(YEAR_MONTH FROM '2012-03-09'), -EXTRACT(DAY FROM NOW())\G; -* 1. row * -EXTRACT(WEEK FROM '2013-01-01'): 0 -EXTRACT(WEEK FROM '2013-01-06'): 1 -EXTRACT(YEAR_MONTH FROM '2012-03-09'): 201203 -EXTRACT(DAY FROM NOW()): 18 -1 row in set (0.00 sec) -``` - - - - - -#### FROM_DAYS - -**声明** - -```javascript -FROM_DAYS(N) -``` - - - -**说明** - -返回指定天数 `N` 对应的 `DATE` 值。天数指距离 `0000-01-01` 的天数。 - -**例子** - -```javascript -obclient> SELECT FROM_DAYS(736271), FROM_DAYS(700000); -+-------------------+-------------------+ -| FROM_DAYS(736271) | FROM_DAYS(700000) | -+-------------------+-------------------+ -| 2015-11-04 | 1916-07-15 | -+-------------------+-------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### FROM_UNIXTIME - -**声明** - -```javascript -FROM_UNIXTIME(unix_timestamp) -FROM_UNIXTIME(unix_timestamp, format) -``` - - - -**说明** - -* 不指定 `format` 参数时,返回 `DATETIME` 类型值,不考虑时区。 - - - - - - - - -* 指定 `format` 参数时,返回指定格式的日期时间字符串。 - - - - - - -`unix_timestamp` 指 UNIX 时间戳,即距离 `1970-01-01 00:00:00.000000` 的微秒数。 - -`format` 支持的格式已在 `DATE_FORMAT()` **说** **明** 中列出。 - -**例子** - -```javascript -obclient> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x'); -+---------------------------------------------------------+ -| FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x') | -+---------------------------------------------------------+ -| 2018 5th May 08:41:26 2018 | -+---------------------------------------------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### MONTH - -**声明** - -```javascript -MONTH(date) -``` - - - -**说明** - -返回 `date` 的月份信息。 - -**例子** - -```javascript -obclient> SELECT MONTH('2008-02-03'); -+---------------------+ -| MONTH('2008-02-03') | -+---------------------+ -| 2 | -+---------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### NOW - -**声明** - -```javascript -NOW([scale]) -``` - - - -**说明** - -同 `CURRENT_TIMESTAMP()`。 - - - -#### PERIOD_DIFF - -**声明** - -```javascript -PERIOD_DIFF(p1, p2) -``` - - - -**说明** - -以月份位单位返回两个日期之间的间隔。日期只能包含年月信息,格式只能为 `YYYYMM` 或 `YYMM`。 - -**例子** - -```javascript -obclient> SELECT PERIOD_DIFF(200802, 200703); -+----------------------------+ -| PERIOD_DIFF(200802,200703) | -+----------------------------+ -| 11 | -+----------------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### STR_TO_DATE - -**声明** - -```javascript -STR_TO_DATE(str, format) -``` - - - -**说明** - -使用 `format` 将 `str` 转换为 `DATETIME` 值、`DATE` 值、或 `TIME` 值。返回值类型取决于 `format` 包含日期时间的哪些部分。 - -`format` 支持的格式已在 `DATE_FORMAT()` **说** **明** 中列出。 - -**例子** - -```javascript -obclient> SELECT STR_TO_DATE('2014-Jan-1st 5:5:5 pm', '%Y-%b-%D %r'); -+-----------------------------------------------------+ -| STR_TO_DATE('2014-Jan-1st 5:5:5 pm', '%Y-%b-%D %r') | -+-----------------------------------------------------+ -| 2014-01-01 05:05:05 | -+-----------------------------------------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### TIME - -**声明** - -```javascript -TIME(datetime -``` - - - -**说明** - -以 `TIME` 类型返回 `datetime` 的时间信息。 - -**例子** - -```javascript -obclient> SELECT TIME('2003-12-31 01:02:03'); -+-----------------------------+ -| TIME('2003-12-31 01:02:03') | -+-----------------------------+ -| 01:02:03.000000 | -+-----------------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### TIME_TO_USEC - -**声明** - -```javascript -TIME_TO_USEC(date) -``` - - - -**说明** - -将 `date` 值转换为距离 `1970-01-01 00:00:00.000000` 的微秒数,考虑时区信息。 - -`date` 可以表示日期,也可以表示日期时间。 - -**例子** - -```javascript -obclient> SELECT TIME_TO_USEC('2014-03-25'), TIME_TO_USEC(NOW()); -+----------------------------+---------------------+ -| TIME_TO_USEC('2014-03-25') | TIME_TO_USEC(NOW()) | -+----------------------------+---------------------+ -| 1395676800000000 | 1525528100000000 | -+----------------------------+---------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### TIMEDIFF - -**声明** - -```javascript -TIMEDIFF(date1, date2) -``` - - - -**说明** - -以 `TIME` 类型返回两个日期时间的时间间隔。 - -**例子** - -```javascript -obclient> SELECT - -> TIMEDIFF('2015-06-06 12:12:12', '2014-06-05 11:11:11'), - -> TIMEDIFF('2015-06-06 12:12:12', '2015-06-05 11:11:11') - -> \G -*************************** 1. row *************************** -TIMEDIFF('2015-06-06 12:12:12', '2014-06-05 11:11:11'): 838:59:59 -TIMEDIFF('2015-06-06 12:12:12', '2015-06-05 11:11:11'): 25:01:01 -1 row in set (0.00 sec) -``` - - - - - -#### TIMESTAMPDIFF - -**声明** - -```javascript -TIMESTAMPDIFF(unit, date1, date2) -``` - - - -**说明** - -以 `unit` 为单位返回两个日期时间的间隔。`unit` 只能为 `DATE_ADD()` 中的独立单位。 - -**例子** - -```javascript -obclient> SELECT - -> TIMESTAMPDIFF(SECOND, NOW(), '2011-01-01 11:11:11'), - -> TIMESTAMPDIFF(DAY, '2011-01-01 11:11:11', NOW()) - -> \G -*************************** 1. row *************************** -TIMESTAMPDIFF(SECOND, NOW(), '2011-01-01 11:11:11'): -231677498 - TIMESTAMPDIFF(DAY, '2011-01-01 11:11:11', NOW()): 2681 -1 row in set (0.00 sec) -``` - - - - - -#### TIMESTAMPADD - -**声明** - -```javascript -TIMESTAMPADD(unit, interval_expr, date) -``` - - - -**说明** - -日期时间的算术计算。 - -同 `DATE_ADD()`,但 `unit` 只能为独立单位。 - -**例子** - -```javascript -obclient> SELECT - -> TIMESTAMPADD(DAY, -5, '2010-01-01 00:00:00'), - -> DATE_ADD('2010-01-01 00:00:00', INTERVAL -5 DAY) - -> \G -*************************** 1. row *************************** - TIMESTAMPADD(DAY, -5, '2010-01-01 00:00:00'): 2009-12-27 00:00:00 -DATE_ADD('2010-01-01 00:00:00', INTERVAL -5 DAY): 2009-12-27 00:00:00 -1 row in set (0.01 sec) -``` - - - - - -#### TO_DAYS - -**声明** - -```javascript -TO_DAYS(date) -``` - - - -**说明** - -返回指定 `date` 值对应的天数。天数指距离 `0000-01-01` 的天数。 - -**例子** - -```javascript -obclient> SELECT TO_DAYS('2015-11-04'), TO_DAYS('20151104'); -+-----------------------+---------------------+ -| TO_DAYS('2015-11-04') | TO_DAYS('20151104') | -+-----------------------+---------------------+ -| 736271 | 736271 | -+-----------------------+---------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### USEC_TO_TIME - -**声明** - -```javascript -USEC_TO_TIME(usec) -``` - - - -**说明** - -将 `usec` 值转换为 `TIMESTAMP` 类型值。 - -`usec` 表示距离 `1970-01-01 00:00:00.000000` 的微秒数,考虑时区信息。 - -**例子** - -```javascript -obclient> SELECT USEC_TO_TIME(1); -+----------------------------+ -| USEC_TO_TIME(1) | -+----------------------------+ -| 1970-01-01 08:00:00.000001 | -+----------------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### UNIX_TIMESTAMP - -**声明** - -```javascript -UNIX_TIMESTAMP() -UNIX_TIMESTAMP(date) -``` - - - -**说明** - -* 不指定 `date` 参数时,返回当前时间距离 '1970-01-01 00:00:00' 的秒数,考虑时区。 - - - - - - - - -* 指定 `date` 参数时,返回指定时间距离 '1970-01-01 00:00:00' 的秒数,考虑时区。 - - - - - - -**例子** - -```javascript -obclient> SELECT UNIX_TIMESTAMP(), TIME_TO_USEC(NOW()); -+------------------+---------------------+ -| UNIX_TIMESTAMP() | TIME_TO_USEC(NOW()) | -+------------------+---------------------+ -| 1525570561 | 1525570561000000 | -+------------------+---------------------+ -1 row in set (0.01 sec) - -obclient> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00'); -+---------------------------------------+ -| UNIX_TIMESTAMP('1997-10-04 22:23:00') | -+---------------------------------------+ -| 875974980 | -+---------------------------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### UTC_TIMESTAMP - -**声明** - -```javascript -UTC_TIMESTAMP() -``` - - - -**说明** - -返回当前 UTC 时间。 - -**例子** - -```javascript -obclient> SELECT UTC_TIMESTAMP(); -+---------------------+ -| UTC_TIMESTAMP() | -+---------------------+ -| 2018-05-06 01:38:32 | -+---------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### YEAR - -**声明** - -```javascript -YEAR(date) -``` - - - -**说明** - -返回 `date` 值的年份信息。 - -**例子** - -```javascript -obclient> SELECT YEAR('1987-01-01'); -+--------------------+ -| YEAR('1987-01-01') | -+--------------------+ -| 1987 | -+--------------------+ -1 row in set (0.00 sec) -``` - - - - - -字符串函数 --------------- - -#### CONCAT - -**声明** - -```javascript -CONCAT(str1, .., strN) -``` - - - -**说明** - -把多个字符串连接成一个字符串。参数中包含 `NULL` 时,返回 `NULL`。 - -**例子** - -```javascript -obclient> SELECT - -> CONCAT('test','obclient', '1.0'), - -> CONCAT('test','obclient', NULL) - -> \G -*************************** 1. row *************************** -CONCAT('test','obclient', '1.0'): testobclient1.0 - CONCAT('test','obclient', NULL): NULL -1 row in set (0.01 sec) -``` - - - - - -#### CONCAT_WS - -**声明** - -```javascript -CONCAT_WS(separator, str1, .., strN) -``` - - - -**说明** - -把多个字符串连接成一个字符串,相邻字符串间使用 `separator` 分隔。参数中包含 `NULL` 时,将忽略 `NULL`。 - -**例子** - -```javascript -obclient> SELECT - -> CONCAT_WS('_', 'First', 'Second'), - -> CONCAT_WS('_', 'First', NULL, 'Second') - -> \G -*************************** 1. row *************************** - CONCAT_WS('_', 'First', 'Second'): First_Second -CONCAT_WS('_', 'First', NULL, 'Second'): First_Second -1 row in set (0.00 sec) -``` - - - - - -FORMAT - -**声明** - -```unknow -FORMAT(X,D) -``` - - - -**说明** - -把数字 X 格式化为"#,###,###.##"格式,四舍五入到 D 位小数,并以字符串形式返回结果(如果整数部分超过三位,会用","作为千分位分隔符)。如果 D 为 0,则结果没有小数点或小数部分。 - -**例子** - -```unknow -obclient>SELECT FORMAT(12332.123456, 4) from DUAL; -+-------------------------+ -| format(12332.123456, 4) | -+-------------------------+ -| 12,332.1235 | -+-------------------------+ -1 row in set (0.00 sec) - -obclient>SELECT FORMAT(12332.1, 4) from DUAL; -+--------------------+ -| format(12332.1, 4) | -+--------------------+ -| 12,332.1000 | -+--------------------+ -1 row in set (0.01 sec) - -obclient>SELECT FORMAT(12332.2, 0) from DUAL; -+--------------------+ -| format(12332.2, 0) | -+--------------------+ -| 12,332 | -+--------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### SUBSTR - -**声明** - -```javascript -SUBSTR(str, pos) -SUBSTR(str, pos, len) -SUBSTR(str FROM pos) -SUBSTR(str FROM pos FOR len) -``` - - - -**说明** - -返回 `str` 的子字符串,起始位置为 `pos`,长度为 `len`。参数中包含 `NULL` 时,返回 `NULL`。 - -* 不指定 `len` 时,返回的子字符串从 `pos` 位置开始到 `str` 结尾。 - - - - - - - - -* `pos` 值为负数时,从 `str` 尾部向头部倒序确定起始位置。 - - - - - - - - -* `len` 小于等于 0,或 `pos` 指定的起始位置非法时,返回空字符串。 - - - - - - -**例子** - -```javascript -obclient> SELECT - -> SUBSTR('abcdefg', 3), - -> SUBSTR('abcdefg', 3, 2), - -> SUBSTR('abcdefg', -3), - -> SUBSTR('abcdefg', 3, -2), - -> SUBSTR('abcdefg' from -4 for 2) - -> \G -*************************** 1. row *************************** - SUBSTR('abcdefg', 3): cdefg - SUBSTR('abcdefg', 3, 2): cd - SUBSTR('abcdefg', -3): efg - SUBSTR('abcdefg', 3, -2): -SUBSTR('abcdefg' from -4 for 2): de -1 row in set (0.01 sec) -``` - - - - - -#### SUBSTRING - -**声明** - -```javascript -SUBSTRING(str, pos) -SUBSTRING(str, pos, len) -SUBSTRING(str FROM pos) -SUBSTRING(str FROM pos FOR len) -``` - - - -**说明** - -同 `SUBSTR`。 - - - -#### TRIM - -**声明** - -```javascript -TRIM([[{BOTH | LEADING | TRAILING}] [remstr] FROM] str) -``` - - - -**说明** - -删除字符串所有前缀和/或后缀,默认为 `BOTH`。参数中包含 `NULL` 时,返回 `NULL`。 - -**例子** - -```javascript -obclient> SELECT - -> TRIM(' bar '), - -> TRIM(LEADING 'x' FROM 'xxxbarxxx'), - -> TRIM(BOTH 'x' FROM 'xxxbarxxx'), - -> TRIM(TRAILING 'x' FROM 'xxxbarxxx') - -> \G -*************************** 1. row *************************** - TRIM(' bar '): bar - TRIM(LEADING 'x' FROM 'xxxbarxxx'): barxxx - TRIM(BOTH 'x' FROM 'xxxbarxxx'): bar -TRIM(TRAILING 'x' FROM 'xxxbarxxx'): xxxbar -1 row in set (0.01 sec) -``` - - - - - -#### LTRIM - -**声明** - -```javascript -LTRIM(str) -``` - - - -**说明** - -删除字符串左侧的空格。 - - - -#### RTRIM - -**声明** - -```javascript -RTRIM(str) -``` - - - -**说明** - -删除字符串右侧的空格。 - - - -#### ASCII - -**声明** - -```javascript -ASCII(str) -``` - - - -**说明** - -返回字符串最左侧字符的 ASCII 码。 - - - -#### ORD - -**声明** - -```javascript -ORD(str) -``` - - - -**说明** - -返回字符串最左侧字符的字符码。单字节编码如果最左侧字符是多字节编码字符,返回值计算规则如下: - -```javascript -(1st byte code) -+ (2nd byte code * 256) -+ (3rd byte code * 256^2) ... -``` - - - -**例子** - -```javascript -obclient> SELECT ORD('中国'); -+---------------+ -| ORD('中国') | -+---------------+ -| 14989485 | -+---------------+ -1 row in set (0.01 sec) -``` - - - - - -#### LENGTH - -**声明** - -```javascript -LENGTH(str) -``` - - - -**说明** - -返回 `str` 的字节长度。 - -**例子** - -```javascript -obclient> SELECT LENGTH('中国'), LENGTH('hello'); -+------------------+-----------------+ -| LENGTH('中国') | LENGTH('hello') | -+------------------+-----------------+ -| 6 | 5 | -+------------------+-----------------+ -1 row in set (0.01 sec) -``` - - - - - -#### CHAR_LENGTH - -**声明** - -```javascript -CHAR_LENGTH(str) -``` - - - -**说明** - -返回字符串包含的字符数。 - -**例子** - -```javascript -obclient> SELECT CHAR_LENGTH('中国'), CHAR_LENGTH('hello'); -+-----------------------+----------------------+ -| CHAR_LENGTH('中国') | CHAR_LENGTH('hello') | -+-----------------------+----------------------+ -| 2 | 5 | -+-----------------------+----------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### UPPER - -**声明** - -```javascript -UPPER(str) -``` - - - -**说明** - -将字符串中的小写字母转化为大写字母。 - -**例子** - -```javascript -obclient> SELECT UPPER('obclient您好!'); -+-----------------------------+ -| UPPER('obclient您好!') | -+-----------------------------+ -| OCEANBASE您好! | -+-----------------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### LOWER - -**声明** - -```javascript -LOWER(str) -``` - - - -**说明** - -将字符串中的大写字母转化为小写字母。 - -**例子** - -```javascript -obclient> SELECT LOWER('obclient您好!'); -+-----------------------------+ -| LOWER('obclient您好!') | -+-----------------------------+ -| obclient您好! | -+-----------------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### HEX - -**声明** - -```javascript -HEX(str) -``` - - - -**说明** - -将数字或字符串转化为十六进制字符串。 - -**例子** - -```javascript -obclient> SELECT HEX(255), HEX('abc'); -+----------+------------+ -| HEX(255) | HEX('abc') | -+----------+------------+ -| FF | 616263 | -+----------+------------+ -1 row in set (0.00 sec) -``` - - - - - -#### UNHEX - -**声明** - -```javascript -UNHEX(str) -``` - - - -**说明** - -将十六进制字符串转化为正常字符串。 - -**例子** - -```javascript -obclient> SELECT UNHEX('4f6365616e42617365'); -+-----------------------------+ -| UNHEX('4f6365616e42617365') | -+-----------------------------+ -| obclient | -+-----------------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### MD5 - -**声明** - -```javascript -MD5(str) -``` - - - -**说明** - -返回字符串的 MD5 值。 - -**例子** - -```javascript -obclient> SELECT MD5(1); -+----------------------------------+ -| MD5(1) | -+----------------------------------+ -| c4ca4238a0b923820dcc509a6f75849b | -+----------------------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### INT2IP - -**声明** - -```javascript -INT2IP(int_value) -``` - - - -**说明** - -将整数内码转换成 IP 地址。 - -**例子** - -```javascript -obclient> SELECT - -> INT2IP(16777216), - -> HEX(16777216), - -> INT2IP(1) - -> \G -*************************** 1. row *************************** -INT2IP(16777216): 1.0.0.0 - HEX(16777216): 1000000 - INT2IP(1): 0.0.0.1 -1 row in set (0.01 sec) -``` - - - - - -#### IP2INT - -**声明** - -```javascript -IP2INT('ip_addr') -``` - - - -**说明** - -将 IP 地址转换成整数内码。 - -**例子** - -```javascript -obclient> SELECT - -> IP2INT('0.0.0.1'), - -> HEX(IP2INT('0.0.0.1')), - -> HEX(IP2INT('1.0.0.0')) - -> \G -*************************** 1. row *************************** - IP2INT('0.0.0.1'): 1 -HEX(IP2INT('0.0.0.1')): 1 -HEX(IP2INT('1.0.0.0')): 1000000 -1 row in set (0.01 sec) -``` - - - - - -#### LIKE - -**声明** - -```javascript -str1 [NOT] LIKE str2 [ESCAPE str3] -``` - - - -**说明** - -字符串通配符匹配。参数中包含 `NULL` 时,返回 `NULL`。 - -通配符包括: - -* `%`:匹配任意长度字符串。 - - - - - - - - -* `_`:匹配单个字符。 - - - - - - -ESCAPE 用于定义转义符,如果 str2 中包含 str3,在匹配时 str3 后的字符将做为普通字符处理。 - -**例子** - -```javascript -obclient> SELECT 'ab%' LIKE 'abc%' ESCAPE 'c'; -+------------------------------+ -| 'ab%' LIKE 'abc%' ESCAPE 'c' | -+------------------------------+ -| 1 | -+------------------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### REGEXP - -**声明** - -```javascript -str [NOT] REGEXP | RLIKE pat -``` - - - -**说明** - -正则匹配。参数中包含 `NULL` 时,返回 `NULL`。 - -**例子** - -```javascript -obclient> SELECT - -> 1234 REGEXP 1, - -> 'hello' RLIKE 'h%' - -> \G -*************************** 1. row *************************** - 1234 REGEXP 1: 1 -'hello' RLIKE 'h%': 0 -1 row in set (0.01 sec) -``` - - - - - -#### REPEAT - -**声明** - -```javascript -REPEAT(str, count) -``` - - - -**说明** - -返回 `str` 重复 `count` 次组成的字符串。`count` 小于等于 0 时,返回空字符串。参数中包含 `NULL` 时,返回 `NULL`。 - -**例子** - -```javascript -obclient> SELECT - -> REPEAT('1', -1), - -> REPEAT(null, null), - -> REPEAT('Abc', 4) - -> \G -*************************** 1. row *************************** - REPEAT('1', -1): -REPEAT(null, null): NULL - REPEAT('Abc', 4): AbcAbcAbcAbc -1 row in set (0.01 sec) -``` - - - - - -#### SPACE - -**声明** - -```javascript -SPACE(N) -``` - - - -**说明** - -返回包含 `N` 个空格的字符串。 - - - -#### SUBSTRING_INDEX - -**声明** - -```javascript -SUBSTRING_INDEX(str, delim, count) -``` - - - -**说明** - -在定界符 delim 以及 count 出现前,从字符串 str 返回字符串。若 count 为正值,则返回最终定界符(从左边开始)左边的一切内容。若 count 为负值,则返回定界符(从右边开始)右边的一切内容。任意一个参数为 NULL,返回 NULL;若 str 或 delim 为空字符串,则返回空串;若 count = 0, 返回空串。 - -*str, delim, count 参数支持数值与字符串的隐式转换。* - -**例子** - -```javascript -obclient>select substring_index('abcdabc', 'abc', 0), substring_index('abcdabc', 'abc', 1), substring_index('abcdabc', 'abc', 2), substring_index('abcdabc', 'abc', 3), substring_index('abcdabc', 'abc', -1), substring_index('abcdabc', 'abc', -2), substring_index('abcdabc', 'abc', -3)\G; - * 1. row * - substring_index('abcdabc', 'abc', 0): - substring_index('abcdabc', 'abc', 1): - substring_index('abcdabc', 'abc', 2): abcd - substring_index('abcdabc', 'abc', 3): abcdabc - substring_index('abcdabc', 'abc', -1): - substring_index('abcdabc', 'abc', -2): dabc - substring_index('abcdabc', 'abc', -3): abcdabc - 1 row in set (0.00 sec) -``` - - - - - -#### LOCATE - -**声明** - -`LOCATE(substr,str) , LOCATE(substr,str,pos)` - -**说明** - -第一个语法返回字符串 str 中子字符串 substr 的第一个出现位置。第二个语法返回字符串 str 中子字符串 substr 的第一个出现位置, 起始位置在 pos。如若 substr 不在 str 中,则返回值为 0。 - -**例子** - -```javascript -obclient>SELECT LOCATE('bar', 'foobarbar'); - -> 4 -obclient>SELECT LOCATE('xbar', 'foobar'); - -> 0 -obclient>SELECT LOCATE('bar', 'foobarbar',5); - -> 7 -``` - - - - - -#### POSITION - -**声明** - -`POSITION(substr IN str)` - -**说明** - -与 LOCATE 同义。 - - - -#### INSTR - -**声明** - -`INSTR(str,substr)` - -**说明** - -返回字符串 str 中子字符串的第一个出现位置。这和 LOCATE() 的双参数形式相同,除非参数的顺序被颠倒。 - -**例子** - -```javascript -obclient>SELECT INSTR('foobarbar', 'bar'); - -> 4 -obclient>SELECT INSTR('xbar', 'foobar'); - -> 0 -``` - - - - - -#### REPLACE - -**声明** - -`REPLACE(str, from_str, to_str)` - -**说明** - -返回字符串 str 以及所有被字符 to_str 替代的字符串 from_str。 - -**例子** - -```javascript -obclient>SELECT REPLACE('abc.efg.gpg.nowdew.abc.dabc.e', 'abc.', 'www'); -+---------------------------------------------------------+ -| REPLACE('abc.efg.gpg.nowdew.abc.dabc.e', 'abc.', 'www') | -+---------------------------------------------------------+ -| wwwefg.gpg.nowdew.wwwdwwwe | -+---------------------------------------------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### FIELD - -**声明** - -`FIELD(str,str1,str2,str3,...)` - -**说明** - -返回参数 str 在 str1, str2, str3,... 列表中的索引位置(从 1 开始的位置)。在找不到 str 的情况下,返回值为 0。 - -如果所有的对于 FIELD() 的参数均为字符串,则所有参数均按照字符串进行比较。如果所有的参数均为数字,则按照数字进行比较。否则,参数均按照 double 类型进行比较。 - -如果 str 为 NULL,则返回值为 0,原因是 NULL 不能同任何值进行同等比较。FILED() 是 ELT() 的补数。 - -**例子** - -```javascript -obclient>select field('abc','abc1','abc2','abc','abc4','abc'), field(NULL, 'null1', NULL); -+-----------------------------------------------+----------------------------+ -| field('abc','abc1','abc2','abc','abc4','abc') | field(NULL, 'null1', NULL) | -+-----------------------------------------------+----------------------------+ -| 3 | 0 | -+-----------------------------------------------+----------------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### ELT - -**声明** - -`ELT(N, str1, str2, str3,...)` - -**说明** - -若 N=1,则返回值为 str1, 若 N=2,则返回值为 str2,以此类推。若 N 小于 1 或大于参数的数目,则返回值为NULL。ELT() 是 FIELD() 的补数。 - -**例子** - -```javascript -obclient>select elt(3, 'abc1', 'abc2', 'abc', 'abc4', 'abc'), elt(0, 'null1', NULL); -+----------------------------------------------+-----------------------+ -| elt(3, 'abc1', 'abc2', 'abc', 'abc4', 'abc') | elt(0, 'null1', NULL) | -+----------------------------------------------+-----------------------+ -| abc | NULL | -+----------------------------------------------+-----------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### INSERT - -**声明** - -`INSERT (str1,pos,len,str2)` - -**说明** - -返回字符串 str1, 字符串中起始于 pos 位置,长度为 len 的子字符串将被 str2 取代。如果 pos 超过字符串长度,则返回值为原始字符串。 假如 len 的长度大于其它字符串的长度,则从位置 pos 开始替换。若任何一个参数为 null,则返回值为 NULL。这个函数支持多字节字元。 - -* *str1 和 str2 必须是字符串,pos 和 len 必须是整数。任意参数为 NULL,结果总为 NULL;* - - - - - - -* *str1 和 str2 中的文字符被当做字节流看待;* - - - - - - -* *pos 值为负数或者大于 str1 长度时,返回 str1;* - - - - - - -* 当 len 小于 0,或大于 str 的长度时,返回结果为 str1 从开头到 pos 位置的串,和 str2 的组合串。 - - - - - - -**例子** - -```javascript -obclient>select insert('Quadratic',-2,100,'What'), insert('Quadratic',7,3,'What'), - -> insert('Quadratic',-1,3,'What'), insert('Quadratic',10,3,'What'), insert('Quadratic',5,-1,''), - -> insert('Quadratic',7,-1,'What')\G; -* 1. row * -insert('Quadratic',-2,100,'What'): Quadratic - insert('Quadratic',7,3,'What'): QuadraWhat - insert('Quadratic',-1,3,'What'): Quadratic - insert('Quadratic',10,3,'What'): Quadratic - insert('Quadratic',5,-1,''): Quad - insert('Quadratic',7,-1,'What'): QuadraWhat -1 row in set (0.01 sec) -``` - - - - - -#### LPAD - -**声明** - -`LPAD(str, len, padstr)` - -**说明** - -用指定字符串 padstr,在左侧填充字符串 str 到指定长度 len。如果 str 长度大于 len,则 str 被截断。 - -**例子** - -```javascript -obclient > SELECT LPAD('hi',4,'??'); -+-------------------+ -| LPAD('hi',4,'??') | -+-------------------+ -| ??hi | -+-------------------+ -1 row in set (0.01 sec) - -obclient > SELECT LPAD('hi',1,'??'); -+-------------------+ -| LPAD('hi',1,'??') | -+-------------------+ -| h | -+-------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### RPAD - -**声明** - -`RPAD(str, len, padstr)` - -**说明** - -用指定字符串 padstr,在右侧填充字符串 str 到指定长度 len。如果 str 长度大于 len,则 str 被截断。 - -**例子** - -```javascript -obclient> SELECT RPAD('hi',4,'??'); -+-------------------+ -| RPAD('hi',4,'??') | -+-------------------+ -| hi?? | -+-------------------+ -1 row in set (0.00 sec) - -obclient> SELECT RPAD('hi',1,'??'); -+-------------------+ -| RPAD('hi',1,'??') | -+-------------------+ -| h | -+-------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### UUID - -**声明** - -`uuid()` - -**说明** - -生成一个全局唯一 ID。 - -**例子** - -```javascript -obclient> select uuid(); -+--------------------------------------+ -| uuid() | -+--------------------------------------+ -| f756a1f6-4de6-11e8-90af-90b11c53e421 | -+--------------------------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### BIN - -**声明** - -`bin(N)` - -**说明** - -返回数字 N 的二进制形式。 - -**例子** - -```javascript -obclient > SELECT BIN(12); -+---------+ -| BIN(12) | -+---------+ -| 1100 | -+---------+ -1 row in set (0.00 sec) -``` - - - - - -#### QUOTE - -**声明** - -`quote(str)` - -**说明** - -引用一个字符串以产生一个结果可以作为 SQL 语句中正确地转义数据值。返回的字符串由单引号和单引号的各个实例封闭(''),反斜线(''),ASCII NUL 和 Control-Z 前面加一个反斜杠。如果参数为 NULL,则返回值是词 'NULL' 不包围单引号。 - -**例子** - -```javascript -obclient > SELECT QUOTE('Don\'t!'); -+------------------+ -| QUOTE('Don\'t!') | -+------------------+ -| 'Don\'t!' | -+------------------+ -1 row in set (0.00 sec) - -obclient > SELECT QUOTE(NULL); -+-------------+ -| QUOTE(NULL) | -+-------------+ -| NULL | -+-------------+ -1 row in set (0.00 sec) -``` - - - - - -#### REGEXP_SUBSTR - -**声明** - -`regexp_substr(str,pattern,[position[,occurrence[,match_param[,subexpr]]]])` - -**说明** - -在 str 中搜索匹配正则表达式 pattern 的子串,子串不存在返回 NULL。这个函数支持多字节字元。除 match_param 外,其他任意参数为 NULL,结果为 NULL。 - -* str 待搜索的字符串,支持多字节字元。 - - - - - - - - -* pattern 正则表达式,正则表达式规则兼容 mysql。 - - - - - - - - -* position \[可选\] 搜索的开始位置。必须是大于 0 的正整数,小于等于 0 报错,输入为 NULL 返回 NULL,默认值为 1,表示从第一个字符开始搜索。 - - - - - - - - -* occurrence \[可选\] 返回第几次匹配的值。必须是大于等于 0 的正整数,小于等于 0 报错,输入为 NULL 返回 NULL,默认值是 1,表示返回第一次匹配的结果。 - - - - - - - - -* match_param \[可选\] 搜索参数,字符串类型,目前仅支持两个字符 'i','c',i: 代表忽略大小写 c: 代表不忽略,其他字符报错。默认值根据 str 字符集的 collection 决定。 为 NULL 时使用默认值。 - - - - - - - - -* subexpr \[可选\] 返回正则表达式中第几个组的值。大于等于 0 的整数,小于 0 则报错。默认值是 0,表示返回满足整个 pattern 的子串。 - - - - - - - - -**例子** - -```javascript -obclient> select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1) from dual; -+----------------------------------------------------------------------------------+ -| regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1) | -+----------------------------------------------------------------------------------+ -| have | -+----------------------------------------------------------------------------------+ -1 row in set (0.00 sec) - -obclient> select regexp_substr('foothebar', 'foo(.*)(bar)', 1, 1, 'c', 1) from dual; -+----------------------------------------------------------+ -| regexp_substr('foothebar', 'foo(.*)(bar)', 1, 1, 'c', 1) | -+----------------------------------------------------------+ -| the | -+----------------------------------------------------------+ -1 row in set (0.01 sec) -``` - - - - - -转换函数 -------------- - -#### CAST - -**声明** - -`CAST(expr AS type)` - -**说明** - -将某种数据类型的表达式显式转换为另一种数据类型。 - -将 expr 字段值转换为 type 数据类型。 - -**参数说明** : - - - -* expr:表示任何有效的 SQL 表达式。 - - - -* AS:用于分隔两个参数,在 AS 之前的是要处理的数据,在 AS 之后是要转换的数据类型。 - - - -* type:表示目标系统所提供的数据类型。可以是以下值其中的一个: - - - - - - - - -在使用 CAST 函数进行数据类型转换时,在下列情况下能够被接受: - -* 两个表达式的数据类型完全相同; - - - - - - - - -* 两个表达式可隐式转换; - - - - - - - - -* 必须显式转换数据类型。 - - - - - - -如果试图进行不可能的转换,OceanBase数据库 将显示一条错误信息。 - -如果转换时没有指定数据类型的长度,则使用 OceanBase 数据库系统内部最大长度。如 varchar 是262,143字节,number 是 65 个 bit 位的浮动精度。 - -支持带符号和无符号的 64 比特值的运算。若你正在使用数字操作符 (如 +) 而其中一个操作数为无符号整数,则结果为无符号。可使用 SIGNED 和 UNSIGNED cast 操作符来覆盖它。将运算分别派给带符号或无符号 64 比特整数。 - -假如任意一个操作数为一个浮点值,则结果为一个浮点值。 - -**例子** - -```javascript -obclient>SELECT CAST(123 AS BOOL); -+-------------------+ -| CAST(123 AS bool) | -+-------------------+ -| 1 | -+-------------------+ -1 row in set (0.00 sec) - -obclient>select cast(1-2 as unsigned), cast(cast(1-2 as unsigned) as signed); -+-----------------------+---------------------------------------+ -| cast(1-2 as unsigned) | cast(cast(1-2 as unsigned) as signed) | -+-----------------------+---------------------------------------+ -| 18446744073709551615 | -1 | -+-----------------------+---------------------------------------+ -1 row in set (0.00 sec) - -obclient>SELECT CAST(1 AS UNSIGNED) - 2.0; -+---------------------------+ -| CAST(1 AS UNSIGNED) - 2.0 | -+---------------------------+ -| -1.0 | -+---------------------------+ -1 row in set (0.00 sec) - -obclient>select cast(0 as date); -+-----------------+ -| cast(0 as date) | -+-----------------+ -| 0000-00-00 | -+-----------------+ -1 row in set (0.00 sec) -``` - - - - - -数学函数 -------------- - -#### ROUND - -**声明** - -`ROUND(X), ROUND(X,D)` - -**说明** - -返回一个数值,四舍五入到指定的长度或精度。 - -返回参数 X, 其值接近于最近似的整数。在有两个参数的情况下,返回 X,其值保留到小数点后 D 位,而第 D 位的保留方式为四舍五入。若要接保留 X 值小数点左边的 D 位,可将 D 设为负值。 - -返回值的类型同第一个自变量相同(假设它是一个整数、双精度数或小数)。这意味着对于一个整数参数,结果也是一个整数(无小数部分)。 - -* 对于准确值数字,ROUND() 使用"四舍五入" 或"舍入成最接近的数" 的规则:对于一个分数部分为 .5 或大于 .5 的值,正数则上舍入到邻近的整数值,负数则下舍入临近的整数值。(换言之, 其舍入的方向是数轴上远离零的方向)。对于一个分数部分小于 .5 的值,正数则下舍入下一个整数值,负数则下舍入邻近的整数值,而正数则上舍入邻近的整数值。 - - - - - - - - -* 对于近似值数字, ROUND() 遵循银行家规则"四舍--大于五入--五取最接近的偶数"的规则: 一个带有任何小数部分的值会被舍入成最接近的偶数整数。 - - - - - - - - -**例子** - -```javascript -obclient>select round(2.15,2); -+---------------+ -| round(2.15,2) | -+---------------+ -| 2.15 | -+---------------+ -1 row in set (0.00 sec) - -obclient>select round(2555e-2,1); -+------------------+ -| round(2555e-2,1) | -+------------------+ -| 25.6 | -+------------------+ -1 row in set (0.01 sec) - -obclient>select round(25e-1), round(25.3e-1),round(35e-1); -+--------------+----------------+--------------+ -| round(25e-1) | round(25.3e-1) | round(35e-1) | -+--------------+----------------+--------------+ -| 3 | 3 | 4 | -+--------------+----------------+--------------+ -1 row in set (0.00 sec) -``` - - - - - -#### CEIL - -**声明** - -`CEIL(expr)` - -**说明** - -返回大于或者等于指定表达式的最小整数。 - -还支持比较运算,结果为 BOOL 值,被转化为数字类型处理,产生的结果为 1(TRUE)、0 (FALSE); - -如果输入 NULL,返回值为 NULL。 - -如果输入纯数字的字符串,支持自动转换成数字类型。 - -返回值会被转化为一个 BIGINT。 - -**例子** - -```javascript -obclient>select ceil(1.2), ceil(-1.2), ceil(1+1.5), ceil(1=1),ceil(1<1),ceil(null); -+-----------+------------+-------------+-----------+-----------+------------+ -| ceil(1.2) | ceil(-1.2) | ceil(1+1.5) | ceil(1=1) | ceil(1<1) | ceil(null) | -+-----------+------------+-------------+-----------+-----------+------------+ -| 2 | -1 | 3 | 1 | 0 | NULL | -+-----------+------------+-------------+-----------+-----------+------------+ -1 row in set (0.00 sec) - -obclient>select ceil(name); -ERROR 1166 (42703): Unkown column name 'name' - -obclient>select ceil('2'); -+-----------+ -| ceil('2') | -+-----------+ -| 2 | -+-----------+ -1 row in set (0.00 sec) -``` - - - - - -#### FLOOR - -**声明** - -`FLOOR(expr)` - -**说明** - -和 CEIL(expr) 函数功能类似,返回小于或者等于指定表达式的最大整数。 - -还支持比较运算,结果为 BOOL 值,被转化为数字类型处理,产生的结果为 1(TRUE)、0 (FALSE); - -如果输入 NULL,返回值为 NULL。 - -如果输入纯数字的字符串,支持自动转换成数字类型。 - -返回值会被转化为一个 BIGINT。 - -**例子** - -```javascript -obclient>select floor(1.2), floor(-1.2), floor(1+1.5), floor(1=1),floor(1<1),floor(null); -+------------+-------------+--------------+------------+------------+-------------+ -| floor(1.2) | floor(-1.2) | floor(1+1.5) | floor(1=1) | floor(1<1) | floor(null) | -+------------+-------------+--------------+------------+------------+-------------+ -| 1 | -2 | 2 | 1 | 0 | NULL | -+------------+-------------+--------------+------------+------------+-------------+ -1 row in set (0.00 sec) - -obclient>select floor(name); -ERROR 1166 (42703): Unkown column name 'name' - -obclient>select floor('2'); -+------------+ -| floor('2') | -+------------+ -| 2 | -+------------+ -1 row in set (0.00 sec) -``` - - - - - -#### ABS - -**声明** - -`ABS(expr)` - -**说明** - -绝对值函数,求表达式绝对值,函数返回值类型与数值表达式的数据类型相同。 - -还支持比较运算,结果为 BOOL 值,被转化为数字类型处理,产生的结果为 1(TRUE)、0 (FALSE); - -如果输入 NULL,返回值为 NULL。 - -如果输入纯数字的字符串,支持自动转换成数字类型。 - -返回值会被转化为一个 BIGINT。 - -**例子** - -```javascript -obclient>select abs(5), abs(-5.777), abs(0), abs(1/2), abs(1-5); -+--------+-------------+--------+----------+----------+ -| abs(5) | abs(-5.777) | abs(0) | abs(1/2) | abs(1-5) | -+--------+-------------+--------+----------+----------+ -| 5 | 5.777 | 0 | 0.5000 | 4 | -+--------+-------------+--------+----------+----------+ -1 row in set (0.00 sec) -``` - - - - - -#### NEG - -**声明** - -`NEG(expr)` - -**说明** - -求补函数,对操作数执行求补运算:用零减去操作数,然后结果返回操作数。 - -支持比较运算,结果为 BOOL 值,被转化为数字类型处理,产生的结果为 1(TRUE)、0 (FALSE),再对结果求补。 - -**例子** - -```javascript -obclient>select neg(1), neg(1+1), neg(2*3), neg(1=1), neg(5<1); -+--------+----------+----------+----------+----------+ -| neg(1) | neg(1+1) | neg(2*3) | neg(1=1) | neg(5<1) | -+--------+----------+----------+----------+----------+ -| -1 | -2 | -6 | -1 | 0 | -+--------+----------+----------+----------+----------+ -1 row in set (0.01 sec) -``` - - - - - -#### SIGN - -**声明** - -`SIGN(X)` - -**说明** - -SIGN(X) 返回参数作为 -1、 0 或 1 的符号,该符号取决于 X 的值为负、零或正。 - -支持比较运算,结果为 BOOL 值,被转化为数字类型处理,产生的结果为 1(TRUE)、0 (FALSE); - -如果输入 NULL,返回值为 NULL。 - -支持浮点数、十六进制数。 - -**例子** - -```javascript -obclient>SELECT SIGN(-32), SIGN(0), SIGN(234); -+-----------+---------+-----------+ -| SIGN(-32) | SIGN(0) | SIGN(234) | -+-----------+---------+-----------+ -| -1 | 0 | 1 | -+-----------+---------+-----------+ -1 row in set (0.01 sec) - -obclient>select sign(null),sign(false),sign(0x01); -+------------+-------------+------------+ -| sign(null) | sign(false) | sign(0x01) | -+------------+-------------+------------+ -| NULL | 0 | 1 | -+------------+-------------+------------+ -1 row in set (0.00 sec) -``` - - - - - -#### CONV - -**声明** - -`CONV(N, from_base, to_base)` - -**说明** - -不同数基间转换数字。返回值为一个字符串,由 from_base 基转化为 to_base 基。输入参数 N 可以是一个整数或字符串。最小基数为 2,而最大基数则为 36。如果 to_base 是一个负数,则 N 被看作一个带符号数。否则,N 被看作无符号数。from_base 如果是负数,则被当作整数处理,符号被忽略。N 参数仅支持 int 类型和字符串类型输入;from_base 和 to_base 参数仅支持十进制 int 类型输入,且取值范围为 \[-36, -2\] U \[2, 36\]。 - -非法输入将导致报错,其中非法输入包括以下情况: - -* *from_base 或者 to_base 不是一个合法的十进制int类型输入;* - - - - - - -* *from_base 或者 to_base 超出 \[-36,-2\] U \[2,36\] 的取值范围;* - - - - - - -* N 不是一个合法的数字表示,例如取值超出 0~9,a~z,A~Z 的字符范围; - - - - - - - - -* N 超出了 from_base 基的取值范围,例如 from_base 为 2,而 N 取值为 3; - - - - - - - - -* N 的取值超出了 int64 的最大表示范围,即 \[-9223372036854775807, 9223372036854775807\]。 - - - - - - -**例子** - -```javascript -obclient>select conv(9223372036854775807,10,2); -+-----------------------------------------------------------------+ -| conv(9223372036854775807,10,2) | -+-----------------------------------------------------------------+ -| 111111111111111111111111111111111111111111111111111111111111111 | -+-----------------------------------------------------------------+ -1 row in set (0.00 sec) - -obclient>select conv('-acc',21,-7); -+--------------------+ -| conv('-acc',21,-7) | -+--------------------+ -| -16425 | -+--------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### MOD - -**声明** - -`MOD(N,M)` - -**说明** - -取余函数。MOD(N,M), N % M, N MOD M 三种形式是等效的。 - -MOD() 对于带有小数部分的数值也起作用,它返回除法运算后的精确余数。 - -N,M 中任何一个参数为 NULL,返回值都为 NULL。M 为 0 时,也返回 NULL。 - -**例子** - -```javascript -obclient>select mod(29,19), 29 mod 19, 29 % 19; -+------------+-----------+---------+ -| mod(29,19) | 29 mod 19 | 29 % 19 | -+------------+-----------+---------+ -| 10 | 10 | 10 | -+------------+-----------+---------+ -1 row in set (0.00 sec) -``` - - - - - -#### POW - -**声明** - -`POW(X,Y)` - -**说明** - -返回 X 的 Y 次方。 - -X 与 Y 中任何一个参数为 NULL,返回值都为 NULL。 - -**例子** - -```javascript -obclient>select pow(4,2), pow(4,-2), pow(1,null); -+----------+-----------+-------------+ -| pow(4,2) | pow(4,-2) | pow(1,null) | -+----------+-----------+-------------+ -| 16 | 0.0625 | NULL | -+----------+-----------+-------------+ -1 row in set (0.00 sec) -``` - - - - - -#### POWER - -**声明** - -`POWER(X,Y)` - -**说明** - -POWER(X,Y) 和 POW(X,Y) 是同义函数。 - - - -#### RAND - -**声明** - -`rand([N])` - -**说明** - -RAND(\[N\]) 函数接受 0 个或者 1 个参数(N 被称为随机数种子),返回一个范围是 \[0,1.0) 的随机浮点数。如果想获得一个范围在 \[i, j) 的随机整数,可以使用表达式 FLOOR(I + RAND() \* (j - i))。 - -如果参数 N 不指定,那么在执行之前会使用随机种子初始化,之后 RAND() 会根据这个初始化值来生成随机数,所以 RAND() 每次会生成不同的随机数序列。 - -如果参数 N 指定,那么 N 会作为随机数种子来生成随机数。根据 N 是否是常量,分成以下两种情况: - -* 如果 N 是常量,那么 N 在执行之前会被当成随机种子初始化,之后 RAND(N) 会根据这个初始化值来生成随机数。相同的 N 值会生成相同的随机数序列。 - - - - - - - - -* 如果 N 是变量(比如 N 是一个列值),那么 N 会在每次执行的时候作为随机数种子来生成随机数。相同的 N 值会生成相同的随机数。 - - - - - - - - -除了出现在 Select 语句中,RAND(\[N\]) 也可以出现在 where,order by 和 group by 语句中,它的执行方式还是按照上述规则执行。比如,如果想随机的对一个表进行排序,可以使用如下 SQL:select from t1 order by rand()。如果想随机取样一个表的 100 行,可以使用如下 SQL:select from t1 order by rand() limit 100。 - -**例子** - -```javascript -obclient> select a, b, rand() from t3; -+------+------+---------------------+ -| a | b | rand() | -+------+------+---------------------+ -| 1 | 1 | 0.641815407799385 | -| 2 | 2 | 0.16825051248841966 | -| 3 | 3 | 0.9158063697775886 | -+------+------+---------------------+ -3 rows in set (0.00 sec) - -obclient> select a, b, rand() from t3; -+------+------+---------------------+ -| a | b | rand() | -+------+------+---------------------+ -| 1 | 1 | 0.07428034215632857 | -| 2 | 2 | 0.6239826321825224 | -| 3 | 3 | 0.897072165177271 | -+------+------+---------------------+ -3 rows in set (0.00 sec) - -obclient> select a, b, rand(3) from t3; -+------+------+---------------------+ -| a | b | rand(3) | -+------+------+---------------------+ -| 1 | 1 | 0.9057697559760601 | -| 2 | 2 | 0.37307905813034536 | -| 3 | 3 | 0.14808605345719125 | -+------+------+---------------------+ -3 rows in set (0.00 sec) - -obclient> select a, b, rand(3) from t3; -+------+------+---------------------+ -| a | b | rand(3) | -+------+------+---------------------+ -| 1 | 1 | 0.9057697559760601 | -| 2 | 2 | 0.37307905813034536 | -| 3 | 3 | 0.14808605345719125 | -+------+------+---------------------+ -3 rows in set (0.00 sec) - -obclient> select a, b, rand(a), rand(b) from t3; -+------+------+---------------------+---------------------+ -| a | b | rand(a) | rand(b) | -+------+------+---------------------+---------------------+ -| 1 | 1 | 0.40540353712197724 | 0.40540353712197724 | -| 2 | 2 | 0.6555866465490187 | 0.6555866465490187 | -| 3 | 3 | 0.9057697559760601 | 0.9057697559760601 | -+------+------+---------------------+---------------------+ -3 rows in set (0.00 sec) -``` - - - - - -比较函数 -------------- - -#### GREATEST - -**声明** - -`GREATEST(value1, ...)` - -**说明** - -返回参数的最大值,和函数 LEAST() 相对。 - -参数至少为两个(一个参数将会报错);如果参数中有 NULL, 返回值为 NULL。 - -当参数中同时存在数值和字符时,把字符隐式转换为数值类型处理,不能转换的报错。 - -**例子** - -```javascript -obclient>select greatest(2,1), greatest('2',1,0), greatest('a','b','c'), greatest('a', NULL, 'c'), greatest('2014-05-15','2014-06-01')\G - * 1. row * - greatest(2,1): 2 - greatest('2',1,0): 2 - greatest('a','b','c'): c - greatest('a', NULL, 'c'): NULL - greatest('2014-05-15','2014-06-01'): 2014-06-01 - 1 row in set (0.01 sec) - obclient>select greatest(2); - ERROR 1582 (42000): Incorrect parameter count in the call to native function 'greatest' -``` - - - - - -#### LEAST - -**声明** - -`LEAST(value1, ...)` - -**说明** - -返回参数的最小值,和函数 GREATEST() 相对。 - -参数至少为两个;如果参数中有 NULL,返回值为 NULL。 - -当参数中同时存在数值和字符时,把字符隐式转换为数值类型处理,不能转换的报错。 - -**例子** - -```javascript -obclient>select least(2, null), least('2',4,9), least('a','b','c'), least('a',NULL,'c'), least('2014-05-15','2014-06-01')\G; -* 1. row * - least(2, null): NULL - least('2',4,9): 2 - least('a','b','c'): a - least('a',NULL,'c'): NULL -least('2014-05-15','2014-06-01'): 2014-05-15 -1 row in set (0.01 sec) -obclient>select least(2); -ERROR 1582 (42000): Incorrect parameter count in the call to native function 'least' -``` - - - - - -#### ISNULL - -**声明** - -`ISNULL(expr)` - -**说明** - -如果参数 expr 为 NULL,那么 ISNULL() 的返回值为 1,否则范围值为 0。 - -ISNULL() 函数可以用来替代针对 NULL 的等值(=)比较。(使用 = 的 NULL 值比较通常都是错误的。)ISNULL() 函数同 IS NULL 比较操作符具有一些相同的特性。 - -**例子** - -```javascript -obclient>SELECT ISNULL(null), ISNULL('test'), ISNULL(123.456), ISNULL('10:00'); -+--------------+----------------+-----------------+-----------------+ -| ISNULL(null) | ISNULL('test') | ISNULL(123.456) | ISNULL('10:00') | -+--------------+----------------+-----------------+-----------------+ -| 1 | 0 | 0 | 0 | -+--------------+----------------+-----------------+-----------------+ -1 row in set (0.01 sec) - -obclient>SELECT ISNULL(null+1); -+----------------+ -| ISNULL(null+1) | -+----------------+ -| 1 | -+----------------+ -1 row in set (0.00 sec) -``` - - - - - -流程控制函数 ---------------- - -#### CASE - -**声明** - -```javascript -CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END -OR -CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END -``` - - - -**说明** - -在第一个方案的返回结果中,value = compare-value。而第二个方案的返回结果是第一种条件为真。如果没有匹配的结果值,则返回结果为 ELSE 后的结果,如果没有 ELSE 部分,则返回值为 NULL。 - -**例子** - -```javascript -obclient>select CASE 'b' when 'a' then 1 when 'b' then 2 END; -+----------------------------------------------+ -| CASE 'b' when 'a' then 1 when 'b' then 2 END | -+----------------------------------------------+ -| 2 | -+----------------------------------------------+ -1 row in set (0.01 sec) - -obclient>select CASE concat('a','b') when concat('ab','') then 'a' when 'b' then 'b' end; -+--------------------------------------------------------------------------+ -| CASE concat('a','b') when concat('ab','') then 'a' when 'b' then 'b' end | -+--------------------------------------------------------------------------+ -| a | -+--------------------------------------------------------------------------+ -1 row in set (0.01 sec) - -obclient>select case when 1>0 then 'true' else 'false' end; -+--------------------------------------------+ -| case when 1>0 then 'true' else 'false' end | -+--------------------------------------------+ -| true | -+--------------------------------------------+ -1 row in set (0.00 sec) -``` - - - - - -#### IF - -**声明** - -`IF(expr1,expr2,expr3)` - -**说明** - -如果 expr1 的值为 TRUE(即:expr1\<\>0 且 expr1\<\>NULL),返回结果为 expr2; 否则返回结果为 expr3。 - -IF() 返回结果可以是数值或字符串类型,它取决于使用的内容。 - -如果 expr2, expr3 中只有一个明确是 NULL,则 IF() 函数的结果类型为非 NULL 表达式的结果类型。 - -**例子** - -```javascript -obclient>select if(5>6, 'T','F'), if (5>6, 1, 0), if(null, 'True', 'False'), if(0, 'True', 'False')\G -* 1. row * - if(5>6, 'T','F'): F - if (5>6, 1, 0): 0 -if(null, 'True', 'False'): False - if(0, 'True', 'False'): False -1 row in set (0.01 sec) -``` - - - - - -#### IFNULL - -**声明** - -`IFNULL(expr1, expr2)` - -**说明** - -假设 expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL() 的返回值是数值或字符串,具体情况取决于其所使用的语境。 - -IF() 的默认返回值类型按照以下方式计算: - - -| 表达式 | 返回值 | -|--------------------------|-----| -| expr1 或 expr2 返回值为一个字符串。 | 字符串 | -| expr1 或 expr2 返回值为一个浮点值。 | 浮点 | -| expr1 或 expr2 返回值为一个整数。 | 整数 | - - - -假如 expr1 和 expr2 都是字符串,且其中任何一个字符串区分大小写,则返回结果是区分大小写。 - -**例子** - -```javascript -obclient>SELECT IFNULL('abc', null), IFNULL(NULL+1, NULL+2), IFNULL(1/0, 0/1); -+---------------------+------------------------+------------------+ -| IFNULL('abc', null) | IFNULL(NULL+1, NULL+2) | IFNULL(1/0, 0/1) | -+---------------------+------------------------+------------------+ -| abc | NULL | 0.0000 | -+---------------------+------------------------+------------------+ -1 row in set (0.01 sec) -``` - - - - - -#### NULLIF - -**声明** - -`NULLIF(expr1, expr2)` - -**说明** - -如果 expr1 = expr2 成立,那么返回值为 NULL,否则返回值为 expr1。这和 CASE WHEN - -*expr1 = expr2 THEN NULL ELSE expr1 END 相同。注意,如果参数不相等,则两次求得的值为 expr1。* - -**例子** - -```javascript -obclient>SELECT NULLIF('ABC', 123), NULLIF('123',123), NULLIF(NULL, 'abc'); -+--------------------+-------------------+---------------------+ -| NULLIF('ABC', 123) | NULLIF('123',123) | NULLIF(NULL, 'abc') | -+--------------------+-------------------+---------------------+ -| ABC | NULL | NULL | -+--------------------+-------------------+---------------------+ -1 row in set, 1 warning (0.01 sec) -``` - - - - - -#### ORA_DECODE - -**声明** - -`ora_decode(条件, 值1, 返回值1, 值2, 返回值2, ... 值n, 返回值n, 缺省值)` - -**说明** - -ORA_DECODE() 函数功能等同于 Oracle 的 DECODE() 函数功能。 - -该函数的含义如下: - -```javascript -IF 条件=值1 -THEN RETURN(返回值1) -ELSIF 条件=值2 -THEN RETURN(返回值2) -...... -ELSIF 条件=值n -THEN RETURN(返回值n) -ELSE RETURN(缺省值) -END IF -``` - - diff --git a/docs/docs-cn/10.sql-reference/3.functions/2.aggregate-functions.md b/docs/docs-cn/10.sql-reference/3.functions/2.aggregate-functions.md deleted file mode 100644 index 5745df8cc..000000000 --- a/docs/docs-cn/10.sql-reference/3.functions/2.aggregate-functions.md +++ /dev/null @@ -1,269 +0,0 @@ -聚集函数 -========================= - - - -聚合函数对一组值执行计算并返回单一的值。聚合函数忽略空值。聚合函数经常与SELECT语句的GROUP BY子句一同使用。 - -所有聚合函数都具有确定性。任何时候用一组给定的输入值调用它们时,都返回相同的值。 - -在OceanBase的聚合函数中,Value表达式只能出现一个。例如:不支持COUNT(c1, c2),仅支持COUNT(c1)。 - -AVG ------------- - -**声明** - -`AVG(([DISTINCT] expr)` - -**说明** - -返回指定组中的平均值,空值被忽略。DISTINCT选项可用于返回expr的不同值的平均值。若找不到匹配的行,则AVG()返回NULL。 - -**例子** - -```javascript -Oceanbase>select * from oceanbasetest; -+----+------+------+ -| id | ip | ip2 | -+----+------+------+ -| 1 | 4 | NULL | -| 3 | 3 | NULL | -| 4 | 3 | NULL | -+----+------+------+ -3 rows in set (0.01 sec) - -Oceanbase>select avg(ip2), avg(ip), avg(distinct(ip)) from oceanbasetest; -+----------+---------+-------------------+ -| avg(ip2) | avg(ip) | avg(distinct(ip)) | -+----------+---------+-------------------+ -| NULL | 3.3333 | 3.5000 | -+----------+---------+-------------------+ -1 row in set (0.00 sec) - -Oceanbase>select avg(distinct(ip)),avg(ip),avg(ip2) from oceanbasetest; -+-------------------+---------+----------+ -| avg(distinct(ip)) | avg(ip) | avg(ip2) | -+-------------------+---------+----------+ -| 3.5000 | 3.3333 | NULL | -+-------------------+---------+----------+ -1 row in set (0.00 sec) -``` - - - - - -COUNT --------------- - -**声明** - -`COUNT([DISTINCT] expr)` - -**说明** - -COUNT(\[DISTINCT\] expr )返回SELECT语句检索到的行中非NULL值的数目。若找不到匹配的行,则COUNT()返回0。DISTINCT选项可用于返回 expr 的不同值的数目。 - -COUNT(\*)的稍微不同之处在于,它返回检索行的数目,不论其是否包含NULL值。 - -**例子** - -```javascript -Oceanbase>select * from oceanbasetest; -+----+------+------+ -| id | ip | ip2 | -+----+------+------+ -| 1 | 4 | NULL | -| 3 | 3 | NULL | -| 4 | 3 | NULL | -+----+------+------+ -3 rows in set (0.00 sec) - -Oceanbase>select count(ip2), count(ip), count(distinct(ip)), count(*) from oceanbasetest; -+------------+-----------+---------------------+----------+ -| count(ip2) | count(ip) | count(distinct(ip)) | count(*) | -+------------+-----------+---------------------+----------+ -| 0 | 3 | 2 | 3 | -+------------+-----------+---------------------+----------+ -1 row in set (0.00 sec) -``` - - - - - -MAX ------------- - -**声明** - -`MAX([DISTINCT] expr)` - -**说明** - -返回指定数据中的最大值。 - -MAX()的取值可以是一个字符串参数;在这些情况下,它们返回最大字符串值。DISTINCT关键字可以被用来查找 expr的不同值的最大值,这产生的结果与省略DISTINCT 的结果相同。 - -假设表a有三行数据:id=1,num=10;id=2,num=20;id=3,num=30。 - -**例子** - -```javascript -Oceanbase>SELECT MAX(num) FROM a; -+-----------------+ -| MAX(num) | -+-----------------+ -| 30 | -+-----------------+ -1 row in set (0.00 sec) -``` - - - - - -MIN ------------- - -**声明** - -`MIN([DISTINCT] expr)` - -**说明** - -返回指定数据中的最小值。 - -MIN()的取值可以是一个字符串参数;在这些情况下,它们返回最小字符串值。DISTINCT关键字可以被用来查找expr 的不同值的最小值,然而,这产生的结果与省略DISTINCT 的结果相同。 - -假设表a有三行数据:id=1,num=10;id=2,num=20;id=3,num=30。 - -**例子** - -```javascript -Oceanbase>SELECT MIN(num) FROM a; -+----------------+ -| MIN(num) | -+----------------+ -| 10 | -+----------------+ -1 row in set (0.00 sec) -``` - - - - - -SUM ------------- - -**声明** - -`SUM([DISTINCT] expr)` - -**说明** - -返回 expr 的总数。若返回集合中无任何行,则 SUM() 返回NULL。DISTINCT关键字可用于求得 expr 不同值的总和。 - -若找不到匹配的行,则SUM()返回NULL。 - -**例子** - -```javascript -Oceanbase>select * from oceanbasetest; -+------+------+------+ -| id | ip | ip2 | -+------+------+------+ -| 1 | 4 | NULL | -| 3 | 3 | NULL | -| 4 | 3 | NULL | -+------+------+------+ -3 rows in set (0.00 sec) - -Oceanbase>select sum(ip2),sum(ip),sum(distinct(ip)) from oceanbasetest; -+----------+---------+-------------------+ -| sum(ip2) | sum(ip) | sum(distinct(ip)) | -+----------+---------+-------------------+ -| NULL | 10 | 7 | -+----------+---------+-------------------+ -1 row in set (0.00 sec) -``` - - - - - -GROUP_CONCAT ---------------------- - -**声明** - -`GROUP_CONCAT([DISTINCT] expr)` - -**说明** - -该函数返回带有来自一个组的连接的非NULL值的字符串结果。 - -```javascript -GROUP_CONCAT([DISTINCT] expr [,expr ...] - [ORDER BY {unsigned_integer | col_name | expr} - ASC | DESC] - [SEPARATOR str_val]) -``` - - - -**例子** - -```javascript -Oceanbase>select * from book; //表book(书编号,书名,出版社) -+--------+--------------------------------+-----------------------------+ -| bookid | bookname | publishname | -+--------+--------------------------------+-----------------------------+ -| 1 | git help | alibaba group publisher | -| 2 | MySQL性能优化 | 浙江大学图文出版社 | -| 3 | JAVA编程指南 | 机械工业出版社 | -| 3 | JAVA编程指南 | 机械工业出版社 | -| 4 | 大规模分布式存储系统 | 机械工业出版社 | -+--------+--------------------------------+-----------------------------+ -5 rows in set (0.00 sec) - -//查找书名信息 -Oceanbase>select group_concat(bookname) from book group by bookname; -+-----------------------------------+ -| group_concat(bookname) | -+-----------------------------------+ -| git help | -| JAVA编程指南,JAVA编程指南 | -| MySQL性能优化 | -| 大规模分布式存储系统 | -+-----------------------------------+ -4 rows in set (0.00 sec) - -//查找书名信息,书名唯一 -Oceanbase>select group_concat(distinct(bookname)) from book group by bookname; -+----------------------------------+ -| group_concat(distinct(bookname)) | -+----------------------------------+ -| git help | -| JAVA编程指南 | -| MySQL性能优化 | -| 大规模分布式存储系统 | -+----------------------------------+ -4 rows in set (0.01 sec) - -//查找书名和出版社信息,以书名分组,出版社信息降序排序显示 -Oceanbase>select bookname, group_concat(publishname order by publishname desc separator ';' ) from book group by bookname; -+--------------------------------+---------------------------------------------------------------------+ -| bookname | group_concat(publishname order by publishname desc separator ';' ) | -+--------------------------------+---------------------------------------------------------------------+ -| git help | alibaba group publisher | -| JAVA编程指南 | 机械工业出版社;机械工业出版社 | -| MySQL性能优化 | 浙江大学图文出版社 | -| 大规模分布式存储系统 | 机械工业出版社 | -+--------------------------------+---------------------------------------------------------------------+ -4 rows in set (0.00 sec) -``` - - diff --git a/docs/docs-cn/10.sql-reference/3.functions/3.analysis-functions.md b/docs/docs-cn/10.sql-reference/3.functions/3.analysis-functions.md deleted file mode 100644 index 0c2c10e8f..000000000 --- a/docs/docs-cn/10.sql-reference/3.functions/3.analysis-functions.md +++ /dev/null @@ -1,425 +0,0 @@ -分析函数 -========================= - - - -简介 ------------ - -**分析函数** (某些数据库下也叫做 **窗口函数** )与聚合函数类似,计算总是基于一组行的集合,不同的是,聚合函数一组只能返回一行,而分析函数每组可以返回多行,组内每一行都是基于窗口的逻辑计算的结果。分析函数可以显著优化需要 self-join 的查询。 - -### 分析函数语法 - -"窗口"也称为 FRAME,OceanBase 数据库同时支持 ROWS 与 RANGE 两种 FRAME 语义,前者是基于物理行偏移的窗口,后者则是基于逻辑值偏移的窗口。 - -分析函数语法如下: - -```unknow -analytic_function: - analytic_function([ arguments ]) OVER (analytic_clause) - -analytic_clause: - [ query_partition_clause ] [ order_by_clause [ windowing_clause ] ] - -query_partition_clause: - PARTITION BY { expr[, expr ]... | ( expr[, expr ]... ) } - -order_by_clause: - ORDER [ SIBLINGS ] BY{ expr | position | c_alias } [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ] [, { expr | position | c_alias } [ ASC | DESC ][ NULLS FIRST | NULLS LAST ]]... - -windowing_clause: - { ROWS | RANGE } { BETWEEN { UNBOUNDED PRECEDING | CURRENT ROW | value_expr { - PRECEDING | FOLLOWING } } AND{ UNBOUNDED FOLLOWING | CURRENT ROW | value_expr { - PRECEDING | FOLLOWING } } | { UNBOUNDED PRECEDING | CURRENT ROW| value_expr - PRECEDING}} -``` - - - -SUM/MIN/MAX/COUNT/AVG ------------------------------------------- - -**声明** - -SUM 的语法为:`SUM([ DISTINCT | ALL ] expr) [ OVER (analytic_clause) ]` - -MIN 的语法为:`MIN([ DISTINCT | ALL ] expr) [ OVER (analytic_clause) ]` - -MAX 的语法为:`MAX([ DISTINCT | ALL ] expr) [ OVER (analytic_clause) ]` - -COUNT 的语法为:`COUNT({ * | [ DISTINCT | ALL ] expr }) [ OVER (analytic_clause) ]` - -AVG 的语法为:`AVG([ DISTINCT | ALL ] expr) [ OVER(analytic_clause) ]` - -**说明** - -以上分析函数都有对应的聚合函数,其中,`SUM` 返回 `expr` 的和,`MIN`/`MAX` 返回 `expr` 的最小值/最大值,`COUNT` 返回窗口中查询的行数,`AVG` 返回 `expr` 的平均值。 - -对于 `COUNT` 函数,如果指定了 `expr`,即返回 `expr` 不为 NULL 的统计个数,如果指定 `COUNT(*)` 返回所有行的统计数目。 - -**例子** - -```javascript -obclient> create table exployees(last_name char(10), salary decimal, job_id char(32)); -Query OK, 0 rows affected (0.17 sec) - -obclient> insert into exployees values('jim', 2000, 'cleaner'); -Query OK, 1 row affected (0.03 sec) - -obclient> insert into exployees values('mike', 12000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> insert into exployees values('lily', 13000, 'engineering'); -Query OK, 1 row affected (0.01 sec) - -obclient> insert into exployees values('tom', 11000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient>select last_name, sum(salary) over(partition by job_id) totol_s, min(salary) over(partition by job_id) min_s, max(salary) over(partition by job_id) max_s, count(*) over(partition by job_id) count_s from exployees; -+-----------+---------+-------+-------+---------+ -| last_name | totol_s | min_s | max_s | count_s | -+-----------+---------+-------+-------+---------+ -| jim | 2000 | 2000 | 2000 | 1 | -| mike | 36000 | 11000 | 13000 | 3 | -| lily | 36000 | 11000 | 13000 | 3 | -| tom | 36000 | 11000 | 13000 | 3 | -+-----------+---------+-------+-------+---------+ -4 rows in set (0.01 sec) -``` - - - -NTH_VALUE/FIRST_VALUE/LAST_VALUE ------------------------------------------------------ - -**声明** - -NTH_VALUE 的语法为:`NTH_VALUE (measure_expr, n) [ FROM { FIRST | LAST } ] [ { RESPECT | IGNORE } NULLS ] OVER (analytic_clause)` - -FIRST_VALUE 的语法为:`FIRST_VALUE { (expr) [ {RESPECT | IGNORE} NULLS ] | (expr [ {RESPECT | IGNORE} NULLS ])} OVER (analytic_clause)` - -LAST_VALUE 的语法为:`LAST_VALUE { (expr) [ {RESPECT | IGNORE} NULLS ] | (expr [ {RESPECT | IGNORE} NULLS ])} OVER (analytic_clause)` - -**说明** - -NTH_VALUE 函数表示第几个值,方向由 `[ FROM { FIRST | LAST } ]` 确定,默认为 `FROM FIRST`,含有是否忽略 NULL 值的标志。其窗口为统一的 `analytic_clause`。这里 `n` 应该是正数,如果 `n` 是 NULL,函数将返回错误;如果 `n` 大于窗口内所有的行数,此函数将返回 NULL。 - -FIRST_VALUE 和 LAST_VALUE 表示从第一个开始计数或者是从最后一个开始计数。 - -**例子** - -```javascript -obclient> create table exployees(last_name char(10), salary decimal, job_id char(32)); -Query OK, 0 rows affected (0.08 sec) - -obclient> insert into exployees values('jim', 2000, 'cleaner'); -Query OK, 1 row affected (0.11 sec) - -obclient> insert into exployees values('mike', 12000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> insert into exployees values('lily', 13000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> insert into exployees values('tom', 11000, 'engineering'); -Query OK, 1 row affected (0.01 sec) - -obclient> select last_name, first_value(salary) over(partition by job_id) totol_s, last_value(salary) over(partition by job_id) min_s, max(salary) over(partition by job_id) max_s from exployees; -+-----------+---------+-------+-------+ -| last_name | totol_s | min_s | max_s | -+-----------+---------+-------+-------+ -| jim | 2000 | 2000 | 2000 | -| mike | 12000 | 11000 | 13000 | -| lily | 12000 | 11000 | 13000 | -| tom | 12000 | 11000 | 13000 | -+-----------+---------+-------+-------+ -4 rows in set (0.01 sec) -``` - - - -LEAD/LAG ------------------------------ - -**声明** - -LEAD 的语法为:`LEAD { ( value_expr [, offset [, default]]) [ { RESPECT | IGNORE } NULLS ] | ( value_expr [ { RESPECT | IGNORE } NULLS ] [, offset [, default]] )} OVER ([ query_partition_clause ] order_by_clause)` - -LAG 的语法为:`LAG { ( value_expr [, offset [, default]]) [ { RESPECT | IGNORE } NULLS ] | ( value_expr [ { RESPECT | IGNORE } NULLS ] [, offset [, default]] )} OVER ([ query_partition_clause ] order_by_clause)` - -**说明** - -LEAD 和 LAG 含义为可以在一次查询中取出当前行的同一个字段的前面或后面第 N 行的数据,这种操作可以使用相同表的自连接来实现,但 LEAD/LAG 窗口函数有更高的效率。 - -其中,`value_expr` 是要做比对的字段,`offset` 是 `value_expr` 的偏移量,`default` 参数的默认值为 NULL,即如果在 LEAD/LAG 没有显示的设置 `default` 值的情况下,返回值为 NULL。例如:对 LAG 来说,当前行为 4,`offset` 值为 6,这时候所要找的数据就是第 -2 行,不存在此行即返回 `default` 的值。 - -`[ { RESPECT | IGNORE } NULLS ]` 的语法为是否考虑 NULL 值,默认为 `RESPECT`,考虑 NULL 值。 - -注意 LEAD/LAG 两个函数后必须有 `order_by_clause`,数据应该在一个列上排序之后才能有前多少行后多少行的概念。`query_partition_clause` 是可选的,如果没有 `query_partition_clause`,就是全局的数据。 - -**例子** - -```unknow -obclient> create table exployees(last_name char(10), salary decimal, job_id char(32)); -Query OK, 0 rows affected (0.08 sec) - -obclient> insert into exployees values('jim', 2000, 'cleaner'); -Query OK, 1 row affected (0.11 sec) - -obclient> insert into exployees values('mike', 12000, 'engineering'); -Query OK, 1 row affected (0.01 sec) - -obclient> insert into exployees values('lily', 13000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> insert into exployees values('tom', 11000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> select last_name, lead(salary) over(order by salary) lead, lag(salary) over(order by salary) lag from exployees; -+-----------+-------+-------+ -| last_name | lead | lag | -+-----------+-------+-------+ -| jim | 11000 | NULL | -| tom | 12000 | 2000 | -| mike | 13000 | 11000 | -| lily | NULL | 12000 | -+-----------+-------+-------+ -4 rows in set (0.01 sec) -``` - - - -STDDEV/VARIANCE/STDDEV_SAMP/STDDEV_POP ------------------------------------------------------------ - -**声明** - -VARIANCE 的语法为:`VARIANCE([ DISTINCT | ALL ] expr) [ OVER (analytic_clause) ]` - -STDDEV 的语法为:`STDDEV([ DISTINCT | ALL ] expr) [ OVER (analytic_clause) ]` - -STDDEV_SAMP 的语法为:`STDDEV_SAMP(expr) [ OVER (analytic_clause) ]` - -STDDEV_POP 的语法为:`STDDEV_POP(expr) [ OVER (analytic_clause) ]` - -**说明** - -VARIANCE 返回的是 `expr` 的方差,`expr` 可能是数值类型或者可以转换成数值类型的类型,方差的类型和输入的值的类型相同。 - -STDDEV 返回的是 `expr` 的标准差,参数类型方面和 VARIANCE 的相同。 - -STDDEV_SAMP 返回的是样本标准差。 - -STDDEV_POP 返回的是总体标准差。 - -**例子** - -```javascript -obclient> create table exployees(last_name char(10), salary decimal, job_id char(32)); -Query OK, 0 rows affected (0.08 sec) - -obclient> insert into exployees values('jim', 2000, 'cleaner'); -Query OK, 1 row affected (0.11 sec) - -obclient> insert into exployees values('mike', 12000, 'engineering'); -Query OK, 1 row affected (0.01 sec) - -obclient> insert into exployees values('lily', 13000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> insert into exployees values('tom', 11000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> select last_name, stddev(salary) over(order by salary) std, variance(salary) over(order by salary) var, stddev_pop(salary) over() std_pop, stddev_samp(salary) over() from exployees; -+-----------+-------------------+--------------------+-------------------+----------------------------+ -| last_name | std | var | std_pop | stddev_samp(salary) over() | -+-----------+-------------------+--------------------+-------------------+----------------------------+ -| jim | 0 | 0 | 4387.482193696061 | 5066.228051190222 | -| tom | 4500 | 20250000 | 4387.482193696061 | 5066.228051190222 | -| mike | 4496.912521077347 | 20222222.222222224 | 4387.482193696061 | 5066.228051190222 | -| lily | 4387.482193696061 | 19250000 | 4387.482193696061 | 5066.228051190222 | -+-----------+-------------------+--------------------+-------------------+----------------------------+ -4 rows in set (0.00 sec) -``` - - - -NTILE --------------------------- - -**声明** - -`NTILE(expr) OVER ([ query_partition_clause ] order_by_clause)` - -**说明** - -NTILE 函数将分区中已经排序的行划分为大小尽可能相同的指定数量的分组,并返回给每行组号。`expr` 如果是 NULL,则返回 NULL。 - -例子 - -```javascript -obclient> create table exployees(last_name char(10), salary decimal, job_id char(32)); -Query OK, 0 rows affected (0.08 sec) - -obclient> insert into exployees values('jim', 2000, 'cleaner'); -Query OK, 1 row affected (0.11 sec) - -obclient> insert into exployees values('mike', 12000, 'engineering'); -Query OK, 1 row affected (0.01 sec) - -obclient> insert into exployees values('lily', 13000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> insert into exployees values('tom', 11000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> select last_name, ntile(10) over(partition by job_id order by salary) ntl from exployees; -+-----------+------+ -| last_name | ntl | -+-----------+------+ -| jim | 1 | -| tom | 1 | -| mike | 2 | -| lily | 3 | -+-----------+------+ -4 rows in set (0.01 sec) -``` - - - -ROW_NUMBER -------------------------------- - -声明 - -`ROW_NUMBER( ) OVER ([ query_partition_clause ] order_by_clause)` - -说明 - -ROW_NUMBER 函数按照 `order_by_clause` 子句中指定的行的顺序,为每一行分配一个编号。 - -例子 - -```javascript -obclient> create table exployees(last_name char(10), salary decimal, job_id char(32)); -Query OK, 0 rows affected (0.08 sec) - -obclient> insert into exployees values('jim', 2000, 'cleaner'); -Query OK, 1 row affected (0.11 sec) - -obclient> insert into exployees values('mike', 12000, 'engineering'); -Query OK, 1 row affected (0.01 sec) - -obclient> insert into exployees values('lily', 13000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> insert into exployees values('tom', 11000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> select last_name, row_number() over(partition by job_id order by salary) ntl from exployees; -+-----------+------+ -| last_name | ntl | -+-----------+------+ -| jim | 1 | -| tom | 1 | -| mike | 2 | -| lily | 3 | -+-----------+------+ -4 rows in set (0.00 sec) -``` - - - -RANK/DENSE_RANK/PERCENT_RANK -------------------------------------------------- - -**声** **明** - -RANK 的语法为:`RANK( ) OVER ([ query_partition_clause ] order_by_clause)` - -DENSE_RANK 的语法为:`DENSE_RANK( ) OVER([ query_partition_clause ] order_by_clause)` - -PERCENT_RANK 的语法为:`PERCENT_RANK( ) OVER ([ query_partition_clause ] order_by_clause)` - -**说明** - -RANK 计算每一行数据在某列上的排序,该列由 `order_by_clause` 中的列决定。例如,按照 salary 排序可以看出员工的收入排名。 - -DENSE_RANK 的语义基本和 RANK 函数相同,但是 RANK 的排序中间会有'跳过',但是 DENSE_RANK 中不会有。 - -PERCENT_RANK 的语义基本和 RANK 函数相同,但是 PERCENT_RANK 排序的结果是百分比,计算的是给定行的百分比。 - -**例子** - -```unknow -obclient> create table exployees(last_name char(10), salary decimal, job_id char(32)); -Query OK, 0 rows affected (0.10 sec) - -obclient> insert into exployees values('jim', 2000, 'cleaner'); -Query OK, 1 row affected (0.11 sec) - -obclient> insert into exployees values('mike', 12000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> insert into exployees values('lily', 13000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> insert into exployees values('tom', 11000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> select last_name, rank() over(partition by job_id order by salary) rank, dense_rank() over(partition by job_id order by salary) dense_rank, percent_rank() over(partition by job_id order by salary) percent_rank from exployees; -+-----------+------+------------+----------------------------------+ -| last_name | rank | dense_rank | percent_rank | -+-----------+------+------------+----------------------------------+ -| jim | 1 | 1 | 0.000000000000000000000000000000 | -| tom | 1 | 1 | 0.000000000000000000000000000000 | -| mike | 2 | 2 | 0.500000000000000000000000000000 | -| lily | 3 | 3 | 1.000000000000000000000000000000 | -+-----------+------+------------+----------------------------------+ -4 rows in set (0.01 sec) -``` - - - -CUME_DIST ------------------------------- - -**声明** - -`CUME_DIST() OVER ([ query_partition_clause ] order_by_clause)` - -**说明** - -该函数计算一个值的分布,返回值为大于 0 小于等于 1 的值。作为一个分析函数,CUME_DIST 在升序情况下计算比当前行的特定列小的数据的占比。例如如下例子中,按 job_id 分组并在薪水排序的情况下,每行数据在窗口内的排序列上的占比。 - -**例子** - -```unknow -obclient> create table exployees(last_name char(10), salary decimal, job_id char(32)); -Query OK, 0 rows affected (0.10 sec) - -obclient> insert into exployees values('jim', 2000, 'cleaner'); -Query OK, 1 row affected (0.11 sec) - -obclient> insert into exployees values('mike', 12000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> insert into exployees values('lily', 13000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> insert into exployees values('tom', 11000, 'engineering'); -Query OK, 1 row affected (0.00 sec) - -obclient> select last_name, cume_dist() over(partition by job_id order by salary) cume_dist from exployees; -+-----------+----------------------------------+ -| last_name | cume_dist | -+-----------+----------------------------------+ -| jim | 1.000000000000000000000000000000 | -| tom | 0.333333333333333333333333333333 | -| mike | 0.666666666666666666666666666667 | -| lily | 1.000000000000000000000000000000 | -+-----------+----------------------------------+ -4 rows in set (0.01 sec) -``` - - diff --git a/docs/docs-cn/10.sql-reference/3.functions/4.information-functions.md b/docs/docs-cn/10.sql-reference/3.functions/4.information-functions.md deleted file mode 100644 index 12ed6267f..000000000 --- a/docs/docs-cn/10.sql-reference/3.functions/4.information-functions.md +++ /dev/null @@ -1,94 +0,0 @@ -信息函数 -========================= - - - -FOUND_ROWS -------------------- - - - -**声明** - -`found_rows()` - -**说明** - -一个SELECT语句可能包含一个LIMIT子句,用来限制数据库服务器端返回客户端的行数。在某些情况下,我们需要不再次运行该语句而得知在没有LIMIT时到底该语句返回了多少行。我们可以在SELECT语句中选择使用SQL_CALC_FOUND_ROWS, 然后调用FOUND_ROW()函数,获取该语句在没有LIMIT时返回的行数。 - -例如: - -```javascript -mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name - -> WHERE id > 100 LIMIT 10; -mysql> SELECT FOUND_ROWS(); -``` - - - -第二个SELECT语句返回一个数字,表示在没有LIMIT子句的情况下,第一个SELECT语句返回了多少行。(若上述的SELECT语句在不使用SQL_CALC_FOUND_ROWS选项时,使用LIMIT和不使用LIMIT时候, FOUND_ROWS()可能会返回不同的结果)。 - -通过FOUND_ROWS()函数返回的有效行数是瞬时的,并且不能越过SELECT SQL_CALC_FOUND_ROWS语句后面的语句。如果你后续还需要用到这个值,就需要将其保存。 - -例如: - -```javascript -mysql> SELECT SQL_CALC_FOUND_ROWS * FROM ... ; -mysql> SET @rows = FOUND_ROWS(); -``` - - - -假如你正在使用SQL_CALC_FOUND_ROWS,系统必须计算出在全部结果集合中有多少行。尽管如此,这也还是比不用LIMIT而再次运行查询要快,原因是结果集合不需要被发送到客户端。 - -SQL_CALC_FOUND_ROWS和FOUND_ROWS()在当你希望限制一个查询返回的行数时是很有用的,同时还能不需要再次运行查询就可以确定全部结果集合中的行数。一个 **例子** 就是提供页式显示的Web脚本,该显示包含显示搜索结果其他部分的页的链接。使用FOUND_ROWS()使你确定剩下的结果需要多少其他的页。 - -SQL_CALC_FOUND_ROWS 和 FOUND_ROWS() 的应用对于UNION 查询比对于简单SELECT 语句更为复杂,原因是在UNION 中,LIMIT 可能会出现在多个位置。它可能适用于UNION中的独立的SELECT语句,或是整个的UNION 结果。 - -SQL_CALC_FOUND_ROWS对于 UNION的期望结果是它返回在没有全局的LIMIT的条件下而应返回的行数。SQL_CALC_FOUND_ROWS 和UNION 一同使用的条件是: - -* SQL_CALC_FOUND_ROWS 关键词必须出现在UNION的第一个 SELECT中。 - - - - - - -* FOUND_ROWS()的值只有在使用 UNION ALL时才是精确的。若使用不带ALL的UNION,则会发生两次删除,而FOUND_ROWS() 的指只需近似的。 - - - - - - -* 假若UNION 中没有出现LIMIT ,则SQL_CALC_FOUND_ROWS 被忽略,返回临时表中的创建的用来处理UNION的行数。 - - - - - - -LAST_INSERT_ID() -------------------------- - -**声明** - -`last_insert_id()` - -**说明** - -返回本session最后一次插入的自增字段值,如最近一条insert插入多条记录,LAST_INSERT_ID()返回第一条记录的自增字段值。 - -**例子** - -```javascript -mysql>select LAST_INSERT_ID(); -+------------------+ -| LAST_INSERT_ID() | -+------------------+ -| 5 | -+------------------+ -1 row in set (0.00 sec) -``` - - diff --git a/docs/docs-cn/10.sql-reference/3.functions/5.other-functions.md b/docs/docs-cn/10.sql-reference/3.functions/5.other-functions.md deleted file mode 100644 index 2a156b170..000000000 --- a/docs/docs-cn/10.sql-reference/3.functions/5.other-functions.md +++ /dev/null @@ -1,185 +0,0 @@ -其它函数 -========================= - - - -COALESCE ------------------ - -**声明** - -`COALESCE(expr, expr, expr,...)` - -**说明** - -依次参考各参数表达式,遇到非NULL值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。 - -所有表达式必须是相同类型,或者可以隐性转换为相同的类型。 - -**例子** - -```javascript -Oceanbase>SELECT COALESCE(NULL,NULL,3,4,5), COALESCE(NULL,NULL,NULL); -+---------------------------+--------------------------+ -| COALESCE(NULL,NULL,3,4,5) | COALESCE(NULL,NULL,NULL) | -+---------------------------+--------------------------+ -| 3 | NULL | -+---------------------------+--------------------------+ -1 row in set (0.00 sec) -``` - - - - - -NVL ------------- - -**声明** - -`NVL(str1,replace_with)` - -**说明** - -如果 str1 为 NULL,则替换成 replace_with。 - -任何时候给它一个空值,它都返回一个你所选择的值。这种能够自动替换空值的能力有助于提供看上去更为完善的输出。其中 str1 一般是一个列名。replace_with 可以是任何值:直接值(即硬编码)、对其他列的引用或者表达式。 - -**例子** - -```javascript -Oceanbase>SELECT NVL(NULL, 0), NVL(NULL, 'a'); -+--------------+----------------+ -| NVL(NULL, 0) | NVL(NULL, 'a') | -+--------------+----------------+ -| 0 | a | -+--------------+----------------+ -1 row in set (0.00 sec) -``` - - - - - -SLEEP --------------- - -**声明** - -`SLEEP(duration)` - -**说明** - -SLEEP函数根据duration指定的数值暂停相应的时间(单位为秒),并在暂停结束后返回0。 - -如果SLEEP单独执行且没有被中断,返回结果0; - -如果SLEEP单独执行期间被中断,返回结果1,但不会返回任何错误码; - -如果SLEEP是查询的一部分,且暂停期间被中断,将会返回错误码1317; - -**例子** - -```javascript -mysql> SELECT SLEEP(1000); -+------------------+ -| SLEEP(1000) | -+------------------+ -| 0 | -+------------------+ - -mysql> SELECT SLEEP(1000); -+------------------+ -| SLEEP(1000) | -+------------------+ -| 1 | -+------------------+ - -mysql> SELECT 1 FROM t1 WHERE SLEEP(1000); -ERROR 1317 (70100): Query execution was interrupted -``` - - - - - -全文查找函数 ---------------- - -**声明** - -```javascript -MATCH (col1,col2,...) AGAINST (expr [search_modifier]) -search_modifier: -{ - IN NATURAL LANGUAGE MODE - | IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION - | IN BOOLEAN MODE - | WITH QUERY EXPANSION -} -``` - - - -**说明** - -OceanBase1.0已经支持使用全文查找函数来对全文索引进行查找,并且使用全文查找函数有以下要求: - -* 全文查找函数MATCH(col1,col2,...)中指定的列上必须有全文索引(OB目前只支持FULLTEXT CTXCAT索引) - - - - - - - - -* 在FULLTEXT CTXCAT索引中,全文查找函数MATCH(col1,col2,...)中指定的列必须完整的覆盖索引中的全文列,例如FULLTEXT INDEX(c1, c2, c3), CTXCAT(c2, c3) 必须是 MATCH(c2,c3) 才能完全的匹配 - - - - - - - - -* 全文查找函数可以通过上述的关键字来指定查找模式(OB目前只支持NATURAL LANGUAGE MODE和BOOLEAN MODE两种模式),缺省是NATURAL LANGUAGE MODE - - - - - - -默认情况下或者指定IN NATURAL LANGUAGE MODE标示符,MATCH...AGAINST将使用NATURAL LANGUAGE模式来进行全文查找,在NATURAL LANGUAGE模式下,AGAINST接受一个查找字符串,并且按照字符集的比较方式在索引中进行查找,对于表中的每一行数据,MATCH的返回值代表了查找字符串和行中数据的相关度,也就是查找字符串中的文本和数据表中的文本相似度。在默认情况下,OB创建的字符串相关的列是大小写不敏感的,因此,全文查找的关键字是不区分大小写的。如果需要区分大小写,可以为创建全文索引的列指定大小写敏感的数据类型,例如UTF8MB4_BIN。如果MATCH...AGAINST函数被用在WHERE子句中,MATCH被用来过滤跟关键字相关度不匹配的数据,MATCH...AGAINST=0表示没有和关键字相似的数据,目前OB只支持MATCH...AGAINST=0和MATCH...AGAINST\>0两种形式,即完全不相关或者有任意一个关键字相关即可。AGAINST参数中可以接受多个关键字,关键字之间使用' '隔开,表示OR关系,只要有任意一个关键字匹配,即认为符合查找的要求。 - -OB可以通过使用IN BOOLEAN MODE关键字来进行BOOLEAN模式的全文查找。在这种模式中,关键字前面一些特殊的操作符含有特殊的语义。例如: - -```javascript -SELECT * FROM t1 WHERE MATCH (a, b) AGAINST ('菊花 茉莉花' IN BOOLEAN MODE); -+----+------------+------------+ -| id | a | b | -+----+------------+------------+ -| 1 | 支付宝 | 菊花茶 | -| 2 | 淘宝 | 茉莉花 | -+----+------------+------------+ - -SELECT * FROM t1 WHERE MATCH (a, b) - AGAINST ('+菊花 -茉莉花' IN BOOLEAN MODE); -+----+------------+------------+ -| id | a | b | -+----+------------+------------+ -| 1 | 支付宝 | 菊花茶 | -+----+------------+------------+ -``` - - - -OB的BOOLEAN全文查找目前支持以下几种操作符:+ 代表AND关系,表示查找结果中同时要包含被+修饰的关键字- 代表NOT关系,表示查找结果中不能包含被-修饰的关键字。 - -```javascript -(no operator) 代表OR关系,表示查找结果中只要包含任意一个没有操作符修饰的关键字即可 -``` - - - -在BOOLEAN全文查找模式中有以下几点需要注意:操作符必须位于关键字的前面,关键字后面的操作符没有修饰意义,例如+菊花是有意义的操作符修饰,而菊花+中的操作符没有修饰意义。操作符和关键字必须紧密相连,不能被其它符号分割开,否者没有修饰意义,例如:+ 菊花前面的操作符没有修饰意义。 diff --git a/docs/docs-cn/10.sql-reference/4.queries-and-subqueries/1.overview-8.md b/docs/docs-cn/10.sql-reference/4.queries-and-subqueries/1.overview-8.md deleted file mode 100644 index 4fdf29622..000000000 --- a/docs/docs-cn/10.sql-reference/4.queries-and-subqueries/1.overview-8.md +++ /dev/null @@ -1,60 +0,0 @@ -概述 -======================= - - - -查询(SQL)是指数据库中用来获取数据的方式,它可搭配条件限制的子句(如where),排列顺序的子句(如order by)等语句来获取查询结果。子查询是指嵌套在一个上层查询中的查询。上层的查询一般被称为父查询或外层查询。子查询的结果作为输入传递回"父查询"或"外部查询"。父查询将这个值结合到计算中,以便确定最后的输出。SQL语言允许多层嵌套查询,即一个子查询中还可以嵌套其他子查询。同时,子查询可以出现在SQL语句中的各种子句中,比如select语句,from语句,where语句等。 - -子查询 ------------- - -在数据库中,子查询可以分成有依赖关系的子查询和没有依赖关系的子查询。有依赖关系的子查询是指该子查询的执行依赖了外部查询的'变量',所以这种子查询通常会被计算多次。没有依赖关系的子查询是指该子查询的执行不依赖外部查询的'变量', 这种子查询一般只需要计算一次。下图分别展示了一个没有依赖关系的子查询和一个有依赖关系的子查询。 - -```javascript -OceanBase (root@test)> create table t1(a int primary key, b int, c int); -Query OK, 0 rows affected (0.70 sec) -OceanBase (root@test)> create table t2(a int primary key, b int, c int); -Query OK, 0 rows affected (0.92 sec) --- 没有依赖关系的子查询 -OceanBase (root@test)> select * from t1 where t1.a in (select t2.a from t2); -Empty set (0.22 sec) --- 有依赖关系的子查询,子查询中用到了外层查询变量t1.b -OceanBase (root@test)> select * from t1 where t1.a in (select t2.a from t2 where t2.b = t1.b); -Empty set (0.05 sec) -``` - - - - - -子查询展开(subquery unnesting) ----------------------------------- - -子查询展开是数据库的一种优化策略,它把一些子查询置于外层的父查询中,其实质是把某些子查询转化为等价的多表连接操作。这种策略带来的一个明显的好处就是,有写访问路径,连接方法和连接顺序可能被有效的利用,使得查询语句的层次尽可能的减少。下图展示了一个子查询展开的例子,既子查询被改写成了连接语句。 - -```javascript -OceanBase (root@test)> create table t1(a int primary key, b int, c int); -Query OK, 0 rows affected (0.70 sec) -OceanBase (root@test)> create table t2(a int primary key, b int, c int); -Query OK, 0 rows affected (0.92 sec) ---- 有依赖关系的子查询被展开改写成连接 -OceanBase (root@test)> explain select * from t1 where t1.a in (select t2.b from t2 where t2.c = t1.c); -| ======================================= -|ID|OPERATOR |NAME|EST. ROWS|COST| ---------------------------------------- -|0 |HASH SEMI JOIN| |1 |2924| -|1 | TABLE SCAN |t1 |1000 |455 | -|2 | TABLE SCAN |t2 |1000 |455 | -======================================= - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c]), filter(nil), - equal_conds([t1.a = t2.b], [t2.c = t1.c]), other_conds(nil) - 1 - output([t1.c], [t1.a], [t1.b]), filter(nil), - access([t1.c], [t1.a], [t1.b]), partitions(p0) - 2 - output([t2.c], [t2.b]), filter(nil), - access([t2.c], [t2.b]), partitions(p0) -``` - - diff --git a/docs/docs-cn/10.sql-reference/4.queries-and-subqueries/2.connection.md b/docs/docs-cn/10.sql-reference/4.queries-and-subqueries/2.connection.md deleted file mode 100644 index ceaa37d7b..000000000 --- a/docs/docs-cn/10.sql-reference/4.queries-and-subqueries/2.connection.md +++ /dev/null @@ -1,103 +0,0 @@ -连接 -======================= - - - -数据库中的连接语句用于将数据库中的两个或多个表根据连接条件组合起来。由"连接"生成的集合, 可以被保存为表, 或者当成表来使用。连接语句的含义是把两张表的属性通过它们的值组合在一起。数据库中的连接类型一般包括inner join,outer join,semi-join和anti-join。其中Semi-join和Anti-join都是通过子查询改写得到,SQL本身并没有表述Anti-join和Semi-join的语法 - -连接条件 -------------- - -连接条件可以分为等值连接(比如t1.a = t2.b)和非等值连接(t1.a \< t2.b)。相比于非等值连接条件, 等值连接条件的一个好处是允许数据库中使用高效的连接算法,比如Hash Join和Merge-Sort join。 - -Self-join ------------------- - -Self-Join是指跟跟自己表做连接的join。下图展示了一个self join的例子。 - -```javascript -OceanBase (root@test)> create table t1(a int primary key, b int, c int); -Query OK, 0 rows affected (0.70 sec) ----一个self join的例子 -OceanBase (root@test)> select * from t1 as ta, t1 as tb where ta.b = tb.b -``` - - - - - -内连接(inner join) ------------------------- - -Inner Join(内连接)是数据库中最基本的连接操作。内连接基于连接条件将两张表(如 A 和 B)的列组合在一起,产生新的结果表。查询会将 A 表的每一行和 B 表的每一行进行比较,并找出满足连接条件的组合。当连接条件被满足,A 和 B 中匹配的行会按列组合(并排组合)成结果集中的一行。连接产生的结果集,可以定义为首先对两张表做笛卡尔积(交叉连接) -- 将 A 中的每一行和 B 中的每一行组合,然后返回满足连接条件的记录。 - -外连接(outer join) ------------------------- - -Outer Join(外连接)并不要求连接的两表的每一条记录在对方表中都一条匹配的记录。要保留所有记录(甚至这条记录没有匹配的记录也要保留)的表称为保留表 **。** 外连接可依据连接表保留左表, 右表或全部表的行而进一步分为左外连接, 右外连接和全连接。其中左外连接中左表的一行未在右表中找到的时候,就在右表自动填充NULL。右外连接中右表的一行未在左表中找到的时候,就在左表自动填充NULL。全连接就是左表或者右表找不匹配行的时候都会自动填充。 - -Semi连接 (semi-join) ---------------------------- - -当A表和B表进行left/right semi-join的时候,它只返回A/B表中所有能够在B/A中找到匹配的行。Semi-join只能通过子查询展开得到,如下图所示。 - -```javascript -OceanBase (root@test)> create table t1(a int primary key, b int, c int); -Query OK, 0 rows affected (0.70 sec) -OceanBase (root@test)> create table t2(a int primary key, b int, c int); -Query OK, 0 rows affected (0.92 sec) ---- 有依赖关系的子查询被展开改写成Semi-join -OceanBase (root@test)> explain select * from t1 where t1.a in (select t2.b from t2 where t2.c = t1.c); -| ======================================= -|ID|OPERATOR |NAME|EST. ROWS|COST| ---------------------------------------- -|0 |HASH SEMI JOIN| |1 |2924| -|1 | TABLE SCAN |t1 |1000 |455 | -|2 | TABLE SCAN |t2 |1000 |455 | -======================================= - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c]), filter(nil), - equal_conds([t1.a = t2.b], [t2.c = t1.c]), other_conds(nil) - 1 - output([t1.c], [t1.a], [t1.b]), filter(nil), - access([t1.c], [t1.a], [t1.b]), partitions(p0) - 2 - output([t2.c], [t2.b]), filter(nil), - access([t2.c], [t2.b]), partitions(p0) -``` - - - - - -Anti-连接(anti-join) ---------------------------- - -当A表和B表进行left/right anti-join的时候,它只返回A/B中所有不能再B/A中找到匹配的行。类似于Semi-join, anti-join也只能通过子查询展开得到,如下图所示。 - -```javascript -OceanBase (root@test)> create table t1(a int primary key, b int, c int); -Query OK, 0 rows affected (0.70 sec) -OceanBase (root@test)> create table t2(a int primary key, b int, c int); -Query OK, 0 rows affected (0.92 sec) ----有依赖关系的子查询被改写成Anti-join -OceanBase (root@test)> explain select * from t1 where t1.a not in (select t2.b from t2 where t2.c = t1.c); -| ======================================= -|ID|OPERATOR |NAME|EST. ROWS|COST| ---------------------------------------- -|0 |HASH ANTI JOIN| |995 |3262| -|1 | TABLE SCAN |t1 |1000 |455 | -|2 | TABLE SCAN |t2 |1000 |455 | -======================================= - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c]), filter(nil), - equal_conds([t2.c = t1.c]), other_conds([t1.a = t2.b OR (T_OP_IS, t2.b, NULL, 0)]) - 1 - output([t1.c], [t1.a], [t1.b]), filter(nil), - access([t1.c], [t1.a], [t1.b]), partitions(p0) - 2 - output([t2.c], [t2.b]), filter(nil), - access([t2.c], [t2.b]), partitions(p0) -``` - - diff --git a/docs/docs-cn/10.sql-reference/4.queries-and-subqueries/3.collection.md b/docs/docs-cn/10.sql-reference/4.queries-and-subqueries/3.collection.md deleted file mode 100644 index b8695eba5..000000000 --- a/docs/docs-cn/10.sql-reference/4.queries-and-subqueries/3.collection.md +++ /dev/null @@ -1,165 +0,0 @@ -集合 -======================= - - - -数据库中的集合操作可以把多个查询的结果组合成一个结果集。集合操作主要包含: - -* UNION - - - - - - -* INTERSECT - - - - - - -* EXCEPT/MINUS在OceanBase中,我们同时支持EXCEPT与MINUS,这两者的语义是相同的。这里需要注意的是参加集合操作的各查询结果的列数必须相同,对应的数据类型也必须兼容。对与UNION来说用户可以指定UNION的属性为ALL和DISTINCT/UNIQUE。分别代表集合可重复,和集合不可重复。而其它几种集合操作是不能指定ALL属性的(它们只有DISTINCT属性)。所有的集合操作默认的属性是DISTINCT。在Oceanbase中,集合操作中可以指定order by和 limit子句,但是不允许其他子句的出现,如下图所示 - - - - -```javascript -OceanBase (root@test)> create table t1(a int primary key, b int, c int); -Query OK, 0 rows affected (0.16 sec) -OceanBase (root@test)> create table t2(a int primary key, b int, c int); -Query OK, 0 rows affected (0.10 sec) ---支持union语句中出现order by和limit子句 -OceanBase (root@test)> (select * from t1 union all select * from t2) order by a limit 10; -Empty set (0.02 sec) ---不支持union语句中出现除order by和limit子句的其他子句,比如group by -OceanBase (root@test)> OceanBase (root@test)> (select * from t1 union all select * from t2) group by a limit 10; -ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'OceanBase (root@test)> (select * from t1 union all select * from t2) group by a ' at line 1 -``` - - - - - -UNION 例子 ------------------ - -该例子获取t1和t2中所有不重复的行。 - -```javascript -OceanBase (root@test)> create table t1(a int, b int, c int); -Query OK, 0 rows affected (0.12 sec) -OceanBase (root@test)> create table t2(a int, b int, c int); -Query OK, 0 rows affected (0.11 sec) -OceanBase (root@test)> insert into t1 values (1,1,1),(2,2,2),(3,3,3); -Query OK, 3 rows affected (0.07 sec) -Records: 3 Duplicates: 0 Warnings: 0 -OceanBase (root@test)> insert into t2 values (2,2,2),(3,3,3),(4,4,4); -Query OK, 3 rows affected (0.02 sec) -Records: 3 Duplicates: 0 Warnings: 0 -OceanBase (root@test)> select * from t1 union select * from t2; -+------+------+------+ -| a | b | c | -+------+------+------+ -| 1 | 1 | 1 | -| 2 | 2 | 2 | -| 3 | 3 | 3 | -| 4 | 4 | 4 | -+------+------+------+ -4 rows in set (0.01 sec) -``` - - - - - -UNION All 例子 ---------------------- - -该例子获取t1和t2中的所有行,不进行去重。 - -```javascript -OceanBase (root@test)> create table t1(a int, b int, c int); -Query OK, 0 rows affected (0.12 sec) -OceanBase (root@test)> create table t2(a int, b int, c int); -Query OK, 0 rows affected (0.11 sec) -OceanBase (root@test)> insert into t1 values (1,1,1),(2,2,2),(3,3,3); -Query OK, 3 rows affected (0.07 sec) -Records: 3 Duplicates: 0 Warnings: 0 -OceanBase (root@test)> insert into t1 values (2,2,2),(3,3,3),(4,4,4); -Query OK, 3 rows affected (0.02 sec) -Records: 3 Duplicates: 0 Warnings: 0 -OceanBase (root@test)> select * from t1 union all select * from t2; -+------+------+------+ -| a | b | c | -+------+------+------+ -| 1 | 1 | 1 | -| 2 | 2 | 2 | -| 3 | 3 | 3 | -| 2 | 2 | 2 | -| 3 | 3 | 3 | -| 4 | 4 | 4 | -+------+------+------+ -6 rows in set (0.02 sec) -``` - - - - - -INTERSECT 例子 ---------------------- - -该例子获取同时出现在t1和t2中行,并且去重。 - -```javascript -OceanBase (root@test)> create table t1(a int, b int, c int); -Query OK, 0 rows affected (0.12 sec) -OceanBase (root@test)> create table t2(a int, b int, c int); -Query OK, 0 rows affected (0.12 sec) -OceanBase (root@test)> insert into t1 values (1,1,1),(2,2,2),(3,3,3); -Query OK, 3 rows affected (0.02 sec) -Records: 3 Duplicates: 0 Warnings: 0 -OceanBase (root@test)> insert into t2 values (2,2,2),(3,3,3),(3,3,3),(4,4,4); -Query OK, 4 rows affected (0.01 sec) -Records: 4 Duplicates: 0 Warnings: 0 -OceanBase (root@test)> select * from t1 intersect select * from t2; -+------+------+------+ -| a | b | c | -+------+------+------+ -| 2 | 2 | 2 | -| 3 | 3 | 3 | -+------+------+------+ -2 rows in set (0.01 sec) -``` - - - - - -EXCEPT/MINUS 例子 ------------------------- - -该例子获取出现在t1中,但是不出现在t2中的行,并且去重。 - -```javascript -OceanBase (root@test)> create table t1(a int, b int, c int); -Query OK, 0 rows affected (0.12 sec) -OceanBase (root@test)> create table t2(a int, b int, c int); -Query OK, 0 rows affected (0.12 sec) -OceanBase (root@test)> insert into t1 values (1,1,1),(2,2,2),(3,3,3); -Query OK, 3 rows affected (0.02 sec) -Records: 3 Duplicates: 0 Warnings: 0 -OceanBase (root@test)> insert into t2 values (2,2,2),(3,3,3),(3,3,3),(4,4,4); -Query OK, 4 rows affected (0.01 sec) -Records: 4 Duplicates: 0 Warnings: 0 -OceanBase (root@test)> select * from t1 except select * from t2; -+------+------+------+ -| a | b | c | -+------+------+------+ -| 1 | 1 | 1 | -+------+------+------+ -1 row in set (0.02 sec) -``` - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/1.general-syntax.md b/docs/docs-cn/10.sql-reference/5.sql-statement/1.general-syntax.md deleted file mode 100644 index 7358ef7bd..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/1.general-syntax.md +++ /dev/null @@ -1,329 +0,0 @@ -通用语法 -========================= - - - -常量 ------------ - -* `INT_VALUE`:匹配整数类型常量,如`123`。 - - - - - - -* `DECIMAL_VALUE`:匹配定点类型常量,如`123.456`。 - - - - - - -* `STR_VALUE`:匹配字符串常量,如`abc`。 - - - - - - -* `NULL`:匹配NULL常量。 - - - - - - -* `STORAGE_SIZE`:匹配存储长度常量,整数形式默认单位为字节,字符串形式可指定单位为M或G,如`1024`或`'500M'`。 - - - - -```javascript -const_value: - INT_VALUE - | DECIMAL_VALUE - | STR_VALUE - | NULL - | STORAGE_SIZE - -STORAGE_SIZE: - INT_VALUE - | 'INT_VALUE[M|G]' -``` - - - - - -字符集 ------------- - -```javascript -charset: - default_charset - | column_charset - -default_charset: - [DEFAULT] {CHARSET | CHARACTER SET} [=] {UTF8 | UTF8MB4 | BINARY} - -column_charset: - {CHARSET | CHARACTER SET} {UTF8 | UTF8MB4 | BINARY} -``` - - - - - -排序规则 -------------- - -```javascript -collate: - default_collate - | column_collate - -default_collate: - [DEFAULT] COLLATE [=] {UTF8MB4_GENERAL_CI | UTF8MB4_BIN | BINARY} - -column_collate: - COLLATE {UTF8MB4_GENERAL_CI | UTF8MB4_BIN | BINARY} -``` - - - - - -数据类型 -------------- - -```javascript -data_type: - TINYINT[(precision)] [UNSIGNED] [ZEROFILL] - | SMALLINT[(precision)] [UNSIGNED] [ZEROFILL] - | MEDIUMINT[(precision)] [UNSIGNED] [ZEROFILL] - | INT[(precision)] [UNSIGNED] [ZEROFILL] - | INTEGER[(precision)] [UNSIGNED] [ZEROFILL] - | BIGINT[(precision)] [UNSIGNED] [ZEROFILL] - | FLOAT[(precision, scale)] [UNSIGNED] [ZEROFILL] - | DOUBLE[(precision, scale)] [UNSIGNED] [ZEROFILL] - | DECIMAL[(precision [, scale])] [UNSIGNED] [ZEROFILL] - | NUMERIC[(precision [, scale])] [UNSIGNED] [ZEROFILL] - | DATETIME[(scale)] - | TIMESTAMP[(scale)] - | DATE - | TIME[(scale)] - | YEAR - | VARCHAR(length) column_charset column_collate - | VARBINARY(length) - | CHAR[(length)] column_charset column_collate - | BINARY[(length)] - | TINYTEXT column_charset column_collate - | TINYLOB - | TEXT[(length)] column_charset column_collate - | BLOB[(length)] - | MEDIUMTEXT column_charset column_collate - | MEDIUMBLOB - | LONGTEXT column_charset column_collate - | LONGBLOB - -precision | scale | length: - INT_VALUE -``` - - - - - -SQL属性 --------------- - -* 对象名 - - - - -```javascript -tenant_name | pool_name | unit_name | zone_name | region_name: - STR_VALUE - -database_name | table_name | table_alias_name | column_name| column_alias_name | partition_name | subpartition_name: - STR_VALUE - -index_name | view_name | object_name | constraint_name | tablegroup_name: - STR_VALUE - -outline_name | user_name: - STR_VALUE - -table_factor: - [[database_name].] table_name - -column_factor: - [table_factor.] column_name -``` - - - - - -* 表达式 - - - - -```javascript -expression: - const_value - | column_factor - | operator_expression - | function_expression -``` - - - - - -* 注释 - - - - -```javascript -comment: - COMMENT 'comment_text' - -comment_text: - STR_VALUE -``` - - - - - -分布式属性 --------------- - - - -* `PRIMARY_ZONE`:指定数据的主副本分布策略。 - - - - -```javascript -primary_zone: -PRIMARY_ZONE [=] zone_name -``` - - - - - -* `ZONE_LIST`:指定租户的资源分布策略。 - - - - -```javascript -zone_list: -ZONE_LIST [=] (zone_name [, zone_name ...]) -``` - - - - - -* `REPLICA_NUM`:指定数据的副本份数。 - - - - -```javascript -replica_num: -REPLICA_NUM [=] INT_VALUE -``` - - - - - -* `TABLEGROUP`:指定多份数据的主副本分布策略。 - - - - -```javascript -tablegroup: - default_tablegroup - | table_tablegroup - -default_tablegroup: - DEFAULT TABLEGROUP [=] {tablegroup_name | NULL} - -table_tablegroup: - TABLEGROUP [=] {tablegroup_name | NULL} -``` - - - - - -存储属性 -------------- - - - -* `BLOCK_SIZE`:指定对象存储的微块长度。 - - - - -```javascript -block_size: -BLOCK_SIZE [=] INT_VALUE -``` - - - - - -* `COMPRESSION`:指定对象存储的压缩算法。 - - - - -```javascript -compression: -COMPRESSION [=] {NONE | LZ4_1.0 | LZ0_1.0 | SNAPPY_1.0 | ZLIB_1.0} -``` - - - - - -* `PCTFREE`:指定对象存储的宏块预留百分比。 - - - - -```javascript -pctfree: -PCTFREE [=] INT_VALUE -``` - - - - - -* `TABLET_SIZE`:指定并行合并时单个任务的最小分片。 - - - - -```javascript -tablet_size: -TABLET_SIZE [=] INT_VALUE -``` - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/10.alter-user.md b/docs/docs-cn/10.sql-reference/5.sql-statement/10.alter-user.md deleted file mode 100644 index 387414257..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/10.alter-user.md +++ /dev/null @@ -1,109 +0,0 @@ -ALTER USER -=============================== - - - -描述 ------------ - -该语句主要用于执行以下操作: - -* 修改 OceanBase 用户的密码。 - -* 锁定或者解锁用户,且被锁定的用户不允许登录。 - - - - - -**说明** - - - -必须拥有全局 UPDATE USER 的权限,才可以执行本命令。 - -格式 ------------ - -* 修改用户密码 - - - - -```javascript -ALTER USER 'username' IDENTIFIED BY 'password'; -``` - - - -* 锁定用户 - - - - -```javascript -ALTER USER user [lock_option] - -lock_option:{ -ACCOUNT LOCK -| ACCOUNT UNLOCK} -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|----------------|--------| -| ACCOUNT UNLOCK | 锁定用户。 | -| ACCOUNT UNLOCK | 解锁用户。 | - - - -示例 ------------ - -* 修改密码 - - - - -执行以下命令将用户 sqluser01 的密码修改为 abc123。 - -```javascript -ALTER USER 'sqluser01' IDENTIFIED BY 'abc123'; -``` - - - -* 锁定用户 - - - - -锁定用户 obsqluser01。 - -```javascript -ALTER USER 'obsqluser01' ACCOUNT LOCK; -``` - - - -* 解锁用户 - - - - -解锁用户 obsqluser01。 - -```javascript -ALTER USER 'obsqluser01' ACCOUNT UNLOCK; -``` - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/11.create-database.md b/docs/docs-cn/10.sql-reference/5.sql-statement/11.create-database.md deleted file mode 100644 index 8e087c1c2..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/11.create-database.md +++ /dev/null @@ -1,73 +0,0 @@ -CREATE DATABASE -==================================== - - - -描述 ------------------------ - -该语句用于创建数据库,并可以指定数据库的默认属性(如数据库默认字符集,校验规则等)。 - -`CREATE DATABASE` 与 `CREATE SCHEMA` 是等价的。 - -语法 ------------------------ - -```javascript -create_database_stmt: - CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] database_name [database_option_list] - -database_option_list: - database_option [database_option ...] - -database_option: - [DEFAULT] {CHARACTER SET | CHARSET} [=] charset_name - | [DEFAULT] COLLATE [=] collation_name - | REPLICA_NUM [=] int_num - | PRIMARY_ZONE [=] zone_name - | {READ ONLY | READ WRITE} - | DEFAULT TABLEGROUP [=] {NULL | table_group_name} -``` - - - -参数解释 -------------------------- - - - -| **参数** | **描述** | -|-----------------------------------------------------|-----------------------------------------------------| -| database_name | 指定要修改属性的数据库名称。 | -| \[DEFAULT\] {CHARACTER SET \| CHARSET} charset_name | 指定要修改的字符集。 `DEFAULT` 关键字是可选的,不影响语义。 | -| \[DEFAULT\] COLLATE collation_name | 指定校对规则。 `DEFAULT` 关键字是可选的,不影响语义。 | -| REPLICA_NUM int_num | 指定副本数。 | -| PRIMARY_ZONE zone_name | 指定数据库的 Primary Zone。 | -| READ ONLY \| READ WRITE | 设置数据库级只读或读写属性。 | -| DEFAULT TABLEGROUP table_group_name | 设置数据库默认表组信息,`NULL` 表示取消数据库默认表组。 | - - - -示例 ------------------------ - -* 创建数据库 `test2`,并指定字符集为 `UTF8`。 - - ```javascript - obclient> CREATE DATABASE test2 DEFAULT CHARACTER SET UTF8; - Query OK, 1 row affected (0.00 sec) - ``` - - - -* 创建读写属性的数据库 `test3`。 - - ```javascript - obclient> CREATE DATABASE test3 READ WRITE; - Query OK, 1 row affected (0.03 sec) - ``` - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/12.create-index.md b/docs/docs-cn/10.sql-reference/5.sql-statement/12.create-index.md deleted file mode 100644 index 54201821c..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/12.create-index.md +++ /dev/null @@ -1,102 +0,0 @@ -CREATE INDEX -================================= - - - -描述 ------------ - -该语句用来创建索引。索引是创建在表上的,对数据库表中一列或多列的值进行排序的一种结构。其作用主要在于提高查询的速度,降低数据库系统的性能开销。 - -格式 ------------ - -```javascript -CREATE [UNIQUE] INDEX indexname -     ON tblname (index_col_name,...) - [index_type] [index_options] -index_type: - USING BTREE - -index_options: - index_option [index_option...] - -index_option: - GLOBAL | LOCAL - | COMMENT 'string' - | COMPRESSION [=] {NONE | LZ4_1.0 | LZO_1.0 | SNAPPY_1.0 | ZLIB_1.0} - | BLOCK_SIZE [=] size - | STORING(columname_list) - | VISIBLE | INVISIBLE - -index_col_name: - colname [(length)] [ASC | DESC] - -columname_list: - colname [, colname...] -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-----------------|---------------------------------------------------------------------------------------------------------------------------| -| indexname | 指定要创建的索引名称。 | -| tblname | 指过索引所属的表名。 | -| index_col_name | 指定索引的列名,每个列名后都支持ASC(升序),不支持DESC(降序)。默认为升序。 建立索引的排序方式为:首先以index_col_name中第一个列的值排序;该列值相同的记录,按下一列名的值排序;以此类推。 | -| index_type | 索引类型,只支持USING BTREE,以B树为索引。 | -| UNIQUE | 指定为唯一索引。 | -| index_option | 指定索引选项,多个index_option以空格分隔。 | -| GLOBAL \| LOCAL | 指定该索引是全局索引或局部索引,默认是GLOBAL。 | -| COMMENT | 指定注释。 | -| COMPRESSION | 指定压缩算法。 | -| BLOCK_SIZE | 指定微块大小。 | -| STORING | 表示索引表中冗余存储某些列,以提高系统查询性能。 | - - - -示例 ------------ - -1. 执行以下命令,创建表test。 - - - - - - -```javascript -CREATE TABLE test (c1 int primary key, c2 VARCHAR(10)); -``` - - - -2. 执行以下命令,创建表test的索引。 - - - - - - -```javascript -CREATE INDEX test_index ON test (c1, c2 DESC); -``` - - - -3. 执行以下命令,查看表test的索引。 - - - - - - -```javascript -SHOW INDEX FROM test; -``` - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/13.create-outline.md b/docs/docs-cn/10.sql-reference/5.sql-statement/13.create-outline.md deleted file mode 100644 index 46345feef..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/13.create-outline.md +++ /dev/null @@ -1,92 +0,0 @@ -CREATE OUTLINE -=================================== - - - -描述 ------------ - -该语句用来创建 OUTLINE。可以通过两种方式创建,一种是通过 SQL_TEXT(用户执行的带参数的原始语句),另一种是通过 SQL_ID 创建。 -**说明** - - - -创建 OUTLINE 需要进入对应的 DataBase 下执行。 - -格式 ------------ - -* **使用** **SQL_TEXT 创建** **OUTLINE** - - - - -```javascript -CREATE [OR REPLACE] OUTLINE outline_name ON stmt [ TO target_stmt ] -``` - - - -* **使用** **SQL_ID 创建** **OUTLINE** - - - - -```javascript -CREATE OUTLINE outline_name ON sql_id USING HINT hint; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| outline_name | 指定要创建的 OUTLINE 名称。 | -| OR REPLACE | 指定 OR REPLACE 后,如果要创建的 OUTLINE 已存在,则会替换原有的 OUTLINE。 | -| stmt | 一般为一个带有 hint 和原始参数的 DML 语句。 | -| TO target_stmt | 如果不指定 TO target_stmt, 则表示如果数据库接受的SQL参数化后与stmt去掉hint参数化文本相同,则将该SQL绑定stmt中hint生成执行计划;如果期望对含有hint的语句进行固定计划,则需要 TO target_stmt 来指明原始的SQL。 **注意** 在使用target_stmt时,严格要求stmt与target_stmt在去掉hint后完全匹配。 | -| sql_id | 如果sql_id对应的SQL语句已经有hint,则创建OUTLINE指定的hint会覆盖原始语句中所有hint。 | -| hint | 格式为 /\*+ xxx \*/ 。 | - - - -示例 ------------ - -* 使用 SQL_TEXT 创建 OUTLINE - - - - -```javascript -CREATE OUTLINE otl_idx_c2 -ON SELECT/*+ index(t1 idx_c2)*/ * FROM t1 WHERE c2 = 1; -``` - - - - - -* 使用 SQL_ID 创建 OUTLINE - - - - -```javascript -CREATE OUTLINE otl_idx_c2 -ON "ED570339F2C856BA96008A29EDF04C74" -USING HINT /*+ index(t1 idx_c2)*/ ; -``` - - - - - -注意事项 -------------- - -使用 SQL_TEXT 方式创建的 OUTLINE 会覆盖 SQL_ID 方式创建的 OUTLINE,SQL_TEXT 方式创建的优先级高。 diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/14.create-resource-pool.md b/docs/docs-cn/10.sql-reference/5.sql-statement/14.create-resource-pool.md deleted file mode 100644 index 54463ce81..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/14.create-resource-pool.md +++ /dev/null @@ -1,50 +0,0 @@ -CREATE RESOURCE POOL -========================================= - - - -描述 ------------------------ - -该语句用来创建资源池,用于描述可以分配给租户的资源单元集合。 - -格式 ------------------------ - -```javascript -CREATE RESOURCE POOL poolname -UNIT [=] unitname, -UNIT_NUM [=] unitnum, -ZONE_LIST [=] ('zone' [, 'zone' ...]); -``` - - - -参数解释 -------------------------- - - - -| **参数** | **描述** | -|-----------|---------------------------------------------------| -| poolname | 指定要创建的资源池的名称。 | -| UNIT | 指定资源单元的名称。 | -| UNIT_NUM | 指定要创建的单个 Zone 下的单元个数,取值要小于单个 Zone 中的 OBServer 个数。 | -| ZONE_LIST | 指定要创建的资源池所属的集群。 | - - - -示例 ------------------------ - -* 创建资源池 `pool1`,属于集群 `zone1`。 - - ```javascript - obclient> CREATE RESOURCE POOL pool1 UNIT='unit1', UNIT_NUM=1, ZONE_LIST=('zone1'); - Query OK, 0 rows affected (0.01 sec) - ``` - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/15.create-resource-unit.md b/docs/docs-cn/10.sql-reference/5.sql-statement/15.create-resource-unit.md deleted file mode 100644 index d87b44696..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/15.create-resource-unit.md +++ /dev/null @@ -1,72 +0,0 @@ -CREATE RESOURCE UNIT -========================================= - - - -描述 ------------ - -该语句用来创建资源单元配置,描述了分配硬件资源的规格,用于给租户分配硬件资源。 - -格式 ------------ - -```javascript -CREATE RESOURCE UNIT unitname -MAX_CPU [=] cpunum, -MAX_MEMORY [=] memsize, -MAX_IOPS [=] iopsnum, -MAX_DISK_SIZE [=] disksize, -MAX_SESSION_NUM [=] sessionnum, -[MIN_CPU [=] cpunum,] -[MIN_MEMORY [=] memsize,] -[MIN_IOPS [=] iopsnum] ; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-----------------|---------------------------------------------------| -| MAX_CPU | 指定要修改的 CPU 最多数量 | -| MAX_MEMORY | 指定要修改的最大内存容量,取值范围为\[1073741824, +∞) 单位为字节,即最小值为1G | -| MAX_IOPS | 指定要修改的 IOPS 最多数量,取值范围为\[128,+∞) | -| MAX_DISK_SIZE | 指定要修改的最大硬盘容量,取值范围为[536870912,+∞]单位为字节,即最小值为512M | -| MAX_SESSION_NUM | 指定要修改的 session 最多数量,取值范围为\[64,+∞) | -| MIN_CPU | 指定要修改的 CPU 最少数量 | -| MIN_MEMORY | 指定要修改的最小内存容量 | -| MIN_IOPS | 指定要修改的 IOPS 最少数量 | - - - -示例 ------------ - -* 创建资源单元 unit1 配置为1 个 CPU,1G 内存,128 个 IOPS,10G 硬盘容量,运行64个 session。 - - - - -```javascript -OceanBase(admin@test)> CREATE RESOURCE UNIT unit1 max_cpu 1, max_memory '1G', max_iops 128,max_disk_size '10G', max_session_num 64, MIN_CPU=1, MIN_MEMORY= '1G', MIN_IOPS=128; -Query OK, 0 rows affected (0.02 sec) -``` - - - -* 创建资源单元 unit1 配置为1 个 CPU,1G 内存,128个 IOPS,10G 硬盘容量,运行64个 session。 - - - - -```javascript -OceanBase(admin@test)> CREATE RESOURCE UNIT unit1 max_cpu 1, max_memory 1073741824, max_iops 128, max_disk_size 10737418240, max_session_num 64, MIN_CPU=1, MIN_MEMORY=1073741824, MIN_IOPS=128; -Query OK, 0 rows affected (0.01 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/16.create-restore-point.md b/docs/docs-cn/10.sql-reference/5.sql-statement/16.create-restore-point.md deleted file mode 100644 index 4329d8e2e..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/16.create-restore-point.md +++ /dev/null @@ -1,52 +0,0 @@ -CREATE RESTORE POINT -========================================= - - - -描述 ------------------------ - -该语句用来创建还原点(Restore Point)。使用该功能可以保留当前时刻的数据快照,并在之后指定在这个数据快照上进行查询。目前还不支持将数据回滚到该还原点。 - -创建还原点后,可以在 V$RESTORE_POINT 视图中查询到该还原点的 SNAPSHOT 值,然后通过 `SELECT * FROM table_name AS OF SNAPSHOT snapshot;` 查询数据快照中的值。 -**注意** - - - -系统租户不支持创建还原点。 - -格式 ------------------------ - -```unknow -CREATE RESTORE POINT restore_point; -``` - - - -参数解释 -------------------------- - - - -| 参数 | 描述 | -|---------------|----------| -| restore_point | 指定还原点名称。 | - - - -示例 ------------------------ - -* 创建一个还原点 rp1。 - - ```unknow - obclient> CREATE RESTORE POINT rp1; - Query OK, 0 rows affected (0.01 sec) - ``` - - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/17.create-synonym.md b/docs/docs-cn/10.sql-reference/5.sql-statement/17.create-synonym.md deleted file mode 100644 index ac5bd5295..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/17.create-synonym.md +++ /dev/null @@ -1,134 +0,0 @@ -CREATE SYNONYM -=================================== - - - -描述 ------------ - -该语句用来创建一个同义词。 - -格式 ------------ - -```javascript -CREATE [ OR REPLACE ] [ PUBLIC ] -SYNONYM [ DATABASE. ]synonym -FOR [ DATABASE. ]object; -``` - - - - - -参数说明 -------------- - - - -| **参数** | **描述** | -|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| OR REPLACE | 表示如果要创建的同义词名称已存在,则使用新的定义重新创建同义词。 | -| PUBLIC | 指定PUBLIC来创建公共同义词,所有用户都可以使用。用户必须对基础对象具有相应的权限才能使用该同义词。 在解析对象的引用时,仅当对象没有指定DataBase时,才会使用公共同义词。 如果不指定PUBLIC,则同义词是私有的,只能当前DataBase访问,并且同义词名称在当前DataBase中必须唯一。 | -| \[ DataBase. \]synonym | DataBase指定当前同义词属于哪个DataBase,如果指定了PUBLIC,则对同义词不需要指定DataBase;synonym表示同义词的名称。 | -| \[ DataBase. \]object | 表示同义词对应对象的名称。 | - - - - - -举例 ------------ - -* 创建一个同义词。 - - - - -```javascript -OceanBase(admin@test)>create table t1(c1 int); -Query OK, 0 rows affected (0.18 sec) - -OceanBase(admin@test)>create synonym s1 for t1; -Query OK, 0 rows affected (0.05 sec) - -OceanBase(admin@test)>insert into s1 values(1); -Query OK, 1 row affected (0.02 sec) - -OceanBase(admin@test)>select * from s1; -+------+ -| c1 | -+------+ -| 1 | -+------+ -1 row in set (0.01 sec) -``` - - - -* 创建一个PUBLIC同义词 - - - - -```javascript -OceanBase(admin@test)>create public synonym syn_pub for t1; -Query OK, 0 rows affected (0.03 sec) - -OceanBase(admin@test)>select * from syn_pub; -+------+ -| c1 | -+------+ -| 1 | -+------+ -1 row in set (0.01 sec) -``` - - - - - -注意事项 -------------- - -创建同义词时,需要满足如下权限要求: - -* 在当前的DataBase下创建私有的synonym,需要CREATE SYNONYM权限 - -* 在非当前DataBase下创建私有的synonym,需要CREATE ANY SYNONYM权限 - -* 创建PUBLIC的synonym,需要CREATE PUBLIC SYNONYM权限 - -* 对于需要创建synonym的对象不需要存在,也不需要具有访问权限 - - - - -```javascript -连接sys用户: -OceanBase(ADMIN@TEST)>CREATE USER syn_user IDENTIFIED BY syn_user; -Query OK, 0 rows affected (0.06 sec) - -OceanBase(ADMIN@TEST)>grant CREATE on syn_user.* to syn_user; -Query OK, 0 rows affected (0.02 sec) - -OceanBase(ADMIN@TEST)>grant SELECT on syn_user.* to syn_user; -Query OK, 0 rows affected (0.03 sec) - - -连接syn_user -//创建同义词失败 -OceanBase(SYN_USER@(none))>create synonym syn_1 for t1; -ERROR-00600: internal error code, arguments: -5036, Access denied; you need (at least one of) the CREATE SYNONYM privilege(s) for this operation - -连接sys用户,给定CREATE SYNONYM权限 -OceanBase(ADMIN@TEST)>grant CREATE SYNONYM on *.* to syn_user; -Query OK, 0 rows affected (0.03 sec) - -连接syn_user -OceanBase(SYN_USER@(none))>create synonym syn_1 for t1; -Query OK, 0 rows affected (0.05 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/18.create-table.md b/docs/docs-cn/10.sql-reference/5.sql-statement/18.create-table.md deleted file mode 100644 index 4501e6d46..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/18.create-table.md +++ /dev/null @@ -1,289 +0,0 @@ -CREATE TABLE -================================= - - - -描述 ------------ - -该语句用来在数据库中创建一张新表。 - -格式 ------------ - -```javascript -CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name - (table_definition_list) [table_option_list] [partition_option] [AS] select; - -CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name - LIKE table_name; - -table_definition_list: - table_definition [, table_definition ...] - -table_definition: - column_definition - | [CONSTRAINT [constraint_name]] PRIMARY KEY index_desc - | [CONSTRAINT [constraint_name]] UNIQUE {INDEX | KEY} [index_name] index_desc - | {INDEX | KEY} [index_name] index_desc - | FULLTEXT [INDEX | KEY] [index_name] fulltext_index_desc - -column_definition_list: - column_definition [, column_definition ...] - -column_definition: - column_name data_type - [DEFAULT const_value] [AUTO_INCREMENT] - [NULL | NOT NULL] [[PRIMARY] KEY] [UNIQUE [KEY]] comment - -index_desc: - (column_desc_list) [index_type] [index_option_list] - -fulltext_index_desc: - (column_desc_list) CTXCAT(column_desc_list) [index_option_list] - -column_desc_list: - column_desc [, column_desc ...] - -column_desc: - column_name [(length)] [ASC | DESC] - -index_type: - USING BTREE - -index_option_list: - index_option [ index_option ...] - -index_option: - [GLOBAL | LOCAL] - | block_size - | compression - | STORING(column_name_list) - | comment - -table_option_list: - table_option [ table_option ...] - -table_option: - [DEFAULT] {CHARSET | CHARACTER SET} [=] charset_name - | [DEFAULT] COLLATE [=] collation_name - | primary_zone - | replica_num - | table_tablegroup - | block_size - | compression - | AUTO_INCREMENT [=] INT_VALUE - | comment - | DUPLICATE_SCOPE [=] "none|cluster" - | LOCALITY [=] "locality description" - | ROW_FORMAT [=] REDUNDANT|COMPACT|DYNAMIC|COMPRESSED|DEFAULT - | PCTFREE [=] num - | parallel_clause - -parallel_clause: - {NOPARALLEL | PARALLEL integer} - -partition_option: - PARTITION BY HASH(expression) - [subpartition_option] PARTITIONS partition_count - | PARTITION BY KEY([column_name_list]) - [subpartition_option] PARTITIONS partition_count - | PARTITION BY RANGE {(expression) | COLUMNS (column_name_list)} - [subpartition_option] (range_partition_list) - | PARTITION BY LIST {(expression) | COLUMNS (column_name_list)} - [subpartition_option] PARTITIONS partition_count - -subpartition_option: - SUBPARTITION BY HASH(expression) - SUBPARTITIONS subpartition_count - | SUBPARTITION BY KEY(column_name_list) - SUBPARTITIONS subpartition_count - | SUBPARTITION BY RANGE {(expression) | COLUMNS (column_name_list)} - (range_subpartition_list) - | SUBPARTITION BY LIST(expression) - -range_partition_list: - range_partition [, range_partition ...] - -range_partition: - PARTITION partition_name - VALUES LESS THAN {(expression_list) | MAXVALUE} - -range_subpartition_list: - range_subpartition [, range_subpartition ...] - -range_subpartition: - SUBPARTITION subpartition_name - VALUES LESS THAN {(expression_list) | MAXVALUE} - -expression_list: - expression [, expression ...] - -column_name_list: - column_name [, column_name ...] - -partition_name_list: - partition_name [, partition_name ...] - -partition_count | subpartition_count: - INT_VALUE -``` - - - -参数说明 -------------- - - - -| **参数** | **描述** | -|--------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| DUPLICATE_SCOPE | 用来指定复制表属性,取值如下: * none:表示该表是一个普通表 * zone:表示该表是一个复制表,leader需要将事务复制到本zone的所有F副本及R副本 * region:表示该表是一个复制表,leader需要将事务复制到本region的所有F副本及R副本 * cluster:表示该表是一个复制表,leader需要将事务复掉到cluster的所有F副本及R副本 不指定DUPLICATE_SCOPE的情况下,默认值为none。 | -| ROW_FORMAT | 指定表是否开启encoding存储格式 * redundant * compact * dynamic * compressed * default | -| BLOCK_SIZE | 指定表的微块大小 | -| COMPRESSION | 指定表的压缩算法,取值如下: 1. none:不使用压缩算法 2. lz4_1.0: 使用lz4压缩算法 3. zstd_1.0: 使用zstd压缩算法 4. snappy_1.0: 使用snappy压缩算法 | -| CHARSET \| CHARACTER SET | 指定表中列的默认字符集,可使用:utf8, utf8mb4, gbk, utf16, gb18030 | -| COLLATE | 指定表中列的默认比较规则,可使用: utf8_bin, utf8_general_ci, utf8_unicode_ci, gbk_bin, gbk_chinese_ci, utf8mb4_general_ci, utf8mb4__general_cs, utf8mb4_bin, utf8mb4_unicode_ci, utf16_general_ci, utf16_bin, utf16_unicode_ci, gb18030_chinese_ci, gb18030_bin | -| primary_zone | 指定主Zone(副本Leader所在 Zone)。 | -| replica_num | 指定副本数。 | -| table_tablegroup | 指定表所属的talegroup。 | -| AUTO_INCREMENT | 指定表中自增列的初始值。 | -| comment | 注释。 | -| LOCALITY | 描述副本在Zone间的分布情况,如:F@z1,F@z2,F@z3,R@z4 表示z1, z2, z3为全功能副本,z4为只读副本。 | -| PCTFREE | 指定宏块保留空间百分比。 | -| parallel_clause | 指定表级别的并行度: * NOPARALLEL:并行度为1,默认配置 * PARALLEL integer:指定并行度,integer 取值大于等于 1。 | - - - -举例 ------------ - -* 创建数据库表。 - - - - - - -```javascript -CREATE TABLE test (c1 int primary key, c2 VARCHAR(50)) REPLICA_NUM = 3, PRIMARY_ZONE = 'zone1'; -``` - - - -* 创建表,并指定垂直分区。其中第一个分区只有列 c3,第二个分区包含列 c1、c2,没有列出的 c4、c5 列为第三个分区。 - - - - - - -```javascript -CREATE TABLE t1(c1 int, -c2 int, -c3 int, -c4 int, -c5 int) -PARTITION BY CLOUMN ( c3, (c1, c2)); -``` - - - -* 创建一个复制表。 - - - - - - -```javascript -CREATE TABLE item() locality = 'F,R{all_server}@hz1, F,R{all_server}@hz2, -F,R{all_server}@hz3' DUPLICATE_SCOPE="cluster" -``` - - - -* 创建带索引的表。 - - - - - - -```javascript -create table t1 (c1 int primary key, c2 int, c3 int, index i1 (c2)); -``` - - - -* 创建 hash 分区,分区数为 8 的表。 - - - - - - -```javascript -create table t1 (c1 int primary key, c2 int) partition by hash(c1) partitions 8; -``` - - - -* 创建一级分区为 range 分区,二级分区为 key 分区的表。 - - - - - - -```javascript -create table t1 (c1 int, c2 int, c3 int) -partition by range(c1) subpartition by key(c2, c3) subpartitions 5 -(partition p0 values less than(0), partition p1 values less than(100)); -``` - - - -* 创建一列为 gbk, 一列为 utf8 的表。 - - - - - - -```javascript -create table t1 (c1 varchar(10), - c2 varchar(10) charset gbk collate gbk_bin) - default charset utf8 collate utf8mb4_general_ci; -``` - - - -* 开启 encoding 并使用 zstd 压缩,宏块保留空间为 5%。 - - - - - - -```javascript -create table t1 (c1 int, c2 int, c3 varchar(64)) -compression 'zstd_1.0' -ROW_FORMAT dynamic -pctfree 5; -``` - - - -* 创建表 t1,并设置并行度为 3。 - - - - - - -```unknow -create table t1(c1 int primary key, c2 int) parallel 3; -``` - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/19.create-tablegroup.md b/docs/docs-cn/10.sql-reference/5.sql-statement/19.create-tablegroup.md deleted file mode 100644 index 6cb955942..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/19.create-tablegroup.md +++ /dev/null @@ -1,101 +0,0 @@ -CREATE TABLEGROUP -====================================== - - - -描述 ------------ - -该语句用来创建表组。 -**说明** - - - -只有租户下的管理员权限才可以创建表组。 - -格式 ------------ - -```javascript -CREATE TABLEGROUP [IF NOT EXISTS] tablegroupname [opt_tablegroup_option_list] [opt_tg_partition_option] - -opt_tablegroup_option_list: -tablegroup_option [tablegroup_option] - -tablegroup_option: -LOCALITY [=] locality_name -| PRIMARY_ZONE [=] primary_zone_name - -opt_tg_partition_option: -PARTITION BY - KEY COLUMN_NUM [tg_subpartition_option] PARTITIONS INTNUM -| HASH [tg_subpartition_option] PARTITIONS INTNUM -| RANGE [tg_subpartition_option] {PARTITION partition_name VALUES LESS THAN range_partition_expr, ...} -| RANGE COLUMNS COLUMN_NUM [tg_subpartition_option] {PARTITION partition_name VALUES LESS THAN range_partition_expr, ...} -| LIST [tg_subpartition_option] {PARTITION partition_name VALUES in list_partition_expr, ...} -| LIST COLUMNS COLUMN_NUM [tg_subpartition_option] {PARTITION partition_name VALUES in list_partition_expr, ...} - -tg_subpartition_option: -SUBPARTITION BY - RANGE SUBPARTITION TEMPLATE {SUBPARTITION partition_name VALUES LESS THAN range_partition_expr, ...} -| RANGE COLUMNS COLUMN_NUM SUBPARTITION TEMPLATE {SUBPARTITION partition_name VALUES LESS THAN range_partition_expr, ...} -| HASH [SUBPARTITIONS INTNUM] -| KEY COLUMN_NUM [SUBPARTITIONS INTNUM] -| LIST SUBPARTITION TEMPLATE {SUBPARTITION partition_name VALUES in list_partition_expr, ...} -| LIST COLUMNS COLUMN_NUM SUBPARTITION TEMPLATE {SUBPARTITION partition_name VALUES in list_partition_expr, ...} -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| tablegroupname | 表组名称,最长64个字符,字符只能有大小写英文字母,数字和下划线,而且必须以字母或下划线开头,并且不能OceanBase的关键字。 如果要创建的表组名称已存在,并且没有指定IF NOT EXISTS,则会出现错误。 | -| opt_tablegroup_option_list | 表组的分区方式、locality、primary zone必须和组内的表完全一致。 组内的表信息不能独立变更某一项,只可以通过操作表组进行批量操作。 相同的locality:副本类型、个数、位置要完全一致 相同的primary zone:leader位置及其优先级要完全一致 相同的分区方式: * 分区类型相同(例如,都是hash+range分区)。 * 如果是key分区,要求引用的列数相同,且分区个数相同。 * 如果是hash分区,要求分区个数相同。 * 如果是range columns分区,要求引用的列数相同,且分区数相同,且range分割点相同。 * 如果是range分区,且分区数相同,且range分割点相同。 * 对于二级分区,根据分区类型,要求和1)\~4)一致 | -| opt_tg_partition_option | 表组的分区规则定义,与CREATE TABLE使用同样的分区方式。 表组没有具体的列定义,所以KEY、RANGE COLUMNS、LIST COLUMNS不需要写出具体的列,只需要指定列个数(COLUMN_NUM)。 | - - - -示例 ------------ - -* 创建名为 myTableGroup1 的表组。 - - - - -```javascript -OceanBase(admin@test)> CREATE TABLEGROUP myTableGroup1; -Query OK, 0 rows affected (0.07 sec) - -OceanBase(admin@test)> create table myt1 (c1 int, c2 int ) tablegroup = myTableGroup1; -Query OK, 0 rows affected (0.28 sec) - -OceanBase(admin@test)> create table myt2 (c1 int, c2 int ) tablegroup = myTableGroup1; -Query OK, 0 rows affected (0.26 sec) -``` - - - -* 创建 hash 分区的表组 tgh,同时创建 hash 分区的表ttgh,且分区个数相同。 - - - - -```javascript -OceanBase(admin@test)> create tablegroup tgh locality='F,R{ALL_SERVER}@z1' partition by hash partitions 10; -Query OK, 0 rows affected (0.09 sec) - -OceanBase(admin@test)> create table ttgh(c1 int, c2 int) locality='F,R{ALL_SERVER}@z1' partition by hash(c1) partitions 10; -Query OK, 0 rows affected (0.55 sec) - -OceanBase(admin@test)> create table ttgh2(c1 int, c2 int) locality='F,R{ALL_SERVER}@z1' partition by hash(c2) partitions 10; -Query OK, 0 rows affected (0.39 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/2.alter-database.md b/docs/docs-cn/10.sql-reference/5.sql-statement/2.alter-database.md deleted file mode 100644 index dbc23850f..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/2.alter-database.md +++ /dev/null @@ -1,69 +0,0 @@ -ALTER DATABASE -=================================== - - - -描述 ------------ - -该语句用来修改 DataBase 的属性。 - -格式 ------------ - -```javascript -alter_database_stmt: - ALTER DATABASE [database_name] [SET] alter_specification_list; - -alter_specification_list: - alter_specification [alter_specification ...] - -alter_specification: - [DEFAULT] {CHARACTER SET | CHARSET} [=] charset_name - | [DEFAULT] COLLATE [=] collation_name - | REPLICA_NUM [=] int_num - | PRIMARY_ZONE [=] zone_name - | {READ ONLY | READ WRITE} - | DEFAULT TABLEGROUP [=] {NULL | table_group_name} -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-------------------------------------|------------------------------------| -| database_name | 指定要修改属性的数据库名称。如果不指定,会对当前默认数据库进行修改。 | -| CHARSET charset_name | 指定要修改的字符集。 | -| COLLATE collation_name | 指定校对规则。 | -| REPLICA_NUM int_num | 指定副本数。 | -| PRIMARY_ZONE zone_name | 指定主 Zone。 | -| READ ONLY \| READ WRITE | 设置数据库级只读或读写属性。 | -| DEFAULT TABLEGROUP table_group_name | 设置数据库默认表组信息,NULL 表示取消数据库默认表组。 | - - - -示例 ------------ - -* 修改数据库 test2 的字符集为 UTF8MB4,校对规则为 UTF8MB4_BIN,且为读写属性。 - - - - -```javascript -OceanBase(admin@test)>alter database test2 DEFAULT CHARACTER SET UTF8MB4; -Query OK, 0 rows affected (0.03 sec) - -OceanBase(admin@test)>alter database test2 DEFAULT COLLATE UTF8MB4_BIN; -Query OK, 0 rows affected (0.03 sec) - -OceanBase(admin@test)>alter database test2 READ WRITE; -Query OK, 0 rows affected (0.02 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/20.create-tenant.md b/docs/docs-cn/10.sql-reference/5.sql-statement/20.create-tenant.md deleted file mode 100644 index 706789bfa..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/20.create-tenant.md +++ /dev/null @@ -1,92 +0,0 @@ -CREATE TENANT -================================== - - - -描述 ------------ - -该语句用来创建租户。 - -格式 ------------ - -```javascript -CREATE TENANT [IF NOT EXISTS] tenantname - [tenant_characteristic_list] [opt_set_sys_var] - -tenant_characteristic_list: -tenant_characteristic [, tenant_characteristic...] - -tenant_characteristic: -COMMENT 'string' -|{CHARACTER SET | CHARSET} [=] charsetname -|COLLATE [=] collationname -|REPLICA_NUM [=] num -|ZONE_LIST [=] (zone [, zone...]) -|PRIMARY_ZONE [=] zone -|DEFAULT TABLEGROUP [=] {NULL | tablegroup} -|RESOURCE_POOL_LIST [=](poolname [, poolname...]) -|LOGONLY_REPLICA_NUM [=] num -|LOCALITY [=] 'locality description' - -opt_set_sys_var: -{ SET | SET VARIABLES | VARIABLES } system_var_name = expr [,system_var_name = expr] ... -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|--------------------------|----------------------------------------------------------------------------------------------------------------------| -| tenant_name | 指定租户名。最长64个字节,只能有大小写英文字母,数字和下划线,而且必须以字母或下划线开头,并且不能是OceanBase的关键字。 | -| IF NOT EXISTS | 如果要创建的租户名已存在,并且没有指定IF NOT EXISTS,则会报错。 | -| RESOURCE_POOL_LIST | 资源池列表,为创建租户时的必填项,暂时只支持一个 RESOURCE POOL。 | -| DEFAULT TABLEGROUP | 设置租户默认表组信息,NULL 表示取消默认表组。如果不指定,默认为 NULL。 | -| COMMENT | 修改注释。 | -| CHARACTER SET \| CHARSET | 修改租户的字符集。 | -| COLLATE | 指定校对规则。 | -| REPLICA_NUM | 指定副本数。 | -| ZONE_LIST | 指定要修改的Zone列表。 | -| PRIMARY_ZONE | 指定主Zone。 | -| LOGONLY_REPLICA_NUM | 指定日志副本数。 | -| LOCALITY | 描述副本在Zone间的分布情况,如:F@z1,F@z2,F@z3,R@z4 表示z1, z2, z3为全功能副本,z4为只读副本。 | -| system_var_name | 指定租户系统变量值。其中 ob_compatibility_mode 系统变量用于指定租户的兼容模式(MySQL/Oracle),只能在创建时指定;如果不指定 ob_compatibility_mode ,默认兼容模式为MySQL。 | - - - -示例 ------------ - -* 创建租户。 - - - - -```javascript -CREATE TENANT IF NOT EXISTS t1 charset='utf8mb4', replica_num=1, zone_list=('zone1'), primary_zone='zone1', resource_pool_list=('pool1'); -``` - - - -* 创建oracle兼容模式租户 - - - - -```javascript -CREATE TENANT IF NOT EXISTS t1 zone_list=('zone1'), primary_zone='zone1', resource_pool_list=('pool1') SET ob_compatibility_mode='oracle'; -``` - - - - - -注意事项 -------------- - -只有用root用户连接到根租户(root@ROOT)才能执行 CREATE TENANT 去创建租户。 diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/21.create-user-1.md b/docs/docs-cn/10.sql-reference/5.sql-statement/21.create-user-1.md deleted file mode 100644 index 5ce862569..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/21.create-user-1.md +++ /dev/null @@ -1,114 +0,0 @@ -CREATE USER -================================ - - - -描述 ------------ - -该语句用于创建新的 OceanBase 用户。创建新用户后,可以使用该用户连接 OceanBase。 -**说明** - - - -必须拥有全局的CREATE USER权限,才可以使用CREATE USER命令。 - -格式 ------------ - -```javascript -create_user_stmt: - CREATE USER [IF NOT EXISTS] user_name [IDENTIFIED BY 'password']; - -alter_user_stmt: - ALTER USER user_name ACCOUNT {LOCK | UNLOCK}; - | ALTER USER user_name IDENTIFIED BY 'password'; - | SET PASSWORD [FOR user_name] = PASSWORD('password'); - | RENAME USER rename_user_action_list; - -drop_user_stmt: - DROP USER user_name_list; - -rename_user_action_list: - rename_user_action [, rename_user_action ...] - -rename_user_action: - user_name TO user_name - -user_name_list: - user_name [, user_name ...] - -password: - STR_VALUE - -CREATE USER [IF NOT EXISTS] user_specification_list; - -user_specification_list: -user_specification [, user_specification ...] - -user_specification: -user IDENTIFIED BY 'authstring' -| user IDENTIFIED BY PASSWORD 'hashstring' -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|------------------------------------------|----------------------------------------------------| -| user_name | 用户名,新建用户后,"mysql.user"表会新增一行该用户的表项。如果同名用户已经存在,则报错。 | -| IDENTIFIED BY | 使用自选的 IDENTIFIED BY 子句,可以为账户给定一个密码。 | -| user_name \[, user_name ...\] | 同时创建多个用户时,用","隔开。 | -| user IDENTIFIED BY 'authstring' | 此处密码为明文,存入"mysql.user"表后,服务器端会变为密文存储下来。 | -| user IDENTIFIED BY PASSWORD 'hashstring' | 此处密码为密文。 | - - - -示例 ------------ - -1. 执行以下命令创建名为 sqluser01 和 sqluser02 的用户,密码均为 123456。 - - - - -```javascript -CREATE USER 'sqluser01' IDENTIFIED BY '123456', 'sqluser02' IDENTIFIED BY '123456'; -``` - - - -2. 执行以下命令查看创建的用户。 - - - - -```javascript -SELECT user FROM mysql.user; -``` - - - -执行结果如下所示。 - -```javascript -mysql> CREATE USER 'sqluser01' IDENTIFIED BY '123456', 'sqluser02' IDENTIFIED BY '123456'; -Query OK, 0 rows affected (0.12 sec) -mysql> select user from mysql.user; -+-----------+ -| user | -+-----------+ -| root | -| admin | -| sqluser01 | -| sqluser02 | -+-----------+ -4 rows in set (0.00 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/22.create-view.md b/docs/docs-cn/10.sql-reference/5.sql-statement/22.create-view.md deleted file mode 100644 index b3ead18aa..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/22.create-view.md +++ /dev/null @@ -1,54 +0,0 @@ -CREATE VIEW -================================ - - - -描述 ------------ - -该语句用于创建视图语句,如果指定了 OR REPLACE 子句,该语句能够替换已有的视图。 - -视图在数据库中实际上并不是以表的形式存在,每次使用时他们就会派生。视图是作为在 CREATE VIEW 语句中指定的 SELECT 语句的结果而派生出来的。 - -OceanBase 2.2.50 支持可更新视图。 - -格式 ------------ - -```javascript -create_view_stmt: - CREATE [OR REPLACE] VIEW view_name [(column_name_list)] AS select_stmt; - -column_name_list: - column_name [, column_name ...] -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| OR REPLACE | 表示如果要创建的同义词名称已存在,则使用新的定义重新创建同义词。 | -| view_name | 视图名。 | -| select_stmt | 是一种 SELECT 语句。它给出了视图的定义。该语句可以从基表或其他视图进行选择。 | -| column_name_list | 视图必须具有唯一的列名,不得有重复,就像基表那样。默认情况下,由 SELECT 语句检索的列名将用作视图列名。 要想为视图列定义明确的名称,可使用可选的 column_name_list 子句,列出由逗号隔开的 ID。column_name_list 中的名称数目必须等于SELECT语句检索的列数。 SELECT 语句检索的列可以是对表列的简单引用。也可以是使用函数、常量值、操作符等的表达式。 | - - - -示例 ------------ - -选择表 t 中的 c1、c2 列来创建视图 v。 - -```javascript -create or replace view v(vc1, vc2) as select c1, c2 from t; -``` - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/23.DELETE.md b/docs/docs-cn/10.sql-reference/5.sql-statement/23.DELETE.md deleted file mode 100644 index 614f9f6f8..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/23.DELETE.md +++ /dev/null @@ -1,267 +0,0 @@ -DELETE -=========================== - - - -描述 ------------ - -该语句用来删除表中符合条件的行,包括单表删除及多表删除两种方式。 - -格式 ------------ - -```javascript -Single-Table-Delete Syntax: - DELETE [hint_options] FROM tbl_name - [PARTITION (partition_name,...)] - [WHERE where_condition] - [ORDER BY order_expression_list] - [LIMIT row_count] - -Multiple-Table-Delete Syntax: - DELETE [hint_options] tbl_name[.*] [, tbl_name[.*]] ... - FROM table_references - [WHERE where_condition] -Or: - DELETE [hint_options] FROM tbl_name[.*] [, tbl_name[.*]] ... - USING table_references - [WHERE where_condition] - -where_condition: - expression - -order_expression_list: - order_expression [, order_expression ...] - -order_expression: - expression [ASC | DESC] - -limit_row_count: - INT_VALUE - -table_references: - {tbl_name | joined_table | table_subquery | select_with_parens} [, ...] - -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-----------------------|----------------------| -| hint_options | 指定hint选项。 | -| tbl_name | 指定需要删除的表名。 | -| partition_name | 需要删除表的对应分区名。 | -| where_condition | 删除的表需要满足的过滤条件。 | -| order_expression_list | 删除的表的排序键列表。 | -| row_count | 删除的表的行数指定,指定的值只能为整数。 | -| table_references | 多表删除时指定的待选择的表序列。 | - - - -示例 ------------ - -示例表及数据基于以下定义: - -```javascript -OceanBase(admin@test)>create table t1(c1 int primary key, c2 int); -Query OK, 0 rows affected (0.16 sec) -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 1 | -| 2 | 2 | -| 3 | 3 | -| 4 | 4 | -+----+------+ -4 rows in set (0.06 sec) - -OceanBase(admin@test)>create table t2(c1 int primary key, c2 int) partition by key(c1) partitions 4; -Query OK, 0 rows affected (0.19 sec) -OceanBase(admin@test)>select * from t2; -+----+------+ -| c1 | c2 | -+----+------+ -| 5 | 5 | -| 1 | 1 | -| 2 | 2 | -| 3 | 3 | -+----+------+ -4 rows in set (0.02 sec) -``` - - - -* 单表删除:删除 "c1=2" 的行,其中 c1 列为表 t1 中的 Primary Key。 - - - - -```javascript -OceanBase(admin@test)>DELETE FROM t1 WHERE c1 = 2; -Query OK, 1 row affected (0.02 sec) - -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 1 | -| 3 | 3 | -| 4 | 4 | -+----+------+ -3 rows in set (0.01 sec) -``` - - - -* 单表删除:删除表 t2 的按照 c2 列排序之后的第一行数据。 - - - - -```javascript -OceanBase(admin@test)>DELETE FROM t1 ORDER BY c2 LIMIT 1; -Query OK, 1 row affected (0.01 sec) - -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 2 | 2 | -| 3 | 3 | -| 4 | 4 | -+----+------+ -3 rows in set (0.00 sec) -``` - - - -* 单表删除:执行删除表 t2 的 p2 分区的数据。 - - - - -```javascript -OceanBase(admin@test)>DELETE FROM t2 PARTITION(p2); -Query OK, 3 rows affected (0.02 sec) - -OceanBase(admin@test)>select * from t2; -+----+------+ -| c1 | c2 | -+----+------+ -| 5 | 5 | -+----+------+ -1 row in set (0.02 sec) -``` - - - -* 多表删除:删除 t1,t2 表中 "t1.c1 = t2.c1" 的数据。 - - - - -```javascript -OceanBase(admin@test)>DELETE t1, t2 FROM t1, t2 WHERE t1.c1 = t2.c1; -Query OK, 3 rows affected (0.02 sec) - -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 4 | 4 | -+----+------+ -1 row in set (0.01 sec) - -OceanBase(admin@test)>select * from t2; -+----+------+ -| c1 | c2 | -+----+------+ -| 5 | 5 | -+----+------+ -1 row in set (0.01 sec) -``` - - - -* 多表删除:删除 t1,t2 表中 "t1.c1 = t2.c1" 的数据。 - - - - -```javascript -OceanBase(admin@test)>DELETE FROM t1, t2 USING t1, t2 WHERE t1.c1 = t2.c1; -Query OK, 4 rows affected (0.02 sec) - -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 4 | 4 | -+----+------+ -1 row in set (0.01 sec) - -OceanBase(admin@test)>select * from t2; -Empty set (0.01 sec) -``` - - - -* 多表删除:删除 t2 表中的 p2 分区中和 t1 表中 "t1.c1 = t2.c1" 的数据。 - - - - -```javascript -OceanBase(admin@test)>DELETE t2 FROM t1,t2 PARTITION(p2) WHERE t1.c1 = t2.c1; -Query OK, 3 rows affected (0.02 sec) - -OceanBase(admin@test)>select * from t2; -+----+------+ -| c1 | c2 | -+----+------+ -| 5 | 5 | -+----+------+ -1 row in set (0.01 sec) -``` - - - -* 对可更新视图v进行删除操作 - - - - -```javascript -OceanBase(admin@test)>create view v as select * from t1; -Query OK, 0 rows affected (0.07 sec) - -OceanBase(admin@test)>delete from v where v.c1 = 1; -Query OK, 1 row affected (0.02 sec) - -OceanBase(admin@test)>select * from v; -+----+------+ -| c1 | c2 | -+----+------+ -| 2 | 2 | -| 3 | 3 | -| 4 | 4 | -+----+------+ -3 rows in set (0.01 sec) -``` - - - -注意事项 -------------- - -不管是多表删除还是单表删除都不支持直接对子查询进行删除操作,比如: - -`delete from (select * from t1);` diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/24.drop-database.md b/docs/docs-cn/10.sql-reference/5.sql-statement/24.drop-database.md deleted file mode 100644 index ae84c88d2..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/24.drop-database.md +++ /dev/null @@ -1,70 +0,0 @@ -DROP DATABASE -================================== - - - -描述 ------------ - -DROP DATABASE 用于删除数据库。 - -格式 ------------ - -```javascript -drop_database_stmt: -DROP DATABASE [IF EXISTS] database_name; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|---------------|-------------------| -| IF EXISTS | 用于防止当数据库不存在时发生错误。 | -| database_name | 指定待删除的数据库名。 | - - - -示例 ------------ - -* 删除数据库 test2。 - - - - -```javascript -OceanBase(admin@test)>drop database test2; -Query OK, 0 rows affected (0.03 sec) -``` - - - -* 删除不存在的数据库 notest。 - - - - -```javascript -OceanBase(admin@test)>drop database notest; -ERROR 1008 (HY000): Can't drop database 'notest'; database doesn't exist - -OceanBase(admin@test)>drop database if exists notest; -Query OK, 0 rows affected, 1 warning (0.00 sec) - -OceanBase(admin@test)>show warnings; -+-------+------+------------------------------------------------------+ -| Level | Code | Message | -+-------+------+------------------------------------------------------+ -| Note | 1008 | Can't drop database 'notest'; database doesn't exist | -+-------+------+------------------------------------------------------+ -1 row in set (0.00 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/25.drop-index.md b/docs/docs-cn/10.sql-reference/5.sql-statement/25.drop-index.md deleted file mode 100644 index 534710fd4..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/25.drop-index.md +++ /dev/null @@ -1,48 +0,0 @@ -DROP INDEX -=============================== - - - -描述 ------------ - -该语句用来删除索引。当索引过多时,维护开销增大,因此,需要删除不必要的索引。 - -删除索引的时候需要等待一段时间才能完全删除。 - -格式 ------------ - -```javascript -DROP INDEX indexname -   ON tblname; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-----------|---------| -| indexname | 指定索引名称。 | -| tblname | 指定表名。 | - - - -示例 ------------ - -* 删除索引test_index。 - - - - -```javascript -DROP INDEX test_index ON test; -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/26.drop-outline.md b/docs/docs-cn/10.sql-reference/5.sql-statement/26.drop-outline.md deleted file mode 100644 index 9f02fdfcf..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/26.drop-outline.md +++ /dev/null @@ -1,44 +0,0 @@ -DROP OUTLINE -================================= - - - -描述 ------------ - -该语句用于删除 OceanBase 数据库中的 OUTLINE。 - -格式 ------------ - -```javascript -DROP OUTLINE outline_name; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|--------------|--------------------| -| outline_name | 指定要删除的 OUTLINE 名称。 | - - - -示例 ------------ - -* 删除 OUTLINE ol_1 - - - - -```javascript -DROP OUTLINE ol_1; -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/27.drop-resource-pool.md b/docs/docs-cn/10.sql-reference/5.sql-statement/27.drop-resource-pool.md deleted file mode 100644 index 75ec6332a..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/27.drop-resource-pool.md +++ /dev/null @@ -1,45 +0,0 @@ -DROP RESOURCE POOL -======================================= - - - -描述 ------------ - -该语句用来删除资源池。 - -格式 ------------ - -```javascript -DROP RESOURCE POOL poolname; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|----------|-----------| -| poolname | 要删除的资源池名称 | - - - -示例 ------------ - -* 删除资源池 pool1。 - - - - -```javascript -OceanBase(admin@test)> DROP RESOURCE POOL pool1; -Query OK, 0 rows affected (0.00 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/28.drop-resource-unit.md b/docs/docs-cn/10.sql-reference/5.sql-statement/28.drop-resource-unit.md deleted file mode 100644 index db901e7fd..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/28.drop-resource-unit.md +++ /dev/null @@ -1,47 +0,0 @@ -DROP RESOURCE UNIT -======================================= - - - -描述 ------------ - -该语句用来删除资源单元配置。 - -格式 ------------ - -```javascript -DROP RESOURCE UNIT unitname -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|----------|---------------| -| unitname | 要删除的资源单元配置的名称 | - - - - - -示例 ------------ - -* 删除资源单元配置unit1。 - - - - -```javascript -OceanBase(admin@test)> DROP RESOURCE UNIT unit1; -Query OK, 0 rows affected (0.00 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/29.drop-restore-point.md b/docs/docs-cn/10.sql-reference/5.sql-statement/29.drop-restore-point.md deleted file mode 100644 index bfd5bb927..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/29.drop-restore-point.md +++ /dev/null @@ -1,50 +0,0 @@ -DROP RESTORE POINT -======================================= - - - -描述 ------------------------ - -该语句用来删除还原点(Restore Point)。 -**注意** - - - -系统租户不支持删除还原点。 - -格式 ------------------------ - -```unknow -DROP RESTORE POINT restore_point; -``` - - - -参数解释 -------------------------- - - - -| 参数 | 描述 | -|---------------|----------| -| restore_point | 指定还原点名称。 | - - - -示例 ------------------------ - -* 删除一个还原点 rp1。 - - ```unknow - obclient> DROP RESTORE POINT rp1; - Query OK, 0 rows affected (0.01 sec) - ``` - - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/3.alter-outline.md b/docs/docs-cn/10.sql-reference/5.sql-statement/3.alter-outline.md deleted file mode 100644 index 93e3e4080..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/3.alter-outline.md +++ /dev/null @@ -1,70 +0,0 @@ -ALTER OUTLINE -================================== - - - -描述 ------------ - -该语句仅支持使用SQL_TEXT创建的 OUTLINE,可用于添加绑定OUTLINE和限流规则。 - -格式 ------------ - -```javascript -ALTER OUTLINE outline_name ADD stmt [ TO target_stmt ] -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| outline_name | 指定要创建的 OUTLINE 名称。 | -| stmt | 一般为一个带有 hint 和原始参数的 DML 语句。 | -| TO target_stmt | 如果不指定 TO target_stmt, 则表示如果数据库接受的SQL参数化后与stmt去掉hint参数化文本相同,则将该SQL绑定stmt中hint生成执行计划;如果期望对含有hint的语句进行固定计划,则需要 TO target_stmt 来指明原始的SQL。 **注意** 在使用target_stmt时,严格要求stmt与target_stmt在去掉hint后完全匹配。 | - - - -示例 ------------ - -* 通过ALTER OUTLINE来添加限流规则。 - - - - -```javascript -OceanBase (root@oceanbase)> alter outline ol_1 add select /*+max_concurrent(1)*/ * from t1 where c1 = 1 and c2 = ?; -OceanBase (root@oceanbase)> alter outline ol_1 add select /*+max_concurrent(1)*/ * from t1 where c1 = ? and c2 = 1; -``` - - - -* 通过ALTER OUTLINE来添加执行计划。 - - - - -```javascript -OceanBase (root@oceanbase)> create outline ol_2 on select /*+max_concurrent(1)*/ * from t1,t2 where t1.c1 = 1; -OceanBase (root@oceanbase)> alter outline ol_2 add select /*+use_nl(t2)*/ * from t1,t2 where t1.c1 = 1; -``` - - - -注意事项 -------------- - -* 同一个outline_name 只能指定一个执行计划。如果通过create outline语句指定了执行计划,则无法通过执行alter outline时再添加。 - -* 同create outline类似,在alter outline时不能同时指定限流规则和执行计划。 - -* 执行alter outline时,需要outline_name和signature同时匹配。 - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/30.drop-table.md b/docs/docs-cn/10.sql-reference/5.sql-statement/30.drop-table.md deleted file mode 100644 index 96413eced..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/30.drop-table.md +++ /dev/null @@ -1,49 +0,0 @@ -DROP TABLE -=============================== - - - -描述 ------------ - -该语句用于删除 OceanBase 数据库中的表。 - -格式 ------------ - -```javascript -DROP [TEMPORARY] {TABLE | TABLES} [IF EXISTS] -table_name [,table_name]... -[RESTRICT | CASCADE] -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|---------------------|--------------------------------------------| -| table_name | 指定要删除的表名,同时删除多个表时,用","隔开。 | -| IF EXISTS | 如果指定IF EXISTS,即使要删除的表不存在,也不会报错;如果不指定,则会报错。 | -| TEMPORARY | 删除临时表。 | -| RESTRICT \| CASCADE | 用于其它数据库迁移至OceanBase的场景。 | - - - -示例 ------------ - -* 删除表 test - - - - -```javascript -DROP TABLE IF EXISTS test; -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/31.drop-tablegroup.md b/docs/docs-cn/10.sql-reference/5.sql-statement/31.drop-tablegroup.md deleted file mode 100644 index b74427f25..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/31.drop-tablegroup.md +++ /dev/null @@ -1,41 +0,0 @@ -DROP TABLEGROUP -==================================== - - - -描述 ------------ - -该语句用来删除表组。 - -格式 ------------ - -```javascript -DROP TABLEGROUP [IF EXISTS] tablegroupname -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|----------------|--------------------------------------------| -| tablegroupname | 表组名称。如果要删除的表组名称不存在,并且没有指定IF EXISTS,则会出现错误。 | - - - -示例 ------------ - -删除名为 myTableGroup1 的表组。 - -```javascript -OceanBase(admin@test)> DROP TABLEGROUP myTableGroup1; -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/32.drop-tenant.md b/docs/docs-cn/10.sql-reference/5.sql-statement/32.drop-tenant.md deleted file mode 100644 index 45f6d3225..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/32.drop-tenant.md +++ /dev/null @@ -1,49 +0,0 @@ -DROP TENANT -================================ - - - -描述 ------------ - -该语句用于删除一个 OceanBase 租户。 - -格式 ------------ - -```javascript -drop_tenant_stmt: -DROP TENANT [IF EXISTS] tenant_name; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-------------|---------------------------------------------------------------------| -| tenant_name | 指定要删除的租户名。 只能删除处于"锁定"状态下的租户,对非锁定状态下的租户执行 DROP 时会报错。 | - - - -示例 ------------ - -* 删除租户 TENANT1: - - - - -```javascript -DROP TENANT TENANT1; -``` - - - -注意事项 -------------- - -只有用root用户连接到根租户(root@ROOT)才能执行 DROP TENANT 去删除租户。 diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/33.drop-synonym.md b/docs/docs-cn/10.sql-reference/5.sql-statement/33.drop-synonym.md deleted file mode 100644 index be2dfffa2..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/33.drop-synonym.md +++ /dev/null @@ -1,100 +0,0 @@ -DROP SYNONYM -================================= - - - -描述 ------------ - -该语句用来删除一个同义词。 - - - -格式 ------------ - -```javascript -DROP [PUBLIC] SYNONYM [ DATABASE. ]synonym; -``` - - - - - -参数说明 -------------- - -* PUBLIC - - 指定PUBLIC来删除公共同义词;如果不指定PUBLIC,则删除私有同义词。 - - - - - - - -* \[ DATABASE. \]synonym - - DATABASE指定当前同义词属于哪个DataBase,如果指定了PUBLIC,则对同义词不需要指定DataBase;synonym表示同义词的名称。 - - - - - - - -举例 ------------ - -* 删除一个同义词。 - - - - -```javascript -OceanBase(admin@test)>drop synonym test.s1; -Query OK, 0 rows affected (0.03 sec) -``` - - - -* 删除一个PUBLIC同义词 - - - - -```javascript -OceanBase(admin@test)>drop public synonym syn_pub; -Query OK, 0 rows affected (0.02 sec) -``` - - - - - -### 注意事项 - -**注意** - - - -* 删除私有同义词时,需要满足要删除的synonym在对应DataBase下并要有DROP ANY SYNONYM权限。 - - - - - - - - -* 删除公共同义词时,需要有DROP PUBLIC SYNONYM权限 。 - - - -* 删除public synonym时,必须指定PUBLIC关键字,且不能指定DataBase。 - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/34.drop-user.md b/docs/docs-cn/10.sql-reference/5.sql-statement/34.drop-user.md deleted file mode 100644 index 9a40d5dc2..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/34.drop-user.md +++ /dev/null @@ -1,60 +0,0 @@ -DROP USER -============================== - - - -描述 ------------ - -该语句用于删除一个或多个OceanBase用户。 -**说明** - - - -* 必须拥有全局的 CREATE USER 权限,才可以使用 DROP USER 命令。 - - - -* 不能对 mysql.user 表通过 DELETE 方式进行权限管理。 - - - -* 成功删除用户后,该用户的所有权限也会被一同删除。 - - - - - - -格式 ------------ - -```javascript -DROP USER username [, username...]; -``` - - - -参数解释 -------------- - - - -| 参数 | 描述 | -|----------|-----------------------| -| username | 用户名。同时删除多个用户时,用","隔开。 | - - - -示例 ------------ - -执行以下命令,删除名为 sqluser02 的用户。 - -```javascript -oceanBase(admin@TEST)>drop user sqluser02; -Query OK, 0 rows affected (0.02 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/35.drop-view.md b/docs/docs-cn/10.sql-reference/5.sql-statement/35.drop-view.md deleted file mode 100644 index acfa79af1..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/35.drop-view.md +++ /dev/null @@ -1,60 +0,0 @@ -DROP VIEW -============================== - - - -描述 ------------ - -该语句用于删除一个或多个视图。 -**说明** - - - -当前用户必须在每个视图上有 DROP 权限。 - -格式 ------------ - -```javascript -drop_view_stmt: - DROP VIEW [IF EXISTS] view_name_list [CASCADE | RESTRICT]; - -view_name_list: - view_name [, view_name_list] -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|------------------|-------------------------------------------------------------------------| -| IF EXISTS | 使用IF EXISTS关键字可以防止因不存在的视图而出错。 | -| view_name_list | 如果view_name_list中包含一部分存在和一部分不存在的视图,执行可能报错但是存在的视图依然会被删除。 | -| CASCADE、RESTRICT | CASCADE 和 RESTRICT 会被解析和忽略。 | - - - -示例 ------------ - -分别执行以下命令,删除 v1 和 v2 两个视图。如果 v1或 v2 至少有一个视图不存在,则第一条命令会报错。 - -```javascript -drop view v1, v2; - -drop view if exists v1, v2; -``` - - - - - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/36.EXPLAIN.md b/docs/docs-cn/10.sql-reference/5.sql-statement/36.EXPLAIN.md deleted file mode 100644 index 8a2adfd83..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/36.EXPLAIN.md +++ /dev/null @@ -1,195 +0,0 @@ -EXPLAIN -============================ - - - -描述 ------------ - -该语句用于解释 SQL 语句的执行计划,可以是SELECT、DELETE、INSERT、REPLACE或UPDATE语句。提供正则过滤功能,通过session变量explain_regex对输出行/JSON进行过滤。 - -格式 ------------ - -```javascript -获取表或列的信息: -{EXPLAIN | DESCRIBE | DESC} tbl_name [col_name | wild] - -获取SQL计划信息: -{EXPLAIN | DESCRIBE | DESC} -[BASIC | OUTLINE | EXTENDED | EXTENDED_NOADDR | PARTITIONS | FORMAT = {TRADITIONAL| JSON}] -{SELECT statement | DELETE statement | INSERT statement | REPLACE statement| UPDATE statement} -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| tbl_name | 指定表名。 | -| col_name | 指定表的列名。 | -| BASIC | 指定输出计划的基础信息,如算子ID、算子名称、所引用的表名。 | -| OUTLINE | 指定输出的计划信息包含outline信息。 | -| EXTENDED | EXPLAIN产生附加信息,包括:每个算子的输入列和输出列,访问表的分区信息,当前使用的filter信息,如果当前算子使用了索引,显示所使用的索引列及抽取的query range。 | -| EXTENDED_NOADDR | 以简约的方式展示附加信息。 | -| PARTITIONS | 显示分区相关信息。 | -| FORMAT = {TRADITIONAL\| JSON} | 指定EXPALIN的输出格式: * TRADITIONAL:表格输出格式 * JSON:KEY:VALUE输出格式, JSON显示为JSON字符串,包括EXTENDED和PARTITIONS信息。 | - - - -示例 ------------ - -* **省略explain_type** - - - - -```javascript -OceanBase(admin@test)>explain select * from t1,t2 where t1.c2=t2.c2 and t2.c1 > 4\G -*************************** 1. row *************************** -Query Plan: ======================================= -|ID|OPERATOR |NAME|EST. ROWS|COST | ---------------------------------------- -|0 |HASH JOIN | |9801000 |5933109| -|1 | TABLE SCAN|t2 |10000 |6219 | -|2 | TABLE SCAN|t1 |100000 |68478 | -======================================= - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), - equal_conds([t1.c2 = t2.c2]), other_conds(nil) - 1 - output([t2.c2], [t2.c1]), filter(nil), - access([t2.c2], [t2.c1]), partitions(p0) - 2 - output([t1.c2], [t1.c1]), filter(nil), - access([t1.c2], [t1.c1]), partitions(p0) -``` - - - -* **EXTENDED** - - - - -```javascript -OceanBase(admin@test)>explain extended_noaddr select * from t1,t2 where t1.c2=t2.c2 and t2.c1 > 4\G -*************************** 1. row *************************** -Query Plan: ======================================= -|ID|OPERATOR |NAME|EST. ROWS|COST | ---------------------------------------- -|0 |HASH JOIN | |9801000 |5933109| -|1 | TABLE SCAN|t2 |10000 |6219 | -|2 | TABLE SCAN|t1 |100000 |68478 | -======================================= - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), - equal_conds([t1.c2 = t2.c2]), other_conds(nil) - 1 - output([t2.c2], [t2.c1]), filter(nil), - access([t2.c2], [t2.c1]), partitions(p0), - is_index_back=false, - range_key([t2.c1]), range(4 ; MAX), - range_cond([t2.c1 > 4]) - 2 - output([t1.c2], [t1.c1]), filter(nil), - access([t1.c2], [t1.c1]), partitions(p0), - is_index_back=false, - range_key([t1.__pk_increment], [t1.__pk_cluster_id], [t1.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true -``` - - - -* **TRADITIONAL** **格式** - - - - -```javascript -OceanBase(admin@test)>explain format=TRADITIONAL select * from t1,t2 where t1.c2=t2.c2 and t2.c1 > 4\G -*************************** 1. row *************************** -Query Plan: ======================================= -|ID|OPERATOR |NAME|EST. ROWS|COST | ---------------------------------------- -|0 |HASH JOIN | |9801000 |5933109| -|1 | TABLE SCAN|t2 |10000 |6219 | -|2 | TABLE SCAN|t1 |100000 |68478 | -======================================= - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), - equal_conds([t1.c2 = t2.c2]), other_conds(nil) - 1 - output([t2.c2], [t2.c1]), filter(nil), - access([t2.c2], [t2.c1]), partitions(p0) - 2 - output([t1.c2], [t1.c1]), filter(nil), - access([t1.c2], [t1.c1]), partitions(p0) -``` - - - -* **JSON格式** - - - - -```javascript -OceanBase(admin@test)>explain format=JSON select * from t1,t2 where t1.c2=t2.c2 and t2.c1 > 4\G -*************************** 1. row *************************** -Query Plan: { - "ID":2, - "OPERATOR":"JOIN", - "NAME":"JOIN", - "EST.ROWS":9800999, - "COST":5933108, - "output": [ - "t1.c1", - "t1.c2", - "t2.c1", - "t2.c2" - ], - "TABLE SCAN": { - "ID":0, - "OPERATOR":"TABLE SCAN", - "NAME":"TABLE SCAN", - "EST.ROWS":10000, - "COST":6218, - "output": [ - "t2.c2", - "t2.c1" - ] - }, - "TABLE SCAN": { - "ID":1, - "OPERATOR":"TABLE SCAN", - "NAME":"TABLE SCAN", - "EST.ROWS":100000, - "COST":68477, - "output": [ - "t1.c2", - "t1.c1" - ] - } -} -``` - - - -EXPLAIN 的每个输出行提供一个表的相关信息,并且每个行包括下面的列: - - -| **列名** | **说明** | -|----------|-----------------| -| ID | 计划执行序列号。 | -| OPERATOR | 执行算子。 | -| NAME | 算子所引用的表。 | -| EST.ROWS | 估计执行到当前算子输出的行数。 | -| COST | 执行到当前算子的CPU时间。 | - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/37.flashback-database.md b/docs/docs-cn/10.sql-reference/5.sql-statement/37.flashback-database.md deleted file mode 100644 index 8fd33e47a..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/37.flashback-database.md +++ /dev/null @@ -1,89 +0,0 @@ -FLASHBACK DATABASE -======================================= - - - -描述 ------------ - -用于从回收站中恢复被删除的DATABASE。 - -前置条件 -------------- - -回收站需要处于开启状态,可以通过 - -`show variables like 'recyclebin';` - -来查看回收站是否开启。 - -```javascript -OceanBase(admin@test)> show variables like 'recyclebin'; -+---------------+-------+ -| Variable_name | Value | -+---------------+-------+ -| recyclebin | ON | -+---------------+-------+ -1 row in set (0.00 sec) -``` - - - -果回收站处于关闭状态,可以通过 - -`set recyclebin = on;` - -来开启。回收站中的表没有被实际删除,仍然会占用资源,如果需要彻底删除,可以执行 - -`purge recyclebin;` - -格式 ------------ - -```javascript - FLASHBACK DATABASE object_name TO BEFORE DROP [RENAME TO db_name]; -``` - - - -参数解释 -------------- - - - -| **参数** | **解释** | -|-------------|----------------------------------------------------------------------| -| object_name | 指定要恢复的object名称,不支持指定DATABASE名称。恢复DATABASE时,也会将DATABASE下面的表、索引等都恢复出来。 | -| RENAME to | 恢复时将DATABASE重命名。 | - - - -示例 ------------ - -* 从回收站中恢复删除的DATABASE。 - - - - -```javascript -OceanBase(admin@test)> create database da; -Query OK, 1 row affected (0.03 sec) - -OceanBase(admin@test)> drop database da; -Query OK, 0 rows affected (0.04 sec) - -OceanBase(admin@test)> show recyclebin; -+--------------------------------------------------+---------------+----------+----------------------------+ -| OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | -+--------------------------------------------------+---------------+----------+----------------------------+ -| __recycle_$_1_1099511628829_18446744073709551615 | da | DATABASE | 2017-10-20 17:36:15.838771 | -+--------------------------------------------------+---------------+----------+----------------------------+ -1 row in set (0.02 sec) - -OceanBase(admin@test)> flashback database __recycle_$_1_1099511628829_18446744073709551615 to before drop; -Query OK, 0 rows affected (0.03 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/38.flashback-table.md b/docs/docs-cn/10.sql-reference/5.sql-statement/38.flashback-table.md deleted file mode 100644 index 4433036e5..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/38.flashback-table.md +++ /dev/null @@ -1,110 +0,0 @@ -FLASHBACK TABLE -==================================== - - - -描述 ------------ - -用于从回收站中恢复被删除的TABLE。 - -前置条件 -------------- - -回收站需要处于开启状态,可以通过 - -`show variables like 'recyclebin';` - -来查看回收站是否开启。 - -```javascript -OceanBase(admin@test)> show variables like 'recyclebin'; -+---------------+-------+ -| Variable_name | Value | -+---------------+-------+ -| recyclebin | ON | -+---------------+-------+ -1 row in set (0.00 sec) -``` - - - -如果回收站处于关闭状态,可以通过 - -`set recyclebin = on;` - -来开启。回收站中的表没有被实际删除,仍然会占用资源,如果需要彻底删除,可以执行 - -`purge recyclebin;` - -格式 ------------ - -```javascript - FLASHBACK TABLE object_name TO BEFORE DROP [RENAME to db_name.table_name]; -``` - - - -参数解释 -------------- - - - -| **参数** | **解释** | -|-------------|-------------------------------------------------------------------------| -| object_name | 指定要恢复的object名称或表名,只有在表所在的database中才能执行。恢复TABLE时,也会将和TABLE相关的INDEX也恢复出来。 | -| RENAME to | 修改表名和表所属的库。 | - - - -示例 ------------ - -* 从回收站中恢复被删除的表t。 - - - - -```javascript -OceanBase(admin@test)> create table t(id int primary key, k int); -Query OK, 0 rows affected (0.04 sec) - -OceanBase(admin@test)> insert into t values(1,1); -Query OK, 1 row affected (0.00 sec) - -OceanBase(admin@test)> select * from t; -+----+------+ -| id | k | -+----+------+ -| 1 | 1 | -+----+------+ -1 row in set (0.00 sec) - -OceanBase(admin@test)> drop table t; -Query OK, 0 rows affected (0.01 sec) - -OceanBase(admin@test)> select * from t; -ERROR 1146 (42S02): Table 'test.t' does not exist -OceanBase(admin@test)> show recyclebin; -+--------------------------------+---------------+-------+----------------------------+ -| OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | -+--------------------------------+---------------+-------+----------------------------+ -| __recycle_$_1_1597028971700936 | t | TABLE | 2020-08-10 11:09:31.701033 | -+--------------------------------+---------------+-------+----------------------------+ -1 row in set (0.00 sec) - -OceanBase(admin@test)> flashback table t to before drop; -Query OK, 0 rows affected (0.01 sec) - -OceanBase(admin@test)> select * from t; -+----+------+ -| id | k | -+----+------+ -| 1 | 1 | -+----+------+ -1 row in set (0.00 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/39.flashback-tenant.md b/docs/docs-cn/10.sql-reference/5.sql-statement/39.flashback-tenant.md deleted file mode 100644 index 77f0e4d54..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/39.flashback-tenant.md +++ /dev/null @@ -1,67 +0,0 @@ -FLASHBACK TENANT -===================================== - - - -描述 ------------------------ - -该语句用于从回收站中恢复被删除的租户。 - -前置条件 -------------------------- - -回收站需要处于开启状态,可以通过`show variables like 'recyclebin';`来查看回收站是否开启。 - -```unknow -OceanBase(admin@test)> show variables like 'recyclebin'; -+---------------+-------+ -| Variable_name | Value | -+---------------+-------+ -| recyclebin | ON | -+---------------+-------+ -1 row in set (0.00 sec) -``` - - - -如果回收站处于关闭状态,可以通过`set recyclebin = on;`来开启。回收站中的表没有被实际删除,仍然会占用资源,如果需要彻底删除,可以执行`purge recyclebin;` - -格式 ------------------------ - -```unknow -FLASHBACK TENANT tenant_name TO BEFORE DROP [RENAME to new_tenant_name]; -``` - - - -参数解释​ --------------------------- - - - -| 参数 | 解释 | -|-----------------|---------------------------------------------------------------------------------------| -| tenant_name | 指定要恢复的租户名。可以使用原始租户名,也可以使用在回收站中的名字。回收站中的名字具有唯一性,可以指定确定的租户;原始租户名可能会重复,此时恢复的是最晚进入回收站的租户。 | -| new_tenant_name | 将恢复后的租户重新命名。 | - - - -示例 ------------------------ - -* 从回收站中恢复被删除的租户tenant1。 - - - - - - -```unknow -obclient> flashback tenant tenant1 to before drop; -Query OK, 0 rows affected (0.01 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/4.alter-resource-pool.md b/docs/docs-cn/10.sql-reference/5.sql-statement/4.alter-resource-pool.md deleted file mode 100644 index 28ba97262..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/4.alter-resource-pool.md +++ /dev/null @@ -1,64 +0,0 @@ -ALTER RESOURCE POOL -======================================== - - - -描述 ------------ - -该语句用来修改资源池。 - -格式 ------------ - -```javascript -ALTER RESOURCE POOL poolname -UNIT [=] unitname, -UNIT_NUM [=] unitnum, -ZONE [=] ('zone' [, 'zone' ...]); -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-----------|-----------------------------------------------------| -| UNIT | 指定要使用的资源单元配置的名称 | -| UNIT_NUM | 指定要创建的一个 ZONE 下的资源单元个数,取值要小于对应 ZONE 中的 OBServer 个数。 | -| ZONE_LIST | 指定要创建的资源单元的 ZONE 列表 | - - - - - -示例 ------------ - -* 不能同时修改 RESOURCE POOL 的 unit, unit_num, zone_list 多个属性,执行将报错。 - - - - -```javascript -OceanBase(admin@test)> ALTER RESOURCE POOL pool1 unit='unit2', unit_num=1, zone_list=('zone1'); -ERROR 1235 (0A000): alter unit_num, resource_unit, zone_list in one cmd not supported -``` - - - -* 修改 RESOURCE POOL 的单条 unit 属性。 - - - - -```javascript -OceanBase(admin@test)> ALTER RESOURCE POOL pool1 unit='unit2'; -Query OK, 0 rows affected (0.00 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/40.GRANT.md b/docs/docs-cn/10.sql-reference/5.sql-statement/40.GRANT.md deleted file mode 100644 index 23b57d723..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/40.GRANT.md +++ /dev/null @@ -1,138 +0,0 @@ -GRANT -========================== - - - -描述 ------------ - -该语句用于系统管理员授予 User 某些权限。 -**说明** - - - -* 当前用户必须拥有被授予的权限(例如,user1 把表 t1 的 SELECT 权限授予 user2,则 user1 必须拥有表 t1 的 SELECT 的权限),并且拥有 GRANT OPTION 权限,才能授予成功。 - - - -* 用户授权后,该用户只有重新连接OceanBase,权限才能生效。 - - - - - - -格式 ------------ - -```javascript -GRANT priv_type -    ON priv_level -    TO user_specification [, user_specification]... - [WITH with_option ...] - -privilege_type: - ALTER - | CREATE - | CREATE USER - | CREATE VIEW - | DELETE - | DROP - | GRANT OPTION - | INDEX - | INSERT - | PROCESS - | SELECT - | SHOW DATABASES - | SHOW VIEW - | SUPER - | UPDATE - | USAGE - | CREATE SYNONYM - -priv_level: - * - | *.* - | db_name.* - | db_name.tbl_name - | tbl_name - | db_name.routine_name - -user_specification: -user [IDENTIFIED BY [PASSWORD] 'password'] - -with_option: - GRANT OPTION -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| priv_type | 指定授予的权限类型。具体的权限类型及其说明请参见下方权限类型说明表。 同时把多个权限赋予用户时,权限类型用","隔开。 | -| priv_level | 指定授予权限的层级。权限可以分为以下几个层级: * 全局层级:适用于所有的数据库。使用 GRANT ALL ON \*.\*授予全局权限。 * 数据库层级:适用于一个给定数据库中的所有目标。使用 GRANT ALL ON db_name.\* 授予数据库权限。 * 表层级:表权限适用于一个给定表中的所有列。使用 GRANT ALL ON db_name.tbl_name 授予表权限。 用"\*"代替table_name,表示赋予全局权限,即对数据库中的所有表赋权。 | -| user_specification | 给特定用户授予权限。如果用户不存在,可以直接创建用户。 sql_mode='no_auto_create_user',同时没有identified by 指定密码时,不可以直接创建用户。 同时给多个用户授权时,用户名用","隔开。 | -| user IDENTIFIED BY 'password' | 此处密码为明文。 | -| user IDENTIFIED BY PASSWORD 'password' | 此处密码为密文。 | -| with_option | 指定权限是否允许转授 | - - - -可以授予的权限类型如下表所示。 - -**权限类型说明表** - - -| **权限** | **说明** | -|-------------------|-----------------------------------------------------------------| -| ALL PRIVILEGES | 除GRANT OPTION以外所有权限。 | -| ALTER | ALTER TABLE的权限。 | -| CREATE | CREATE TABLE的权限。 | -| CREATE USER | CREATE USER,DROP USER,RENAME USER和REVOKE ALL PRIVILEGES的权限。 | -| CREATE TABLEGROUP | 全局CREATE TABLEGROUP的权限。 | -| DELETE | DELETE的权限。 | -| DROP | DROP的权限。 | -| GRANT OPTION | GRANT OPTION的权限。 | -| INSERT | INSERT的权限。 | -| SELECT | SELECT的权限。 | -| UPDATE | UPDATE的权限。 | -| SUPER | SET GLOBAL修改全局系统参数的权限。 | -| SHOW DATABASES | 全局 SHOW DATABASES的权限。 | -| INDEX | CREATE INDEX, DROP INDEX的权限 | -| CREATE VIEW | 创建、删除视图的权限。 | -| SHOW VIEW | SHOW CREATE VIEW权限。 | -| CREATE SYNONYM | 创建同义词的权限。 | - - - - -**说明** - - - -目前没有 change effective tenant 的权限控制,故 sys 租户下的用户都可以进行授权。 - -示例 ------------ - -* 执行以下命令给用户 obsqluser01 赋予所有权限。 - - - - -```javascript -OceanBase(admin@TEST)>GRANT ALL PRIVILEGES ON *.* TO obsqluser01 with grant option; -Query OK, 0 rows affected (0.03 sec) -``` - - - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/41.INSERT.md b/docs/docs-cn/10.sql-reference/5.sql-statement/41.INSERT.md deleted file mode 100644 index a73e767c3..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/41.INSERT.md +++ /dev/null @@ -1,245 +0,0 @@ -INSERT -=========================== - - - -描述 ------------ - -该语句用于添加一个或多个记录到表中。 - -格式 ------------ - -```javascript -INSERT [IGNORE] [INTO] - single_table_insert - [ON DUPLICATE KEY UPDATE update_asgn_list] - -single_table_insert: - {dml_table_name values_clause - | dml_table_name '(' ')' values_clause - | dml_table_name '(' column_list ')' values_clause - | dml_table_name SET update_asgn_list} - -dml_table_name: - tbl_name [PARTITION (partition_name,...)] - -values_clause: - {{VALUES | VALUE} ({expr | DEFAULT},...) [, ...] - | select_stmt} - -column_list - column_name [, ...] - -update_asgn_list: - column_name = expr [, ...] -``` - - - -参数解释 -------------- - -**INSERT...ON DUPLICATE KEY UPDATE...** **语句执行,affect row的计算:** - -* 在没有设置client_capabilities中CLIENT_FOUND_ROWS的情况下: - - - - - - - - - - -* 如果设置了CLIENT_FOUND_ROWS: - - - - - - - - - - -* CLIENT_FOUND_ROWS的影响在于:不设置CLIENT_FOUND_ROWS的情况下,计算affected_row的值,只计算实际更新了行数,而设置了CLIENT_FOUND_ROWS的话,会把所有touched行数(满足冲突条件的行)都记上,而不管其是否发生了真正的数据修改。 - - - - - -| **参数** | **描述** | -|-------------------------|-----------------------------------------------------------------------------------------------------------------------------| -| IGNORE | 在INSERT语句执行过程中发生的错误将会被忽略。 | -| column_list | 用于指定插入数据的列,同时插入多列时,用","隔开。 | -| tbl_name | 指定要插入的表名。 | -| partition_name | 插入表指定的分区名。 | -| update_asgn_list | 赋值语句,例如:"c1 = 2" | -| ON DUPLICATE KEY UPDATE | 指定对重复主键或唯一键的处理。如果指定了ON DUPLICATE KEY UPDATE,当要插入的主键或唯一键有重复时,会用配置值替换待插入的值;如果不指定ON DUPLICATE KEY UPDATE,当要插入的主键或唯一键有重复时,插入报错。 | - - - -示例 ------------ - -示例表及数据基于以下定义: - -```javascript -OceanBase(admin@test)>create table t1(c1 int primary key, c2 int) partition by key(c1) partitions 4; -Query OK, 0 rows affected (0.16 sec) - -OceanBase(admin@test)>create table t2(c1 int primary key, c2 int); -Query OK, 0 rows affected (0.16 sec) -OceanBase(admin@test)>select * from t2; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 1 | -| 2 | 2 | -| 3 | 3 | -| 4 | 4 | -+----+------+ -4 rows in set (0.06 sec) -``` - - - -* 向表 t1 中插入一行数数据。 - - - - -```javascript -OceanBase(admin@test)>insert into t1 values(1,1); -Query OK, 1 row affected (0.01 sec) - -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 1 | -+----+------+ -1 row in set (0.04 sec) -``` - - - -* 向表 t1 中插入多行数据。 - - - - -```javascript -OceanBase(admin@test)>insert t1 values(1,1),(2,default),(2+2,3*4); -Query OK, 3 rows affected (0.02 sec) -Records: 3 Duplicates: 0 Warnings: 0 - -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 1 | -| 2 | NULL | -| 4 | 12 | -+----+------+ -3 rows in set (0.02 sec) -``` - - - -* 向表 t1 指定的 p0 分区插入单行数据。 - - - - -```javascript -OceanBase(admin@test)>insert into t1 partition(p0) (c1) values(5); -Query OK, 1 row affected (0.02 sec) -OceanBase(admin@test)>select * from t1 partition(p0); -+----+------+ -| c1 | c2 | -+----+------+ -| 5 | NULL | -+----+------+ -1 row in set (0.01 sec) -``` - - - -* 将表 t2 的查询结果作为数据插入表 t1。 - - - - -```javascript -OceanBase(admin@test)>insert into t1 select * from t2; -Query OK, 4 rows affected (0.02 sec) -Records: 4 Duplicates: 0 Warnings: 0 - -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 1 | -| 2 | 2 | -| 3 | 3 | -| 4 | 4 | -+----+------+ -4 rows in set (0.01 sec) -``` - - - -* 向表 t1 中插入重复主键值时利用 ON DUPLICATE KEY UPDATE 功能进行值更新 - - - - -```javascript -OceanBase(admin@test)>insert into t1 values(1,1),(1,2) ON DUPLICATE KEY UPDATE c1=100; -Query OK, 3 rows affected (0.01 sec) -Records: 2 Duplicates: 1 Warnings: 0 - -OceanBase(admin@test)>select * from t1; -+-----+------+ -| c1 | c2 | -+-----+------+ -| 100 | 1 | -+-----+------+ -1 row in set (0.02 sec) -``` - - - -* 对可更新视图v的插入值 - - - - -```javascript -OceanBase(admin@test)>create view v as select * from t1; -Query OK, 0 rows affected (0.07 sec) -OceanBase(admin@test)>insert into v values(1,1); -Query OK, 1 row affected (0.01 sec) - -OceanBase(admin@test)>select * from v; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 1 | -+----+------+ -1 row in set (0.02 sec) -``` - - - -注意事项 -------------- - -INSERT语句不支持直接对子查询进行插入操作,比如: - -`insert into (select * from t1) values(1, 1);` - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/42.KILL.md b/docs/docs-cn/10.sql-reference/5.sql-statement/42.KILL.md deleted file mode 100644 index ae0a9ed3e..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/42.KILL.md +++ /dev/null @@ -1,60 +0,0 @@ -KILL -========================= - - - -描述 ------------ - -该语句用来终止一个会话。 -**说明** - - - -如果您拥有 PROCESS 权限,则您可以查看所有会话。如果您拥有 SUPER 权限,您可以终止所有会话和语句。否则,您只能查看和终止您自己的会话和语句。 - -格式 ------------ - -```javascript -KILL [CONNECTION | QUERY] 'sessionid' -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-----------------|-----------------------------------| -| KILL CONNECTION | 与不含修改符的KILL一样,可终止给定的 *threadid* 。 | -| KILL QUERY | 可终止连接当前正在执行的语句,但是会保持连接的原状。 | - - - -示例 ------------ - -终止 sessionid 为 3221638213 的会话连接当前正在执行的语句后,再终止该会话。 - -```javascript -OceanBase(admin@test)>show processlist; -+------------+-------+--------------------+------+---------+------+--------+------------------+ -| Id | User | Host | db | Command | Time | State | Info | -+------------+-------+--------------------+------+---------+------+--------+------------------+ -| 3221638212 | admin | 1.11.111.127:11161 | test | Query | 0 | ACTIVE | show processlist | -| 3221638213 | admin | 1.11.111.127:11161 | test | Query | 0 | ACTIVE | select "abcedfg" | -+------------+-------+--------------------+------+---------+------+--------+------------------+ -1 row in set (0.03 sec) - -OceanBase(admin@test)>kill query 3221638213; -Query OK, 0 rows affected (0.01 sec) - -OceanBase(admin@test)>kill 3221638212; -Query OK, 0 rows affected (0.01 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/43.purge-database.md b/docs/docs-cn/10.sql-reference/5.sql-statement/43.purge-database.md deleted file mode 100644 index 9652b1c9d..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/43.purge-database.md +++ /dev/null @@ -1,60 +0,0 @@ -PURGE DATABASE -=================================== - - - -描述 ------------ - -该语句用于删除放在回收站的数据库。 - -格式 ------------ - -```javascript - PURGE DATABASE object_name; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-------------|--------------| -| object_name | 对象进入回收站后的新名字 | - - - -示例 ------------ - -* 删除放在回收站的数据库 __recycle_$_1_1597384386029184。 - - - - -```javascript -OceanBase(admin@test)> create database db1; -Query OK, 1 row affected (0.03 sec) - -OceanBase(admin@test)> drop database db1; -Query OK, 0 rows affected (0.04 sec) - -OceanBase(admin@test)> show recyclebin; -+--------------------------------+---------------+----------+----------------------------+ -| OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | -+--------------------------------+---------------+----------+----------------------------+ -| __recycle_$_1_1597384386029184 | db1 | DATABASE | 2020-08-14 13:53:06.029367 | -+--------------------------------+---------------+----------+----------------------------+ -1 row in set (0.01 sec) - -OceanBase(admin@test)> purge database __recycle_$_1_1597384386029184; -Query OK, 0 rows affected (0.03 sec) - -OceanBase(admin@test)> show recyclebin; -``` - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/44.purge-index.md b/docs/docs-cn/10.sql-reference/5.sql-statement/44.purge-index.md deleted file mode 100644 index 0ddb29406..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/44.purge-index.md +++ /dev/null @@ -1,62 +0,0 @@ -PURGE INDEX -================================ - - - -描述 ------------ - -该语句用来删除放在回收站中的索引表。 - -格式 ------------ - -```javascript - PURGE INDEX object_name; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-------------|--------------| -| object_name | 对象进入回收站后的新名字 | - - - -示例 ------------ - -* 删除放在回收站中的索引表 __recycle_$_1_1597387726700872。 - - - - -```javascript -OceanBase(admin@test)> create table t1(c1 int); -Query OK, 0 rows affected (0.09 sec) - -OceanBase(admin@test)> create index idx on t1(c1); -Query OK, 0 rows affected (0.48 sec) - -OceanBase(admin@test)> drop table t1; -Query OK, 0 rows affected (0.03 sec) - -OceanBase(admin@test)> show recyclebin; -+--------------------------------+----------------------------+-------+----------------------------+ -| OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | -+--------------------------------+----------------------------+-------+----------------------------+ -| __recycle_$_1_1597387726700872 | __idx_1101710651081557_idx | INDEX | 2020-08-14 14:48:46.699145 | -| __recycle_$_1_1597387726712976 | t1 | TABLE | 2020-08-14 14:48:46.712643 | -+--------------------------------+----------------------------+-------+----------------------------+ -5 rows in set (0.01 sec) - -OceanBase(admin@test)> purge index __recycle_$_1_1597387726700872; -Query OK, 0 rows affected (0.04 sec) -``` - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/45.purge-recyclebin.md b/docs/docs-cn/10.sql-reference/5.sql-statement/45.purge-recyclebin.md deleted file mode 100644 index b28b5753a..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/45.purge-recyclebin.md +++ /dev/null @@ -1,43 +0,0 @@ -PURGE RECYCLEBIN -===================================== - - - -描述 ------------ - -该语句用于 root 用户清空回收站。 -**注意** - - - -PURGE RECYCLEBIN会清除回收站中的所有东西,只有 root 用户才能够执行这条语句,操作时请谨慎。 - -格式 ------------ - -```javascript - PURGE RECYCLEBIN; -``` - - - -参数解释 -------------- - -无。 - -示例 ------------ - -* root 用户清空回收站。 - - - - -```javascript -OceanBase(admin@test)> purge recyclebin; -Query OK, 0 rows affected (0.03 sec) -``` - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/46.purge-table.md b/docs/docs-cn/10.sql-reference/5.sql-statement/46.purge-table.md deleted file mode 100644 index 238a67e6e..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/46.purge-table.md +++ /dev/null @@ -1,59 +0,0 @@ -PURGE TABLE -================================ - - - -描述 ------------ - -该语句用于删除放在回收站的表。 - -格式 ------------ - -```javascript - PURGE TABLE object_name; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-------------|--------------| -| object_name | 对象进入回收站后的新名字 | - - - -示例 ------------ - -* 删除放在回收站中的表 __recycle_$_1_1099511628776_1099511677778。 - - - - -```javascript -OceanBase(admin@test)> create table test(c1 int); -Query OK, 0 rows affected (0.16 sec) - -OceanBase(admin@test)> drop table test; -Query OK, 0 rows affected (0.03 sec) - -OceanBase(admin@test)> show recyclebin; -+-------------------------------------------+---------------+-------+----------------------------+ -| OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | -+-------------------------------------------+---------------+-------+----------------------------+ -| __recycle_$_1_1099511628776_1099511677778 | test | TABLE | 2017-10-20 17:40:22.304025 | -+-------------------------------------------+---------------+-------+----------------------------+ -1 row in set (0.02 sec) - -OceanBase(admin@test)> purge table __recycle_$_1_1099511628776_1099511677778; -Query OK, 0 rows affected (0.04 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/47.purge-tenant.md b/docs/docs-cn/10.sql-reference/5.sql-statement/47.purge-tenant.md deleted file mode 100644 index de8deded8..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/47.purge-tenant.md +++ /dev/null @@ -1,63 +0,0 @@ -PURGE TENANT -================================= - - - -描述 ------------------------ - -该语句用于删除放在回收站的租户。 -**注意** - - - -该语句只有系统租户可以执行。 - -格式 ------------------------ - -```unknow -PURGE TENANT tenant_name; -``` - - - -参数解释​ --------------------------- - - - -| 参数 | 描述 | -|-------------|--------------------------------------------------------------------------------------| -| tenant_name | 租户名称。可以使用删除前的原始租户名,也可以使用在回收站中的名字。回收站中的名字具有唯一性,可以指定确定的租户;原始租户名可能会重复,此时删除的是最早进入回收站的租户。 | - - - -示例 ------------------------ - -* 删除放在回收站中的租户 mysql。 - - - - - - -```unknow -obclient>show recyclebin; -+--------------------------------+---------------+--------+----------------------------+ -| OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | -+--------------------------------+---------------+--------+----------------------------+ -| __recycle_$_1_1599722585571328 | mysql | TENANT | 2020-09-10 15:36:54.712101 | -+--------------------------------+---------------+--------+----------------------------+ -1 row in set (0.02 sec) - -obclient>purge tenant mysql; -Query OK, 0 rows affected (0.17 sec) - -obclient>show recyclebin; -Empty set (0.02 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/48.rename-table.md b/docs/docs-cn/10.sql-reference/5.sql-statement/48.rename-table.md deleted file mode 100644 index 269215628..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/48.rename-table.md +++ /dev/null @@ -1,96 +0,0 @@ -RENAME TABLE -================================= - - - -描述 ------------ - -该语句用来对一个或多个表进行重命名。 - -格式 ------------ - -```javascript -RENAME TABLE tblname TO newtblname -[, tb1name2 TO newtblname ...]; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|---------------------------------------------------------------------------|------------------| -| tblname | 原表名。 | -| newtblname | 新表名。 | -| tblname TO newtblname \[, tb1name2 TO newtblname ...\]; | 多个表重命名时,使用","隔开。 | - - - -注意事项 -------------- - -* 重命名操作自动进行,重命名正在进行时,其他线程不能读取任何表。 - -* 如果此语句用于对多个表进行重命名,则重命名操作从左到右进行。 - -* 当您执行 RENAME 时,您不能有被锁定的表,也不能有处于活性状态的事务。还必须拥有原表的 ALTER 和 DROP 权限,以及新表的 CREATE 和 INSERT 权限。 - -* RENAME TABLE 也可以用于视图,只要确保是在同一个数据库中。 - - - - -示例 ------------ - -1. 创建表 t1 和 t2。 - - - - -```javascript -create table t1(c1 int); - -create table t2(c1 int); -``` - - - -2. 将表 t1 重命名为 t11。 - - - - -```javascript -rename table t1 to t11; -``` - - - -3. 将表 t11 重命名为 t111,表 t2 重命名为 t22。 - - - - -```javascript -rename table t11 to t111, t2 to t22; -``` - - - -4. 将表 t111 重命名为 t1111 后,再将表 t1111重命名为 t1。 - - - - -```javascript -rename table t111 to t1111, t1111 to t1; -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/49.rename-user.md b/docs/docs-cn/10.sql-reference/5.sql-statement/49.rename-user.md deleted file mode 100644 index ad62b5b35..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/49.rename-user.md +++ /dev/null @@ -1,110 +0,0 @@ -RENAME USER -================================ - - - -描述 ------------ - -该语句用于修改 OceanBase 登录用户的用户名。 -**说明** - - - -必须拥有全局 CREATE USER 权限,才可以使用本命令。 - -格式 ------------ - -```javascript -RENAME USER -'oldusername' TO 'newusername' -[,'oldusername' TO 'newusername'...]; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|--------------------------------|-----------------------------------------------------------| -| oldusername | 旧用户名。 | -| newusername | 新用户名。用户名的占用字节小于或等于16。 | -| 'oldusername' TO 'newusername' | 修改用户名。同时修改多个用户名时,用","隔开。 修改前后,新旧用户权限保持一致。 | - - - -示例 ------------ - -1. 修改前,执行以下命令,查看用户。 - - - - -```javascript -SELECT user FROM mysql.user; -``` - - - -结果如下所示。 - -```javascript -mysql> SELECT user FROM mysql.user; -+-----------+ -| user | -+-----------+ -| root | -| admin | -| sqluser01 | -| sqluser02 | -+-----------+ -4 rows in set (0.00 sec) -``` - - - -2. 执行以下命令,将 sqluser01 用户的用户名修改为 obsqluser01。 - -```javascript -RENAME USER 'sqluser01' TO 'obsqluser01'; -``` - - - -3. 修改后,执行以下命令,查看用户。 - -```javascript -SELECT user FROM mysql.user; -``` - - - -结果如下所示。 sqluser01 用户的用户名被修改为 obsqluser01。 - -```javascript -mysql> RENAME USER 'sqluser01' TO 'obsqluser01'; -Query OK, 0 rows affected (0.04 sec) - -mysql> SELECT user FROM mysql.user; -+-------------+ -| user | -+-------------+ -| root | -| admin | -| obsqluser01 | -| sqluser02 | -+-------------+ -4 rows in set (0.00 sec) -``` - - - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/5.alter-resource-unit.md b/docs/docs-cn/10.sql-reference/5.sql-statement/5.alter-resource-unit.md deleted file mode 100644 index 67a6eb766..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/5.alter-resource-unit.md +++ /dev/null @@ -1,60 +0,0 @@ -ALTER RESOURCE UNIT -======================================== - - - -描述 ------------ - -该语句用来修改资源单元配置。 - -格式 ------------ - -```javascript -ALTER RESOURCE UNIT unitname -MAX_CPU [=] cpunum, -MAX_MEMORY [=] memsize, -MAX_IOPS [=] iopsnum, -MAX_DISK_SIZE [=] disksize, -MAX_SESSION_NUM [=] sessionnum, -[MIN_CPU [=] cpunum,] -[MIN_MEMORY [=] memsize,] -[MIN_IOPS [=] iopsnum] ; -``` - - - -参数解释 -------------- - - - -| 参数 | 描述 | -|-----------------|---------------------------------------------------| -| MAX_CPU | 指定要修改的 CPU 最多数量 | -| MAX_MEMORY | 指定要修改的最大内存容量,取值范围为\[1073741824, +∞) 单位为字节,即最小值为1G | -| MAX_IOPS | 指定要修改的 IOPS 最多数量,取值范围为\[128,+∞) | -| MAX_DISK_SIZE | 指定要修改的最大硬盘容量,取值范围为[536870912,+∞]单位为字节,即最小值为512M | -| MAX_SESSION_NUM | 指定要修改的 session 最多数量,取值范围为\[64,+∞) | -| MIN_CPU | 指定要修改的 CPU 最少数量 | -| MIN_MEMORY | 指定要修改的最小内存容量 | -| MIN_IOPS | 指定要修改的 IOPS 最少数量 | - - - -示例 ------------ - -* 修改资源单元 unit1 最高配置为 2个CPU,2G 的内存容量。 - - - - -```javascript -OceanBase(admin@test)> ALTER RESOURCE UNIT unit1 max_cpu 2, max_memory '2G'; -Query OK, 0 rows affected (0.02 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/50.REPLACE.md b/docs/docs-cn/10.sql-reference/5.sql-statement/50.REPLACE.md deleted file mode 100644 index c06309141..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/50.REPLACE.md +++ /dev/null @@ -1,124 +0,0 @@ -REPLACE -============================ - - - -描述 ------------ - -该语句用于替换一个或多个记录到表。如果没有主键或唯一键冲突则插入记录,如果存在冲突则先删除冲突记录再插入新的记录。 - -格式 ------------ - -```javascript -replace_stmt: - REPLACE [INTO] table_factor [PARTITION (partition_name_list)] [(column_name_list)] - {VALUES | VALUE} column_value_lists; - -partition_name_list: - partition_name [, partition_name ...] - -column_name_list: - column_name [, column_name ...] - -column_value_lists: - (column_value_list) [, (column_value_list) ...] - -column_value_list: - column_value [, column_value ...] - -column_value: - {expression | DEFAULT} -``` - - - - - -### 参数解释 - - - -| **参数** | **描述** | -|---------------------|-----------| -| table_factor | 替换的表名 | -| column_name_list | 指定替换数据的列 | -| partition_name_list | 替换表指定的分区名 | - - - -### 示例 - -本示例基于如下表定义。 - -```javascript -OceanBase(admin@test)>create table test (c1 int primary key, c2 varchar(40)); -Query OK, 0 rows affected (0.23 sec) -``` - - - -1. 替换 test 表中的行一和行二的值分别为 'hello alibaba' 和 'hello ob'。 - - - - -```javascript -OceanBase(admin@test)>REPLACE INTO test VALUES (1, 'hello alibaba'),(2, 'hello ob'); -Query OK, 2 rows affected (0.01 sec) -Records: 2 Duplicates: 0 Warnings: 0 -``` - - - -2. 查看 test 表中的行一和行二内容。 - - - - -```javascript -OceanBase(admin@test)>SELECT * FROM test; -+----+---------------+ -| c1 | c2 | -+----+---------------+ -| 1 | hello alibaba | -| 2 | hello ob | -+----+---------------+ -2 rows in set (0.00 sec) -``` - - - -3. 替换表 test 中的行三和行二的内容分别为 'hello alibaba' 和 'hello oceanbase'。 - - - - -```javascript -OceanBase(admin@test)>REPLACE INTO test VALUES (3, 'hello alibaba'),(2, 'hello oceanbase'); -Query OK, 3 rows affected (0.00 sec) -Records: 2 Duplicates: 1 Warnings: 0 -``` - - - -4. 查看 test 表中的行一、行二和行三的内容。 - - - - -```javascript -OceanBase(admin@test)>SELECT * FROM test; -+----+-----------------+ -| c1 | c2 | -+----+-----------------+ -| 1 | hello alibaba | -| 2 | hello oceanbase | -| 3 | hello alibaba | -+----+-----------------+ -3 rows in set (0.00 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/51.REVOKE.md b/docs/docs-cn/10.sql-reference/5.sql-statement/51.REVOKE.md deleted file mode 100644 index 8206f70a5..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/51.REVOKE.md +++ /dev/null @@ -1,113 +0,0 @@ -REVOKE -=========================== - - - -描述 ------------ - -该语句用于系统管理员撤销 User 的某些权限。 - -使用说明如下: - -* 用户必须拥有被撤销的权限(例如,user1 要撤销 user2 对表 t1 的 SELECT 权限,则 user1 必须拥有表 t1 的 SELECT的权限),并且拥有 GRANT OPTION权限。 - -* 撤销 ALL PRIVILEGES 和 GRANT OPTION 权限时,当前用户必须拥有全局 GRANT OPTION 权限,或者对权限表的UPDATE 及 DELETE 权限。 - -* 撤销操作不会级联。例如,用户 user1 给 user2 授予了某些权限,撤回 user1 的权限不会同时也撤回 user2 的相应权限。 - - - - -格式 ------------ - -```javascript -REVOKE priv_type -     ON database.tblname -     FROM 'username'; - -privilege_type: - ALTER - | CREATE - | CREATE USER - | CREATE VIEW - | DELETE - | DROP - | GRANT OPTION - | INDEX - | INSERT - | PROCESS - | SELECT - | SHOW DATABASES - | SHOW VIEW - | SUPER - | UPDATE - | USAGE -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|------------------|---------------------------------------------------------------------------------------| -| priv_type | 指定撤销的权限类型。具体的权限类型及其说明请参见下方权限类型说明表。 同时对某个用户撤销多个权限时,权限类型用","隔开。 | -| database.tblname | 指定数据库中的表。 用"\*"代替 database 或 *table_name* ,表示撤销全局权限,即撤销对数据库中所有表的操作权限。 | -| username | 指定撤销权限的用户。同时撤销多个用户的授权时,用户名用","隔开。 | - - - -可以撤销的权限类型如下表所示。 - -**权限类型说明表** - - -| **权限** | **说明** | -|-------------------|-----------------------------------------------------------------| -| ALL PRIVILEGES | 除GRANT OPTION以外所有权限。 | -| ALTER | ALTER TABLE的权限。 | -| CREATE | CREATE TABLE的权限。 | -| CREATE USER | CREATE USER,DROP USER,RENAME USER和REVOKE ALL PRIVILEGES的权限。 | -| CREATE TABLEGROUP | 全局CREATE TABLEGROUP的权限。 | -| DELETE | DELETE的权限。 | -| DROP | DROP的权限。 | -| GRANT OPTION | GRANT OPTION的权限。 | -| INSERT | INSERT的权限。 | -| SELECT | SELECT的权限。 | -| UPDATE | UPDATE的权限。 | -| SUPER | SET GLOBAL修改全局系统参数的权限。 | -| SHOW DATABASES | 全局 SHOW DATABASES的权限。 | -| INDEX | CREATE INDEX, DROP INDEX的权限。 | -| CREATE VIEW | 创建、删除视图的权限。 | -| SHOW VIEW | SHOW CREATE VIEW权限。 | -| CREATE SYNONYM | 创建同义词的权限。 | - - - - -**说明** - - - -目前没有change effective tenant 的权限控制,故 sys 租户下的用户都可以撤销权限。 - -示例 ------------ - -执行以下命令撤销用户 obsqluser01 的所有权限。 - -```javascript -OceanBase(admin@TEST)>REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'obsqluser01'; -Query OK, 0 rows affected (0.03 sec) -``` - - - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/52.SAVEPOINT.md b/docs/docs-cn/10.sql-reference/5.sql-statement/52.SAVEPOINT.md deleted file mode 100644 index dcf022ec4..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/52.SAVEPOINT.md +++ /dev/null @@ -1,140 +0,0 @@ -SAVEPOINT -============================== - - - -描述 ------------ - -SAVEPOINT语句用来实现事务的部分回滚。 - -格式 ------------ - -1. 创建savepoint: - - - - -```javascript -SAVEPOINT spname -``` - - - - - -2. 回滚到savepoint: - - - - -```javascript -ROLLBACK [WORK] to [SAVEPOINT] spname -``` - - - - - -3. 删除savepoint: - - - - -```javascript -RELEASE SAVEPOINT spname -``` - - - - - -参数说明 -------------- - -* spname:指定savepoint的名称。savepoint是事务范围内唯一的,一个savepoint会覆盖前一个同名的savepoint。创建savepoint后可以将事务回滚到指定savepoint,也可以使用`ROLLBACK`语句回滚整个事务。 - - - - - - -举例 ------------ - -假设一个事务执行了如下语句: - - -| **sql_no** | **语句** | **分区** | -|------------|---------------|------------| -| 1 | update... | p1, p4 | -| | savepoint sp1 | | -| 2 | update... | p2, p4 | -| 3 | update... | p3, p5 | -| | savepoint sp2 | | -| 4 | update... | p1, p3, p6 | -| 5 | update... | p1, p5 | -| | savepoint sp3 | | -| 6 | select... | | -| 7 | update... | p5, p6 | -| | savepoint sp4 | | - - - -#### 记录savepoint - -用户在提交事务之前可以创建savepoint,需要根据savepoint创建的顺序,将事务的savepoint串成链表。以上事务包含了7条sql和4个savepoint,记录savepoint的链表如下图所示,其中每个节点记录了\的映射关系: - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/3501155061/p149175.png "image.png") - - - -#### 事务参与者列表 - -事务为了支持回滚某条sql之后的所有修改,需要将每条语句涉及的参与者以及对应的sql_no记录下来,以上事务执行了7条sql,涉及p1\~p6共6个partition: - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/3501155061/p149176.png "image.png") - - - -#### savepoint回滚过程 - -1. 根据savepoint链表查询spname对应的sql_no - - - - -假设用户执行`ROLLBACK to SAVEPOINT sp2`,根据savepoint链表查询到sp2对应的sql_no为3。 - -2. 根据事务参与者列表查询sql_no对应的partition - - - - -根据事务参与者列表查询到sql_no大于3的语句操作的分区涉及p1、p3、p5、p6。 - -3. 回滚分区数据 - - - - -根据第2步查询到的分区,调度程序向这些分区发起回滚请求,回滚当前事务在这些分区上sp2之后的所有修改。其中p1、p3、p5上关于本事务的部分修改被回滚掉,p6上关于本事务的所有修改都被回滚掉。 - -4. 更新事务参与者列表信息 - - - - -修改事务参与者列表,将sql_no大于3的操作信息从事务参与者列表中删除,由于p6上的所有修改都被回滚掉,因此p6可以从参与者列表中删除。 - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/3501155061/p149177.png "image.png") - -5. 删除无效的savepoint - - - - -用户执行`ROLLBACK to SAVEPOINT sp2`成功后,系统会删除sp3和sp4的savepoint,不允许再回滚到sp3和sp4。 - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/3501155061/p149178.png "image.png") diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/53.SCHEMA.md b/docs/docs-cn/10.sql-reference/5.sql-statement/53.SCHEMA.md deleted file mode 100644 index 4643f06a7..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/53.SCHEMA.md +++ /dev/null @@ -1,6 +0,0 @@ -SCHEMA -=========================== - - - -`SCHEMA`同`DATABASE`,请参考 CREATE DATABASE、ALTER DATABASE、DROP DATABASE 的详细描述。 diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/54.SELECT.md b/docs/docs-cn/10.sql-reference/5.sql-statement/54.SELECT.md deleted file mode 100644 index 97cb7d991..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/54.SELECT.md +++ /dev/null @@ -1,376 +0,0 @@ -SELECT -=========================== - - - -SELECT 的语法相对比较复杂。本节首先会介绍普通的 SELECT 语法结构,然后介绍集合类 SELECT 的语法结构。 - -SIMPLE SELECT ----------------------- - -### 描述 - -该语句用于查询表中的内容。 - -### 格式 - -```javascript -simple_select: -SELECT [/*+ hint statement */] [ALL | DISTINCT | UNIQUE | SQL_CALC_FOUND_ROWS] - select_expr_list FROM from_list [WHERE condition] - [GROUP BY group_expression_list [WITH ROLLUP] [HAVING condition]] - [ORDER BY order_expression_list] - [limit_clause] - [FOR UPDATE] - -select_expr: - table_name.* - | table_alias_name.* - | expr [[AS] column_alias_name] - -from_list: - table_reference [, table_reference ...] - -table_reference: - simple_table - | joined_table - -simple_table: - table_factor [partition_option] [[AS] table_alias_name] - | (select_stmt) [AS] table_alias_name - | (table_reference_list) - -joined_table: - table_reference [INNER] JOIN simple_table [join_condition] - | table_reference outer_join_type JOIN simple_table join_condition - -partition_option: - PARTITION (partition_name_list) - -partition_name_list: - partition_name [, partition_name ...] - -outer_join_type: - {LEFT | RIGHT | FULL} [OUTER] - -join_condition: - ON expression - -condition: - expression - -group_expression_list: - group_expression [, group_expression ...] - -group_expression: - expression [ASC | DESC] - -order_expression_list: - order_expression [, order_expression ...] - -order_expression: - expression [ASC | DESC] - -limit_clause: - LIMIT {[offset,] row_count |row_count OFFSET offset} -``` - - - -### 参数解释 - - - -| 参数 | 描述 | -|--------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| ALL \| DISTINCT \| UNIQUE \| SQL_CALC_FOUND_ROWS | 在数据库表中,可能会包含重复值。 * 指定"DISTINCT",则在查询结果中相同的行只显示一行; * 指定"ALL",则列出所有的行; * 指定"SQL_CALC_FOUND_ROWS",则不输出数据,只返回数据行数; * 不指定时,默认为"ALL"。 | -| select_expr | 列出要查询的表达式或列名,用","隔开。也可以用"\*"表示所有列。 | -| AS othername | 为输出字段重新命名。 | -| FROM table_references | 指名了从哪个表或哪些表中读取数据(支持多表查询)。 | -| WHERE where_conditions | 可选项,WHERE 字句用来设置一个筛选条件,查询结果中仅包含满足条件的数据。where_conditions 为表达式。 | -| GROUP BY group_by_list | 用于进行分类汇总。 | -| HAVING search_confitions | HAVING 字句与 WHERE 字句类似,但是 HAVING 字句可以使用累计函数(如 SUM,AVG 等)。 | -| ORDER BY order_list order_list : colname \[ASC \| DESC\] \[,colname \[ASC \| DESC\]...\] | 用来按升序(ASC)或者降序(DESC)显示查询结果。不指定 ASC 或者 DESC 时,默认为 ASC。 | -| \[LIMIT {\[offset,\] row_count \|row_count OFFSET offset}\] | 强制 SELECT 语句返回指定的记录数。 LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。 * 如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)。 * 如果只给定一个参数,它表示返回记录行的最大数目,偏移量为0。 | -| FOR UPDATE | 对查询结果所有行上排他锁,以阻止其他事务的并发修改,或阻止在某些事务隔离级别时的并发读取。 | -| PARTITION(partition_list) | 指定查询表的分区信息。例如:partition(p0,p1...) | - - - -### 示例 - -以如下表 a 为例。 - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/5455055061/p179248.png "image.png") - -* 从表 a 中读取 name 数据。 - - - - - - -```javascript -SELECT name FROM a; -``` - - - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/5455055061/p179249.png "image.png") - -* 在查询结果中对 name 进行去重处理。 - - - - - - -```javascript -SELECT DISTINCT name FROM a; -``` - - - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/5455055061/p179250.png "image.png") - -* 从表 a 中查询 id,name,num,然后把 num 列除以2输出,输出的列名为 avg。 - - - - - - -```javascript -SELECT id, name, num/2 AS avg FROM a; -``` - - - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/5455055061/p179251.png "image.png") - -* 从表 a 中根据筛选条件" name = 'a' " ,输出对应的 id 、name 和 num 。 - - - - - - -```javascript -SELECT id, name, num FROM a WHERE name = 'a'; -``` - - - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/5455055061/p179252.png "image.png") - -* 从表 a 中查询 id,name,按照 name 分组对 num 求和,并输出。 - - - - - - -```javascript -SELECT id, name, SUM(num) FROM a GROUP BY name; -``` - - - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/6455055061/p179253.png "image.png") - -* 从表 a 中查询 id,name,按照 name 分组对 num 求和,查询 num 总和小于160的行,并输出。 - - - - - - -```javascript -SELECT id, name, SUM(num) as sum FROM a GROUP BY name HAVING SUM(num) < 160; -``` - - - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/6455055061/p179254.png "image.png") - -* 从表 a 中查询 id,name,num,根据 num 按升序(ASC)输出查询结果。 - - - - - - -```javascript -SELECT * FROM a ORDER BY num ASC; -``` - - - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/6455055061/p179255.png "image.png") - -* 从表 a 中查询 id,name,num,根据 num 按降序(DESC)输出查询结果。 - - ```javascript - SELECT * FROM a ORDER BY num DESC; - ``` - - ![](https://icms.alibaba-inc.com/api/v2/open/lite-inoe/cms/load?url=../images/p179256.png&langId=1&t=1604912832327) - -* 从表 a 中查询 id,name,num,使用 LIMIT强制从第2行开始,返回表 a 的两行结果。 - - ```javascript - SELECT * FROM a LIMIT 1,2; - ``` - - - - ​![](https://cdn.nlark.com/yuque/0/2020/png/1701278/1595841219661-e9f4c4ae-ec93-4828-be06-1d5f9004e788.png) - - - - - -集合类 SELECT -------------------- - -### 描述 - -该语句用于对多个 SELECT 查询的结果进行 UNION,MINUS,INTERSECT。 - -### 格式 - -```javascript -select_clause_set: - simple_select [ UNION | UNION ALL | EXCEPT | INTERSECT] select_clause_set_left - [ORDER BY sort_list_columns] [limit_clause] -select_clause_set_right: - simple_select | - select_caluse_set -``` - - - -### 参数解释 - - - -| 参数 | 描述 | -|-----------|--------------------------| -| UNION ALL | 合并两个查询的结果 | -| UNION | 合并两个查询的结果,并去重 | -| EXCEPT | 从左查询结果集中去重出现在右查询中的结果,并去重 | -| INTERSECT | 保留左查询结果集中出现在右查询中的结果,并去重 | - - - -### 示例 - -以如下两表的数据为例: - -```javascript -create table t1 (c1 int, c2 int); -create table t2 (c1 int, c2 int); -insert into t1 values (1, -1), (2, -2); -insert into t2 values (1, 1), (2, -2), (3, 3); -``` - - - -* 计算 T1, T2 的所有的记录 - - - - - - -```javascript -SELECT C1, C2 FROM T1 UNION ALL SELECT C1, C2 FROM T2; -+------+------+ -| C1 | C2 | -+------+------+ -| 1 | -1 | -| 2 | -2 | -| 1 | 1 | -| 2 | -2 | -| 3 | 3 | -+------+------+ -``` - - - -* 计算 T1, T2 的去重后的所有记录 - - - - - - -```javascript -SELECT C1, C2 FROM T1 UNION SELECT C1, C2 FROM T2; -+------+------+ -| C1 | C2 | -+------+------+ -| 1 | -1 | -| 2 | -2 | -| 1 | 1 | -| 3 | 3 | -+------+------+ -``` - - - -* 计算 T1 和 T2 的交集 - - - - - - -```javascript -SELECT C1, C2 FROM T1 INTERSECT SELECT C1, C2 FROM T2; -+------+------+ -| C1 | C2 | -+------+------+ -| 2 | -2 | -+------+------+ -``` - - - -* 计算 T1 和 T2 的差集 - - - - - - -```javascript -SELECT C1, C2 FROM T1 EXCEPT SELECT C1, C2 FROM T2; -+------+------+ -| C1 | C2 | -+------+------+ -| 1 | -1 | -+------+------+ -``` - - - -* 取 T1 和 T2 并集中 C2 排序最大的前两行 - - - - - - -```javascript -SELECT C1, C2 FROM T1 UNION SELECT C1, C2 FROM T2 ORDER BY C2 DESC LIMIT 2; -+------+------+ -| C1 | C2 | -+------+------+ -| 3 | 3 | -| 1 | 1 | -+------+------+ -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/55.SESSION.md b/docs/docs-cn/10.sql-reference/5.sql-statement/55.SESSION.md deleted file mode 100644 index 5347a1687..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/55.SESSION.md +++ /dev/null @@ -1,63 +0,0 @@ -SESSION -============================ - - - -描述 ------------ - -该语句用来强制结束 session。 - -格式 ------------ - -```javascript -session_stmt: - KILL [CONNECTION] session_id; - -session_id: - INT_VALUE -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|------------|-----------------| -| session_id | 要结束 session 的编号 | - - - -示例 ------------ - -* 强制结束编号为 3221502221和 3221750376 的 session。 - - - - -```javascript -OceanBase(admin@test)>show processlist; -+------------+-------+---------------------+------+---------+------+--------+----------------------------------+ -| Id | User | Host | db | Command | Time | State | Info | -+------------+-------+---------------------+------+---------+------+--------+----------------------------------+ -| 3221502221 | admin | 100.xx.xx.xx:44775 | test | Sleep | 10 | SLEEP | NULL | -| 3221502083 | admin | 100.xx.xx.xx:44720 | test | Query | 0 | ACTIVE | show processlist | -| 3221502317 | NULL | 100.xx.xx.xx:41414 | test | Query | 0 | ACTIVE | REMOTE/DISTRIBUTE PLAN EXECUTING | -| 3221750377 | NULL | 100.xx.xx.xx:41414 | test | Query | 0 | ACTIVE | REMOTE/DISTRIBUTE PLAN EXECUTING | -| 3221750376 | admin | 100.xx.xx.xx:43783 | test | Sleep | 4 | SLEEP | NULL | -+------------+-------+---------------------+------+---------+------+--------+----------------------------------+ -5 rows in set (0.04 sec) - -OceanBase(admin@test)>kill 3221502221; -Query OK, 0 rows affected (0.00 sec) - -OceanBase(admin@test)>kill connection 3221750376; -Query OK, 0 rows affected (0.05 sec) -``` - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/56.set-password.md b/docs/docs-cn/10.sql-reference/5.sql-statement/56.set-password.md deleted file mode 100644 index ba6151afd..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/56.set-password.md +++ /dev/null @@ -1,49 +0,0 @@ -SET PASSWORD -================================= - - - -描述 ------------ - -该用于修改 OceanBase 当前登录用户或其他用户的密码。 - -格式 ------------ - -```javascript -SET PASSWORD [FOR user] = password_option; - -password_option: { -PASSWORD('authstring') -|'hashstring' -} -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|----------|----------------------------------------------------------------------------------------------------------------------------------------------| -| FOR user | 如果没有 For user 子句,表示修改当前用户的密码。任何成功登录的用户都可以修改当前用户的密码。 如果有 For user 子句,表示修改指定用户的密码。必须拥有全局(MySQL库)的 CREATE USER 权限,才可以修改指定用户的密码。 | - - - -示例 ------------ - -执行以下命令将 sqluser01 用户的密码修改为 abc123。 - -```javascript -oceanBase(admin@TEST)>set password for sqluser01 = password('abc123'); -Query OK, 0 rows affected (0.02 sec) -``` - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/57.show-grants.md b/docs/docs-cn/10.sql-reference/5.sql-statement/57.show-grants.md deleted file mode 100644 index d8e67eb49..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/57.show-grants.md +++ /dev/null @@ -1,51 +0,0 @@ -SHOW GRANTS -================================ - - - -描述 ------------ - -该语句用于系统管理员查看 User 的操作权限。 - -格式 ------------ - -```javascript -SHOW GRANTS [FOR username]; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|--------------|----------------------------------------------------------------------------------------------------| -| FOR username | 如果不指定用户名,则缺省显示当前用户的权限。当前用户可以查看自己的权限。 如果需要查看其他指定用户的权限,必须拥有对 mysql.user 的 SELECT 权限。 | - - - -示例 ------------ - -查看看用户 obsqluser01 的权限。 - -```javascript -oceanBase(admin@TEST)>show grants for obsqluser01; -+-------------------------------------+ -| Grants for obsqluser01@% | -+-------------------------------------+ -| GRANT USAGE ON *.* TO 'obsqluser01' | -+-------------------------------------+ -1 row in set (0.02 sec) -``` - - - - - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/58.show-recyclebin.md b/docs/docs-cn/10.sql-reference/5.sql-statement/58.show-recyclebin.md deleted file mode 100644 index aff06660b..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/58.show-recyclebin.md +++ /dev/null @@ -1,50 +0,0 @@ -SHOW RECYCLEBIN -==================================== - - - -描述 ------------ - -该语句用于查看回收站中的内容。 - -格式 ------------ - -```javascript - SHOW RECYCLEBIN; -``` - - - -参数解释 -------------- - -无。 - -示例 ------------ - -* 查看回收站中的内容。 - - - - -```javascript -OceanBase(admin@test)> create table t1(c1 int); -Query OK, 0 rows affected (0.24 sec) - -OceanBase(admin@test)> drop table t1; -Query OK, 0 rows affected (0.07 sec) - -OceanBase(admin@test)> show recyclebin; -+-------------------------------------------+---------------+-------+----------------------------+ -| OBJECT_NAME | ORIGINAL_NAME | TYPE | CREATETIME | -+-------------------------------------------+---------------+-------+----------------------------+ -| __recycle_$_1_1099511628776_1099511677777 | t1 | TABLE | 2017-10-20 17:27:40.881506 | -+-------------------------------------------+---------------+-------+----------------------------+ -1 row in set (0.02 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/59.TRANSACTION.md b/docs/docs-cn/10.sql-reference/5.sql-statement/59.TRANSACTION.md deleted file mode 100644 index 41ad83de5..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/59.TRANSACTION.md +++ /dev/null @@ -1,106 +0,0 @@ -TRANSACTION -================================ - - - -描述 ------------ - -该语句用于开启事务。 - -数据库事务(Database Transaction)是指作为单个逻辑工作单元执行的一系列操作。事务处理可以用来维护数据库的完整性,保证成批的SQL操作全部执行或全部不执行。 - -显示事务是用户自定义或用户指定的事务。通过 BEGIN TRANSACTION,或 BEGIN 和 BEGIN WORK(被作为START TRANSACTION的别名受到支持)语句显示开始,以 COMMIT 或 ROLLBACK 语句显示结束。 - -格式 ------------ - -```javascript -transaction_stmt: - START TRANSACTION [READ ONLY | READ WRITE]; - | BEGIN [WORK]; - | COMMIT [WORK]; - | ROLLBACK [WORK]; - | SET TRANSACTION {READ ONLY | READ WRITE}; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| START TRANSACTION \[READ ONLY \| READ WRITE\] | 开启事务语句。一旦开启事务,则随后的 SQL 数据操作语句(即INSERT、UPDATE、DELETE等)直到显式提交时才会生效。 READ ONLY 子句表示事务是只读方式开启,事务内不允许执行修改操作。 READ WRITE 子句表示事务是读写方式开启,默认就是此种模式。 | -| BEGIN | BEGIN 和 BEGIN WORK 被作为 START TRANSACTION 的别名受到支持 | -| COMMIT | 提交当前事务。 | -| ROLLBACK | 回滚当前事务。 | -| SET TRANSACTION {READ ONLY \| READ WRITE} | 将当前事务设置成 READ ONLY 或者 READ WRITE 模式。 | - - - -示例 ------------ - -假设现有表 a 如下所示。 - - -| id | name | num | sell_date | -|----|------|-----|---------------------| -| 1 | a | 100 | 2013-06-21 10:06:43 | -| 2 | b | 200 | 2013-06-21 13:07:21 | -| 3 | a | 50 | 2013-06-21 13:08:15 | - - - -1. 依次执行以下命令开始执行事务,将 id 为 3 的的 name 改为 c,并插入一行当前卖出 a 的记录。 - - - - -```javascript -OceanBase(admin@test)> START TRANSACTION; -Query OK, 0 rows affected (0.00 sec) - -OceanBase(admin@test)> UPDATE a SET name = 'c' WHERE id = 3; -Query OK, 1 rows affected (0.00 sec) - -OceanBase(admin@test)> INSERT INTO a VALUES (4, 'a', 30, '2013-06-21 16:09:13'); -Query OK, 1 rows affected (0.00 sec) - -OceanBase(admin@test)> COMMIT; -Query OK, 0 rows affected (0.00 sec) -``` - - - -2. 事务提交后,执行命令查看表 a 信息。 - - - - -```javascript -SELECT * FROM a; -``` - - - -结果如下: - - -| id | name | num | sell_date | -|----|------|-----|---------------------| -| 1 | a | 100 | 2013-06-21 10:06:43 | -| 2 | b | 200 | 2013-06-21 13:07:21 | -| 3 | c | 50 | 2013-06-21 13:08:15 | -| 4 | a | 30 | 2013-06-21 16:09:13 | - - -**注意** - - - -在事务还没有 COMMIT 之前,您可以查看下本事务中的操作是否已经生效,比如可以在 COMMIT 前,加一句" **SELECT \* FROM a;** "。本事务 session 的访问能读到最新的结果,本事务 session 之外的访问结果肯定是没有生效,在事务还没有 COMMIT 前,你之前做的操作除当前事务连接之外都是不可见的。如果您想回滚该事务,直接用"ROOLBACK"代替"COMMIT"。 - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/6.alter-system.md b/docs/docs-cn/10.sql-reference/5.sql-statement/6.alter-system.md deleted file mode 100644 index 3e7e18a6e..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/6.alter-system.md +++ /dev/null @@ -1,1356 +0,0 @@ -ALTER SYSTEM -================================= - - - -ALTER SYSTEM 语句用来对 OceanBase 发送命令,执行某项指定操作。 - -BOOTSTRAP ------------------- - -#### 描述 - -该语句用于自举 OceanBase 集群。 - -#### 格式 - -```javascript -alter_system_bootstrap_stmt: - ALTER SYSTEM BOOTSTRAP opt_cluster_type region_zone_server_list; - -opt_cluster_type: - [CLUSTER cluster_role] - -cluster_role: - PRIMARY | STANDBY - -region_zone_server_list: - region_zone_server [, region_zone_server ...] - -region_zone_server: - [region] zone server - -region: - REGION [=] region_name - -zone: - ZONE [=] zone_name - -server: - SERVER [=] ip_port - -ip_port: - 'STR_VALUE:INT_VALUE' -``` - - - -#### 参数解释 - -系统自举时,需要指定 RootService 信息,多台 RootService 通过逗号(,)分隔。 - - -| **参数** | **描述** | -|--------------------|---------------------------------------| -| region_name | 指定 RootService 所在的地域,通过在"多地多中心"部署时指定。 | -| zone_name | 指定 RootService 所属的 Zone。 | -| ip_port | 指定 RootService 的 IP 和端口。 | -| PRIMARY \| STANDBY | 指定主备库。系统启动时需要指定主备库,如果不指定,默认采用主库启动。 | - - - -#### 示例 - -* 指定一台 RootService: - - - - - - -```javascript -ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '10.218.248.178:55410'; -``` - - - -* 多台 RootService 通过逗号(,)分隔: - - - - - - -```javascript -ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '172.24.65.24:55410', ZONE 'zone2' -SERVER '172.24.65.114:55410'; -``` - - - -* 启动备库 - - - - - - -```javascript -ALTER SYSTEM BOOTSTRAP CLUSTER STANDBY ZONE 'zone1' SERVER '10.218.248.178:55410'; -``` - - - - - -JOB ------------- - -#### 描述 - -该语句触发参数指定的后台任务。 - -#### 格式 - -```javascript -alter_system_job_stmt: -ALTER SYSTEM RUN JOB job_name -[zone | server]; -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| JOB job_name | 指定任务名称。有特殊字符时需要单引号,其它情况下单引号加与不加都支持,已支持的 JOB 有: * check_partition_table:OBServer 执行 partition table 核对删除任务 * root_inspection:触发 RootService 自检 | -| zone \| server | 该任务指定 Zone 或者 Server 执行。 | - - - -#### 示例 - -* 触发 RootService 自检任务。 - - - - - - -```javascript -ALTER SYSTEM RUN JOB "root_inspection"; -``` - - - - - -MERGE --------------- - -#### 描述 - -该语句发起存储层合并。 - -#### 格式 - -```javascript -alter_system_merge_stmt: - ALTER SYSTEM merge_action; - -merge_action: - MAJOR FREEZE - | MINOR FREEZE - [tenant_list | replica] [server_list] [zone] - | START MERGE - zone - | {SUSPEND | RESUME} MERGE - [zone] - | CLEAN MERGE ERROR - -tenant_list: - TENANT [=] (tenant_name_list) - -tenant_name_list: - tenant_name [, tenant_name ...] - -replica: - PARTITION_ID [=] 'partition_id%partition_count@table_id' - -server_list: - SERVER [=] ip_port_list -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|---------------------------|---------------| -| MAJOR FREEZE | 发起每日合并。 | -| MINOR FREEZE | 发起转储。 | -| START MERGE | 开始每日合并。 | -| {SUSPEND \| RESUME} MERGE | 暂停或恢复每日合并。 | -| CLEAN MERGE ERROR | 清理合并出错的标记。 | -| tenant_name | 指定租户转储。 | -| PARTITION_ID | 指定副本转储。 | -| SERVER | 指定机器转储。 | -| zone | 指定 Zone 开始合并。 | - - - -#### 示例 - -* 发起每日合并。 - - - - - - -```javascript -OceanBase(root@oceanbase)>alter system major freeze; -Query OK, 0 rows affected (0.06 sec) -``` - - - - - -PARAMETER ------------------- - -#### 描述 - -该语句用来修改配置项信息。 - -#### 格式 - -```javascript -alter_system_parameter_stmt: - ALTER SYSTEM [SET] - parameter_name = expression [SCOPE = {MEMORY | SPFILE | BOTH}] [COMMENT [=} 'text'] - {SERVER [=] 'ip:port' | ZONE [=] 'zone'}; -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| parameter_name | 指定要修改的配置项名称。 | -| expression | 指定修改后的配置项的值。 | -| COMMENT 'text' | 用于添加关于本次修改的注释。该参数为可选,建议不要省略。 | -| SCOPE | 指定本次配置项修改的生效范围。它的值主要有以下三种: * MEMORY:表明只修改内存中的配置项,修改立即生效,且本修改在 Server 重启以后会失效(目前暂时没有配置项支持这种方式)。 * SPFILE:表明只修改配置表中的配置项值,当 Server 重启以后才生效。 * BOTH:表明既修改配置表,又修改内存值,修改立即生效,且 Server 重启以后配置值仍然生效。 SCOPE 默认值为 BOTH。对于不能立即生效的配置项,如果使用 BOTH 或 MEMORY,会报错 。 | -| SERVER | 只修改指定 Server 实例的某个配置项。 | -| ZONE | 表明本配置项的修改针对指定集群的特定 Server 类型,否则,针对所有集群的特定 Server 类型。 | - - -**说明** - - - -同时修改多个系统配置项时,用","隔开。 - -查看系统配置项的格式:`SHOW PARAMETERS [LIKE 'pattern' | WHERE expr];` - -#### 示例 - -* 修改配置项 enable_sql_audit 的信息。 - - - - - - -```javascript -OceanBase(root@oceanbase)>show parameters like 'enable_sql_audit'; -+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ -| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | -+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ -| z1 | observer | 11.11.111.111 | 19510 | enable_sql_audit | NULL | True | specifies whether SQL audit is turned on. The default value is TRUE. Value: TRUE: turned on FALSE: turned off | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | -+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ -1 rows in set (0.02 sec) - -OceanBase(root@oceanbase)>alter system set enable_sql_audit = false scope = BOTH; -Query OK, 0 rows affected (0.05 sec) - -OceanBase(root@oceanbase)>show parameters like 'enable_sql_audit'; -+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ -| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | -+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ -| z1 | observer | 11.11.111.111 | 19510 | enable_sql_audit | NULL | False | specifies whether SQL audit is turned on. The default value is TRUE. Value: TRUE: turned on FALSE: turned off | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | -+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ -1 rows in set (0.02 sec) -``` - - - - - -REFRESH ----------------- - -#### 描述 - -该语句系列用来触发刷新操作,包括刷新 schema、时区信息、各类缓存等。 - -#### 格式 - -```javascript -alter_system_refresh_stmt: - ALTER SYSTEM refresh_action; - -refresh_action: - REFRESH SCHEMA - [zone | server] - | REFRESH TIME_ZONE_INFO - | FLUSH cache_type CACHE - [tenant_list] [GLOBAL] - | FLUSH KVCACHE - [tenant] [CACHE [=] cache_name] - -cache_type: - ALL - | LOCATION - | CLOG - | ILOG - | COLUMN_STAT - | BLOCK_INDEX - | BLOCK - | ROW - | BLOOM_FILTER - | SCHEMA - | PLAN - -tenant: - TENANT [=] tenant_name - -cache_name: -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| REFRESH SCHEMA | 刷新 Schema。正常情况下,当系统执行 DDL 操作, RootService 都会主动通知所有 OBServer 刷新 Schema。当某些 OBServer 发生异常,和 RootService 网络中断,此时需要手动刷新 Schema。刷新Schema 可以针对单独的机器,也可以针对某个集群。 | -| REFRESH TIME_ZONE_INFO | 通知集群中的所有 Server 更新本地的时区信息。 | -| FLUSH cache_type CACHE | 清空指定 Cache 指令。 | -| FLUSH KVCACHE | 清空 KV Cache 指令。 * 如果指定 tenant 和 cache_name,则清除指定租户的指定 KV Cache * 如果只指定 tenant,则清除指定租户的全部KV Cache * 如果不指定 tenant 和 cache_name,则清除所有租户的全部KV Cache | - - - -#### 示例 - -* 刷新单台 OBServer 的 Schema: - - - - - - -```javascript -ALTER SYSTEM REFRESH SCHEMA SERVER='172.24.65.24:55410'; -``` - - - -* 刷新整个 Zone 的 Schema: - - - - - - -```javascript -ALTER SYSTEM REFRESH SCHEMA ZONE='zone1'; -``` - - - - - -REPLICA ----------------- - -#### 描述 - -该语句用来处理副本的迁移,复制,删除,副本类型转换,角色切换等行为。 - -#### 格式 - -```javascript -alter_system_replica_stmt: - ALTER SYSTEM replica_action; - -replica_action: - SWITCH REPLICA - {LEADER | FOLLOWER} - {replica server | server [tenant_name] | zone [tenant_name]} - | DROP REPLICA partition_id_desc - replica server [create_timestamp] [zone] [FORCE] - | {MOVE | COPY} REPLICA - replica source destination - | REPORT REPLICA partition_id_desc -     {zone | server} -   | RECYCLE REPLICA partition_id_desc -     {zone | server} -   | {ALTER | CHANGE | MODIFY} REPLICA   - replica server [set] REPLICA_TYPE = replica_type - -source: - SOURCE [=] 'ip:port' - -destination: - DESTINATION [=] 'ip:port' - -partition_id_desc - PARTITION_ID partition_id%partition_count@table_id - -partition_idx | partition_count | table_id | task_id: - INT_VALUE - -create_timestamp: - CREATE_TIMESTAMP [=] INT_VALUE - -tenant_name_list: - tenant_name [, tenant_name ...] - -replica_type: - {FULL | F} - | {READONLY | R} - | {LOGONLY | L} -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|-------------------------------------|---------------------------------------------------------------------------------------------------------------| -| SWITCH REPLICA | Leader 改选。 | -| DROP REPLICA | 副本删除。删除指定 OBServer 上的 Replica,必须指定 partition_id,OBServer 地址以及 create_timestamp。 | -| {MOVE \| COPY} REPLICA | 副本迁移/复制,需要指定源 OBServer 和目的 OBServer ,以及 partition_id。 | -| REPORT REPLICA | 副本汇报,强制要求某个 OBServer 或者某个 Zone 内的所有 OBServer 进行 Replica 汇报。 | -| RECYCLE REPLICA | 回收无用副本。 | -| {ALTER \| CHANGE \| MODIFY} REPLICA | 修改副本属性,可以修改指定副本的副本类型。现在已经支持的副本类型包括:FULL/READONLY/LOGONLY。'replica_type'的值可以是这三种副本类型的全称或者简写的首字符:'F/R/L';大小写通用。 | - - - -#### 示例 - -* 副本迁移 - - - - - - -```javascript -ALTER SYSTEM MOVE REPLICA PARTITION_ID '0%4@1100611139403777' -SOURCE '172.24.65.24:55410' -DESTINATION '172.24.65.26:55410'; -``` - - - -* 删除副本 - - - - - - -```javascript -ALTER SYSTEM DROP REPLICA PARTITION_ID '0%4@1100611139403777' -SERVER '172.24.65.26:55410'; -``` - - - -* 修改副本类型 - - - - - - -```javascript -ALTER SYSTEM CHANGE REPLICA PARTITION_ID '0%4@1100611139403777' -SERVER '172.24.65.26:55410'; -CHANGE REPLICA_TYPE = 'L'; -``` - - - -* Leader改选 - - - - - - -```javascript -ALTER SYSTEM SWITCH REPLICA LEADER PARTITION_ID '0%4@1100611139403777' -SERVER '172.24.65.26:55410'; -``` - - - - - -ROOTSERVICE --------------------- - -#### 描述 - -切换 RS 的角色。 - -#### 格式 - -```javascript -alter_system_rootservice_stmt: -ALTER SYSTEM SWITCH ROOTSERVICE {LEADER | FOLLOWER} {zone | server}; -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|--------------------|---------------------------------| -| LEADER \| FOLLOWER | 把 RS 的角色设置为 Leader 或者 Follower。 | -| zone \| server | 修改指定 Zone 或 Server 的 RS 角色。 | - - - -#### 示例 - -* 把z1的 RS 切换为 Leader - - - - - - -```javascript -ALTER SYSTEM SWITCH ROOTSERVICE LEADER ZONE 'z1'; -``` - - - - - -SERVER ---------------- - -#### 描述 - -该语句维护系统中 OBServer 状态,控制 OBServer 的增、删、启、停等操作。 - -#### 格式 - -```javascript -alter_system_server_stmt: - ALTER SYSTEM server_action SERVER ip_port_list [zone]; - -server_action: - ADD - | DELETE - | CANCEL DELETE - | START - | STOP - | FORCE STOP - -ip_port_list: - ip_port [, ip_port ...] -``` - - - -#### 参数解释 - -服务器状态图如下: - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/7401155061/p149171.png "image.png") - - -| **参数** | **描述** | -|---------------|-------------------------------------| -| ip_port | 指定 OBServer 的 IP 地址和端口 | -| zone | 如果指定 Zone,将会对待维护 Server 执行 Zone 校验。 | -| ADD | 新增服务器。 | -| DELETE | 删除服务器。 | -| CANCEL DELETE | 取消删除服务器。 | -| START | 启动服务器。 | -| STOP | 停止服务器。 | -| FORCE STOP | 强制停止服务器。 | - - - -#### 示例 - -* 新增服务器 - - - - - - -```javascript -ALTER SYSTEM ADD SERVER '172.24.65.113:55410' ZONE 'zone1'; -``` - - -**注意** - - - -* 通过 Add 和 Delete 命令将服务器加入到服务列表,只有服务列表中的服务器才可以提供服务。 - - - -* Delete 操作执行 leader 改选以及 replica 复制。 - - - -* Delete 操作执行时间很长,因此,允许通过 Cancel 命令取消该操作。 - - - - - - - - -THROTTLE ------------------ - -#### 描述 - -该语句用来设置特征限流。 - -#### 格式 - -```javascript -alter_system_throttle_stmt: - ALTER SYSTEM throttle_action; - -throttle_action: - ENABLE SQL THROTTLE [priority_option] [using_metric_option_list] - | DISABLE SQL - -priority_option: - FOR PRIORITY <= INT_VALUE - -using_metric_option_list: - USING metric_option_list - -metric_option_list: - metric_option [metric_option ...] - -metric_option: - RT = {INT_VALUE | DECIMAL_VALUE} - | CPU = {INT_VALUE | DECIMAL_VALUE} - | IO = INT_VALUE - | NETWORK = {INT_VALUE | DECIMAL_VALUE} - | QUEUE_TIME = {INT_VALUE | DECIMAL_VALUE} - | LOGICAL_READS = {INT_VALUE | DECIMAL_VALUE} -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|---------------|--------------------------| -| ENABLE SQL | 开启限流,后接限流特征及特征值 | -| FOR PRIORITY | 设定优先级,目的是只在部分 session 生效 | -| RT | 按请求执行时间限流 | -| CPU | 按 CPU 占用限流,暂未支持 | -| IO | 按 IO 次数限流,暂未支持 | -| NETWORK | 按传输的网络流量大小限流,暂未支持 | -| QUEUE_TIME | 按队列等待时间限流 | -| LOGICAL_READS | 按逻辑读次数限流,暂未支持 | -| DISABLE SQL | 关闭限流 | - - - -#### 示例 - -* 对 prioriy\<=100 的 session 上队列等待时间超过 0.1s 的请求限流。 - - - - - - -```javascript -alter system enable sql throttle for priority <= 100 using queue_time=0.1 -``` - - - - - -UNIT -------------- - -#### 描述 - -该语句负责 UNIT 资源迁移。 - -#### 格式 - -```javascript -alter_system_unit_stmt: - ALTER SYSTEM MIGRATE - UNIT [=] unit_id DESTINATION [=] ip_port - -unit_id: - INT_VALUE -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|---------|--------------------------| -| unit_id | UNIT 编号。 | -| ip_port | 将 UNIT 迁移到的目标 Server 地址。 | - - - -#### 示例 - -* 将 UNIT 1001 的资源迁移到 11.11.111.111:19510。 - - - - - - -```javascript -OceanBase(root@oceanbase)>alter system migrate unit = 1001 destination = '11.11.111.111:19510'; -Query OK, 0 rows affected (0.05 sec) -``` - - - - - -ZONE -------------- - -#### 描述 - -该语句负责维护 Zone 的状态,如 Zone 的增、删、启、停等操作。 - -#### 格式 - -```javascript -alter_system_zone_stmt: - ADD ZONE zone_name - [zone_option_list] - | {ALTER | CHANGE | MODIFY} ZONE zone_name - [SET] zone_option_list - | {DELETE | START | STOP | FORCE STOP} ZONE zone_name - -zone_option_list: - zone_option [, zone_option ...] - -zone_option: - region - | idc - | ZONE_TYPE {READONLY | READWRITE} - -idc: - STR_VALUE -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|----------------------------------|----------------------------------------------------------------------------------------------------------------------| -| ADD ZONE | 新增 Zone | -| {ALTER \| CHANGE \| MODIFY} ZONE | 修改 Zone 的 Region 属性 **说明** ALTER、CHANGE、MODIFY 三者功能相同,可以使用任意命令来修改 Zone 的 Region 属性。 | -| DELETE ZONE | 删除 Zone,删除前需要保证 Zone 中没有可用的 Server | -| START \| STOP | 主动上下线 Zone | - - - -#### 示例 - -* 删除 Zone。 - - - - - - -```javascript -OceanBase(root@oceanbase)>alter system delete zone 'z1'; -ERROR 4668 (HY000): The zone is not empty and can not be deleted. You should delete the servers of the zone. There are 1 servers alive and 0 not alive. -``` - - - - - -CLUSTER ----------------- - -#### 描述 - -集群管理相关操作,可以新增、删除、修改集群级相关属性。 - -#### 格式 - -```javascript -ALTER SYSTEM cluster_action cluster_name CLUSTER_ID INTNUM; -cluster_action: - ADD CLUSTER - | REMOVE CLUSTER - | ENABLE CLUSTER SYNCHRONIZATION - | DISABLE CLUSTER SYNCHRONIZATION - | MODIFY CLUSTER REDO_TRANSPORT_OPTIONS = 'SYNC|ASYNC' -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|---------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| ADD CLUSTER | 新增一个备库。 | -| REMOVE CLUSTER | 删除一个已经存在的备库。 | -| ENABLE CLUSTER SYNCHRONIZATION | 允许一个备库的同步。 | -| DISABLE CLUSTER SYNCHRONIZATION | 禁掉一个备库的同步。 | -| MODIFY CLUSTER REDO_TRANSPORT_OPTIONS | 在主库上修改备库的日志同步方式: * SYNC:强同步 * ASYNC:异步同步 默认为 ASYCN 方式。 | - - - -#### 示例 - -* 新增备库 - - - - - - -```javascript -ALTER SYSTEM ADD CLUSTER 'ob1.test' cluster_id = 1; -``` - - - - - -SWITCHOVER -------------------- - -#### 描述 - -集群无损、有损切换语法,包括主库切成备库,备库切成主库。 - -#### 格式 - -```javascript -ALTER SYSTEM commit_switchover_clause; - -commit_switchover_clause: - COMMIT TO SWITCHOVER TO PRIMARY - | COMMIT TO SWITCHOVER TO PHYSICAL STANDBY - | ACTIVATE PHYSICAL STANDBY CLUSTER - | CONVERT TO PHYSICAL STANDBY -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|------------------------------------------|----------------------------------------------| -| COMMIT TO SWITCHOVER TO PRIMARY | 备库切成主库,在备库上执行,并且旧主库已经切换成主库,集群中没有其他的备库先切换成主库。 | -| COMMIT TO SWITCHOVER TO PHYSICAL STANDBY | 主库无损切换成备库,在主库上执行,并且备库已经同步成功。 | -| ACTIVATE PHYSICAL STANDBY CLUSTER | 在主库宕机的情况下,把一个集群拉成主库。 | -| CONVERT TO PHYSICAL STANDBY | 把一个主库切换成备库。 | - - - -#### 示例 - -* 主库切换成备库 - - - - - - -```javascript -ALTER SYSTEM COMMIT TO SWITCHOVER TO PHYSICAL STANDBY; -``` - - - -* 备库切换成主库 - - - - - - -```javascript -ALTER SYSTEM COMMIT TO SWITCHOVER TO PRIMARY; -``` - - - -* 主库宕机,备库切换成主库 - - - - - - -```javascript -ALTER SYSTEM ACTIVATE PHYSICAL STANDBY CLUSTER; -``` - - - -* 旧主库重启,切成备库 - - - - - - -```javascript -ALTER SYSTEM CONVERT TO PHYSICAL STANDBY; -``` - - - - - -BALANCE TASK ---------------------- - -#### 描述 - -该语句用来清除没有正在调度的负载均衡任务。 - -#### 格式 - -```javascript -ALTER SYSTEM REMOVE BALANCE TASK opt_tenant_list opt_zone_list opt_balance_task_type; - -opt_tenant_list - TENANT [=] name,name_list - -opt_zone_list - ZONE [=] zone_name, zone_list - -opt_balance_task_type - ALL - | MANUAL - | AUTO -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| opt_tenant_list | 租户列表,如果不指定,就会清除所有租户的任务。 | -| opt_zone_list | Zone 的列表,可不指定。 | -| opt_balance_task_type | 待清除的任务类型: * ALL:所有的任务; * AUTO:自动生成的任务; * MANUAL:用户手动发起的任务。 | - - - -#### 示例 - -* 清除所有租户所有没有在调度的任务。 - - - - - - -```javascript -ALTER SYSTEM REMOVE BALANCE TASK; -``` - - - -CANCEL MIGRATE UNIT ----------------------------- - -#### 描述 - -该语句用来取消 UNIT 的迁移。 - -#### 格式 - -```javascript -ALTER SYSTEM CANCEL MIGRATE UNIT unit_id; -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|---------|------------------| -| unit_id | 指定迁移的 UNIT 的 ID。 | - - - -#### 示例 - -* 取消 UNIT 1001 的迁移。 - - - - - - -```javascript -ALTER SYSTEM CANCEL MIGRATE UNIT 1001; -``` - - - - - -RESTORE ----------------- - -#### 描述 - -该语句用来恢复租户的数据。 - -#### 格式 - -```javascript -alter system restore dest_tenant from source_tenant at 'uri' until 'timestamp' with 'restore_option'; -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| dest_tenant | 指恢复的新租户的名字。 | -| source_tenant | 指原集群的租户。 | -| uri | 指备份的时候设置的 backup_dest。 | -| timestamp | 恢复的时间戳,需要大于等于最早备份的基线备份的 CDB_OB_BACKUP_SET_DETAILS 的START_TIME,小于等于日志备份 CDB_OB_BACKUP_ARCHIVELOG_SUMMARY 的 MAX_NEXT_TIME。 | -| restore_option | 恢复选项,支持以下几种: * backup_cluster_name:源集群的名字,必选项 * backup_cluster_id:源集群的 cluster_id,必选项 * pool_list:用户的资源池,必选项 * locality:租户的 locality 信息,可选项 * kms_encrypt:为 true 表示需要恢复的时候指定kms_encrypt_info,可选项 | - - - -#### 示例 - -* 恢复租户的数据。 - - - - - - -```javascript -alter system restore restored_trade from trade - at 'oss://antsys-oceanbasebackup/backup_rd/20200323?host=cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access_id=xxx&access_key=xxx' - until ' 2020-03-23 08:59:45' - with 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool'; - -alter system restore restored_trade from trade - at 'file:///data/nfs/physical_backup_test/20200520' - until '2020-05-21 09:39:54.071670' - with 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool&locality=F@z1,F@z2,F@z3'; -``` - - - - - -CHANGE TENANT ----------------------- - -#### 描述 - -该语句用来切换租户。 - -#### 格式 - -```javascript -ALTER SYSTEM CHANGE TENANT tenant_name; - -ALTER SYSTEM CHANGE TENANT TENANT_ID [=] INTNUM; -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|-------------|---------------| -| tenant_name | 指定要切换到的租户名称。 | -| TENANT_ID | 指定要切换到的租户 ID。 | - - - -#### 示例 - -* 切换至 ID 为 1001 的租户。 - - - - - - -```javascript -ALTER SYSTEM CHANGE TENANT TENANT_ID = 1001; -``` - - - -#### 注意事项 - -1. 需以系统租户身份登陆,普通租户无法执行该命令。 - - - -2. 需直连 OBServer 执行,断连接后需重新执行。 - - - -3. 不能在事务执行过程中执行该命令。 - - - -4. 切换到非系统租户后,无法执行 DDL 操作。 - - - - - - -BACKUP ---------------- - -#### 描述 - -该语句用来触发备份。 - -#### 格式 - -```javascript -设置备份的介质路径 : alter system set backup_dest = -开启 logarchive 的 SQL: alter system archivelog -关闭 logarchive 的 SQL: alter system noarchivelog -触发基线备份(只支持集群级别): alter system backup database; -取消当前备份: alter system cancel backup -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|------------|--------------------------------------| -| backup_uri | 指定备份的路径,目前支持 oss 和 file 两种,具体格式参考示例。 | - - - -#### 示例 - -* 设置备份的路径。 - - - - - - -```javascript -alter system set backup_dest='oss://antsys-oceanbasebackup/backup_dir?host=xxx&access_id=xxx&access_key=xxx'; -alter system set backup_dest='file:///data/nfs/physical_backup_dir'; -``` - - - -#### 注意事项 - -需以系统租户身份登陆,普通租户无法执行该命令。 - -MAXIMIZE ------------------------------ - -描述 - -该语句用来设置主备库的保护模式,只能在主库上执行。 - -#### 格式 - -```javascript -ALTER SYSTEM SET STANDBY CLUSTER TO MAXIMIZE {AVAILABILITY | PERFORMANCE | PROTECTION}; -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|--------------|------------------| -| AVAILABILITY | 设置为最大可用模式。 | -| PERFORMANCE | 设置为最大性能模式,为默认配置。 | -| PROTECTION | 设置为最大保护模式。 | - - - -#### 示例 - -* 设置主备库的保护模式为最大可用模式。 - - - - - - -```unknow -ALTER SYSTEM SET STANDBY CLUSTER TO MAXIMIZE AVAILABILITY; -``` - - - -DELETE BACKUPSET -------------------------------------- - -描述 - -该语句用来清理一个备份。 - -#### 格式 - -```javascript -ALTER SYSTEM DELETE BACKUPSET backup_set_id -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|---------------|-----------------------------------------------------------------------------------| -| backup_set_id | 指定要清理的备份对应的 backup_set 的编号。用户发起一次备份时会有对应的 id,在 CDB_OB_BACKUP_SET_DETAILS 视图中可以查到。 | - - - -#### 示例 - -* 清理 backup_set_id 为 1 的备份数据。 - - - - - - -```unknow -ALTER SYSTEM DELETE BACKUPSET 1; -``` - - - -DELETE OBSOLETE BACKUP -------------------------------------------- - -描述 - -该语句用来清理过期的备份数据。 -**说明** - - - -使用该语句清理过期的备份数据之前,需要先配置过期时间。 - -#### 格式 - -```javascript -ALTER SYSTEM SET backup_recovery_window = <过期时间>; -ALTER SYSTEM DELETE OBSOLETE BACKUP; -``` - - - -#### 参数解释 - - - -| **参数** | **描述** | -|------------------------|------------------------------------------------------------------------------| -| backup_recovery_window | 该配置项用于表示成功备份的数据可以提供恢复的时间窗口,默认值为 0,表示永久保留;建议设置为'7d',表示备份数据保留一周,一周之后备份数据会被清理掉。 | - - - -#### 示例 - -* 设置备份数据的过期时间为一周,一周后备份数据被清理。 - - - - - - -```unknow -ALTER SYSTEM SET backup_recovery_window = '7d'; -ALTER SYSTEM DELETE OBSOLETE BACKUP; -``` - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/60.truncate-table.md b/docs/docs-cn/10.sql-reference/5.sql-statement/60.truncate-table.md deleted file mode 100644 index 850d97d46..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/60.truncate-table.md +++ /dev/null @@ -1,55 +0,0 @@ -TRUNCATE TABLE -=================================== - - - -描述 ------------ - -该语句用于完全清空指定表,但是保留表结构,包括表中定义的 Partition 信息。从逻辑上说,该语句与用于删除所有行的DELETE FROM语句相同。执行TRUNCATE语句,必须具有表的删除和创建权限。它属于DDL语句。 - -TRUNCATE TABLE 语句与 DELETE FROM 语句有以下不同: - -* 删减操作会取消并重新创建表,这比一行一行的删除行要快很多。 - -* TRUNCATE TABLE 语句执行结果显示影响行数始终显示为 0 行。 - -* 使用 TRUNCATE TABLE 语句,表管理程序不记得最后被使用的 AUTO_INCREMENT 值,但是会从头开始计数。 - -* TRUNCATE 语句不能在进行事务处理和表锁定的过程中进行,如果使用,将会报错。 - -* 只要表定义文件是合法的,则可以使用 TRUNCATE TABLE 把表重新创建为一个空表,即使数据或索引文件已经被破坏。 - - - - -格式 ------------ - -```javascript -TRUNCATE [TABLE] table_name; -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|------------|--------| -| table_name | 指定表名。 | - - - -示例 ------------ - -完全清空表 tb1。 - -```javascript -TRUNCATE [TABLE] tb1; -``` - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/61.UPDATE.md b/docs/docs-cn/10.sql-reference/5.sql-statement/61.UPDATE.md deleted file mode 100644 index 1347d55a2..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/61.UPDATE.md +++ /dev/null @@ -1,263 +0,0 @@ -UPDATE -=========================== - - - -描述 ------------ - -该语句用于修改表中的字段值。 - -格式 ------------ - -```javascript -UPDATE [IGNORE] table_references - SET update_asgn_list - [WHERE where_condition] - [ORDER BY order_list] - [LIMIT row_count]; - -table_references: - tbl_name [PARTITION (partition_name,...)] [, ...] - -update_asgn_list: - column_name = expr [, ...] - -order_list: - column_name [ASC|DESC] [, column_name [ASC|DESC]...] -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|------------------|-----------------------------| -| IGNORE | 在 INSERT 语句执行过程中发生的错误将会被忽略。 | -| table_references | 指定修改表名,多表修改时,表名直接','作为间隔。 | -| where_condition | 指定过滤条件。 | -| row_count | 限制的行数。 | -| tbl_name | 插入表名。 | -| partition_name | 插入表指定的分区名。 | -| column_name | 列名。 | -| column_name ASC | 按列名升序修改。 | -| column_name DESC | 按列名降序修改。 | - - - -注意事项 -------------- - -不管是多表还是单表更新都不支持直接对子查询进行更新值操作,例如:`update (select * from t1) set c1 = 100;` - -示例 ------------ - -1. 创建示例表 t1 和 t2。 - - - - -```javascript -OceanBase(admin@test)>create table t1(c1 int primary key, c2 int); -Query OK, 0 rows affected (0.16 sec) -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 1 | -| 2 | 2 | -| 3 | 3 | -| 4 | 4 | -+----+------+ -4 rows in set (0.06 sec) - -OceanBase(admin@test)>create table t2(c1 int primary key, c2 int) partition by key(c1) partitions 4; -Query OK, 0 rows affected (0.19 sec) -OceanBase(admin@test)>select * from t2; -+----+------+ -| c1 | c2 | -+----+------+ -| 5 | 5 | -| 1 | 1 | -| 2 | 2 | -| 3 | 3 | -+----+------+ -4 rows in set (0.02 sec) -``` - - - -2. 将表 t1 中 "t1.c1=1" 对应的那一行数据的 c2 列值修改为 100。 - - - - -```javascript -OceanBase(admin@test)>update t1 set t1.c2 = 100 where t1.c1 = 1; -Query OK, 1 row affected (0.02 sec) -Rows matched: 1 Changed: 1 Warnings: 0 - -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 100 | -| 2 | 2 | -| 3 | 3 | -| 4 | 4 | -+----+------+ -4 rows in set (0.01 sec) -``` - - - -3. 将表 t1 中按照 c2 列排序的前两行数据的 c2 列值修改为 100。 - - - - -```javascript -OceanBase(admin@test)>update t1 set t1.c2 = 100 order by c2 limit 2; -Query OK, 2 rows affected (0.02 sec) -Rows matched: 2 Changed: 2 Warnings: 0 - -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 100 | -| 2 | 100 | -| 3 | 3 | -| 4 | 4 | -+----+------+ -4 rows in set (0.01 sec) -``` - - - -4. 将表 t2 中 p2 分区的数据中 "t2.c1 \> 2" 的对应行数据的 c2 列值修改为 100。 - - - - -```javascript -OceanBase(admin@test)>update t2 partition(p2) set t2.c2 = 100 where t2.c1 > 2; -Query OK, 1 row affected (0.02 sec) -Rows matched: 1 Changed: 1 Warnings: 0 - -OceanBase(admin@test)>select * from t2; -+----+------+ -| c1 | c2 | -+----+------+ -| 5 | 5 | -| 1 | 1 | -| 2 | 2 | -| 3 | 100 | -+----+------+ -4 rows in set (0.06 sec) -``` - - - -5. 修改多个表。将 t1 表和 t2 表中满足 "t1.c1 = t2.c1" 对应行的数据 t1 表中的 c2 列值修改为 100,t2 表中的 c2 列值修改为 200。 - - - - -```javascript -OceanBase(admin@test)>update t1,t2 set t1.c2 = 100, t2.c2 = 200 where t1.c2 = t2.c2; -Query OK, 6 rows affected (0.03 sec) -Rows matched: 6 Changed: 6 Warnings: 0 - -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 100 | -| 2 | 100 | -| 3 | 100 | -| 4 | 4 | -+----+------+ -4 rows in set (0.00 sec) - -OceanBase(admin@test)>select * from t2; -+----+------+ -| c1 | c2 | -+----+------+ -| 5 | 5 | -| 1 | 200 | -| 2 | 200 | -| 3 | 200 | -+----+------+ -4 rows in set (0.01 sec) -``` - - - -6. 修改多个表。修改 t1 表和 t2 表的p2分区中满足 "t1.c1 = t2.c1" 对应行的数据 t1 表中的 c2 列值修改为 100,t2 表中的 c2 列值修改为 200。 - - - - -```javascript -OceanBase(admin@test)>update t1,t2 partition(p2) set t1.c2 = 100, t2.c2 = 200 where t1.c2 = t2.c2; -Query OK, 6 rows affected (0.02 sec) -Rows matched: 6 Changed: 6 Warnings: 0 - -OceanBase(admin@test)>select * from t1; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 100 | -| 2 | 100 | -| 3 | 100 | -| 4 | 4 | -+----+------+ -4 rows in set (0.01 sec) - -OceanBase(admin@test)>select * from t2; -+----+------+ -| c1 | c2 | -+----+------+ -| 5 | 5 | -| 1 | 200 | -| 2 | 200 | -| 3 | 200 | -+----+------+ -4 rows in set (0.01 sec) -``` - - - -7. 对可更新视图 v 进行更新值。 - - - - -```javascript -OceanBase(admin@test)>create view v as select * from t1; -Query OK, 0 rows affected (0.07 sec) - -OceanBase(admin@test)>update v set v.c2 = 100 where v.c1 = 1; -Query OK, 1 row affected (0.02 sec) -Rows matched: 1 Changed: 1 Warnings: 0 - -OceanBase(admin@test)>select * from v; -+----+------+ -| c1 | c2 | -+----+------+ -| 1 | 100 | -| 2 | 2 | -| 3 | 3 | -| 4 | 4 | -+----+------+ -4 rows in set (0.01 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/7.alter-table.md b/docs/docs-cn/10.sql-reference/5.sql-statement/7.alter-table.md deleted file mode 100644 index 7ba7e1335..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/7.alter-table.md +++ /dev/null @@ -1,253 +0,0 @@ -ALTER TABLE -================================ - - - -描述 ------------ - -该语句用来修改已存在的表的结构,比如:修改表及表属性、新增列、修改列及属性、删除列等。 - -格式 ------------ - -```javascript -alter_table_stmt: - ALTER TABLE table_name - alter_table_action_list; - | RENAME TABLE rename_table_action_list; - -alter_table_action_list: - alter_table_action [, alter_table_action ...] - -alter_table_action: - ADD [COLUMN] {column_definition | (column_definition_list)} - | CHANGE [COLUMN] column_name column_definition - | MODIFY [COLUMN] column_definition - | ALTER [COLUMN] column_name {SET DEFAULT const_value | DROP DEFAULT} - | DROP [COLUMN] column_name - | ADD [CONSTRAINT [constraint_name]] UNIQUE {INDEX | KEY} [index_name] index_desc - | ADD {INDEX | KEY} [index_name] index_desc - | ADD FULLTEXT [INDEX | KEY] [index_name] fulltext_index_desc - | ALTER INDEX index_name [VISIBLE | INVISIBLE | parallel_clause] - | DROP {INDEX | KEY} index_name - | ADD PARTITION (range_partition_list) - | DROP PARTITION (partition_name_list) - | REORGANIZE PARTITION name_list INTO partition_range_or_list - | TRUNCATE PARTITION name_list - | [SET] table_option_list - | RENAME [TO] table_name - | DROP TABLEGROUP - | DROP FOREIGN KEY fk_name - -rename_table_action_list: - rename_table_action [, rename_table_action ...] - -rename_table_action: - table_name TO table_name - -column_definition_list: - column_definition [, column_definition ...] - -column_definition: - column_name data_type - [DEFAULT const_value] [AUTO_INCREMENT] - [NULL | NOT NULL] [[PRIMARY] KEY] [UNIQUE [KEY]] comment - -index_desc: - (column_desc_list) [index_type] [index_option_list] - -fulltext_index_desc: - (column_desc_list) CTXCAT(column_desc_list) [index_option_list] - -column_desc_list: - column_desc [, column_desc ...] - -column_desc: - column_name [(length)] [ASC | DESC] - -index_type: - USING BTREE - -index_option_list: - index_option [ index_option ...] - -index_option: - [GLOBAL | LOCAL] - | block_size - | compression - | STORING(column_name_list) - | comment - -table_option_list: - table_option [ table_option ...] - -table_option: - | primary_zone - | replica_num - | table_tablegroup - | block_size - | compression - | AUTO_INCREMENT [=] INT_VALUE - | comment - | DUPLICATE_SCOPE [=] "none|zone|region|cluster" - | parallel_clause - -parallel_clause: - {NOPARALLEL | PARALLEL integer} - -partition_option: - PARTITION BY HASH(expression) - [subpartition_option] PARTITIONS partition_count - | PARTITION BY KEY([column_name_list]) - [subpartition_option] PARTITIONS partition_count - | PARTITION BY RANGE {(expression) | COLUMNS (column_name_list)} - [subpartition_option] (range_partition_list) - -subpartition_option: - SUBPARTITION BY HASH(expression) - SUBPARTITIONS subpartition_count - | SUBPARTITION BY KEY(column_name_list) - SUBPARTITIONS subpartition_count - | SUBPARTITION BY RANGE {(expression) | COLUMNS (column_name_list)} - (range_subpartition_list) - -range_partition_list: - range_partition [, range_partition ...] - -range_partition: - PARTITION partition_name - VALUES LESS THAN {(expression_list) | MAXVALUE} - -range_subpartition_list: - range_subpartition [, range_subpartition ...] - -range_subpartition: - SUBPARTITION subpartition_name - VALUES LESS THAN {(expression_list) | MAXVALUE} - -expression_list: - expression [, expression ...] - -column_name_list: - column_name [, column_name ...] - -partition_name_list: - partition_name [, partition_name ...] - -partition_count | subpartition_count: - INT_VALUE -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| ADD \[COLUMN\] | 增加列,目前不支持增加主键列。 | -| CHANGE \[COLUMN\] | 修改列名和列属性。 | -| MODIFY \[COLUMN\] | 修改列属性。 | -| ALTER \[COLUMN\] | 修改列的默认值。 | -| DROP \[COLUMN\] | 删除列,不允许删除主键列或者包含索引的列。 | -| ADD \[UNIQUE INDEX\] | 增加唯一索引。 | -| ADD \[INDEX\] | 增加普通索引 | -| ALTER \[INDEX\] | 修改索引属性。 | -| ADD \[PARTITION\] | 增加分区。 | -| DROP \[PARTITION\] | 删除分区。 | -| REORGANIZE \[PARTITION\] | 分区重组。 | -| TRUNCATE \[PARTITION\] | 删除分区数据。 | -| RENAME \[TO\] table_name | 表重命名。 | -| DROP \[TABLEGROUP\] | 删除表组。 | -| DROP \[FOREIGN KEY\] | 删除外键。 | -| SET BLOCK_SIZE | 设置Partition表BLOCK大小。 | -| SET REPLICA_NUM | 设置表的副本数(指表的副本总数)。 | -| SET COMPRESSION | 设置表的压缩方式。 | -| SET USE_BLOOM_FILTER | 设置是否使用BloomFilter。 | -| SET COMMENT | 设置注释信息。 | -| SET PROGRESSIVE_MERGE_NUM | 设置渐进合并步数,取值范围是1\~64。 | -| parallel_clause | 指定表级别的并行度: * NOPARALLEL:并行度为1,默认配置 * PARALLEL integer:指定并行度,integer 取值大于等于 1。 | - - - -示例 ------------ - -* 把表 t2 的字段 d 改名为 c,并同时修改字段类型 - - - - - - -```javascript -ALTER TABLE t2 CHANGE COLUMN d c CHAR(10); -``` - - - -* 增加、删除列 - - - - - - - - - - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/8401155061/p149172.png "image.png") - - - -```javascript -ALTER TABLE test ADD c3 int; -``` - - - - - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/8401155061/p149173.png "image.png") - - - -```javascript -ALTER TABLE test DROP c3; -``` - - - - - -![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/8401155061/p149174.png "image.png") - -* 设置表格 test 的副本数,并且增加列 c5 - - - - - - -```javascript -ALTER TABLE test SET REPLICA_NUM=2, ADD COLUMN c5 INT; -``` - - - -* 修改表 t1 的并行度为 2 - - - - - - -```unknow -ALTER TABLE t1 PARALLEL 2; -``` - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/8.alter-tablegroup.md b/docs/docs-cn/10.sql-reference/5.sql-statement/8.alter-tablegroup.md deleted file mode 100644 index 9a6564fd9..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/8.alter-tablegroup.md +++ /dev/null @@ -1,118 +0,0 @@ -ALTER TABLEGROUP -===================================== - - - -描述 ------------ - -该语句用来执行以下操作: - -* 对一个表组增加多张表。 - -* 修改表组的分区规则。 - -* 修改表组的 locality 和 primary zone。 - - - - -格式 ------------ - -* 对一个表组增加多张表。 - - - - -```javascript -ALTER TABLEGROUP tablegroupname ADD [TABLE] tblname [, tblname...] -``` - - - -* 修改表组的分区规则。 - - - - -```javascript -ALTER TABLEGROUP tablegroupname alter_tg_partition_option -alter_tg_partition_option: -DROP PARTITION '(' name_list ')' -| ADD PARTITION opt_range_partition_list -| modify_tg_partition_info -``` - - - -* 修改表组的 locality 和 primary zone。 - - - - -```javascript -ALTER TABLEGROUP tablegroupname alter_tablegroup_actions -alter_tablegroup_actions: -alter_tablegroup_action -| alter_tablegroup_action, alter_tablegroup_action -alter_tablegroup_action: -SET LOCALITY [=] locality_name -|SET PRIMARY_ZONE [=] primary_zone_name -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|--------------------------------|--------------------------------------------------------------------------------------------------------------------------| -| tablegroupname | 指定表组。 | -| tblname | 表名。对一个表组增加多张表时,表与表之间以逗号(',')分隔。 当添加多个表时,允许表名重复。如果待添加的表已经属于 *tablegroupname* 的表格组,系统不报错。 | -| modify_tg_partition_info | 修改表组的分区规则。 | -| LOCALITY locality_name | 指定表组的 locality。 | -| PRIMARY_ZONE primary_zone_name | 指定表组的主Zone。 | - - - -示例 ------------ - -创建表组 tgh 和两张关系表 ttgh 和 ttgh2 ,并将表组的 locality 修改为 F@z1。 - -```javascript -OceanBase(admin@test)> create tablegroup tgh locality='F,R{ALL_SERVER}@z1' partition by hash partitions 10; -Query OK, 0 rows affected (0.09 sec) - -OceanBase(admin@test)> create table ttgh(c1 int, c2 int) tablegroup = tgh locality='F,R{ALL_SERVER}@z1'; -Query OK, 0 rows affected (0.55 sec) - -OceanBase(admin@test)> create table ttgh2(c1 int, c2 int) tablegroup = tgh locality='F,R{ALL_SERVER}@z1'; -Query OK, 0 rows affected (0.39 sec) - -OceanBase(admin@test)> alter tablegroup tgh set locality ='F@z1'; -Query OK, 0 rows affected (0.09 sec) - -OceanBase(admin@test)> select locality from oceanbase.__all_tablegroup where tablegroup_name ='tgh'; -+------------+ -| locality | -+------------+ -| FULL{1}@z1 | -+------------+ -1 row in set (0.05 sec) - -OceanBase(admin@test)> select locality from oceanbase.__all_table where tablegroup_id=(select tablegroup_id from oceanbase.__all_tablegroup where tablegroup_name ='tgh'); -+------------+ -| locality | -+------------+ -| FULL{1}@z1 | -| FULL{1}@z1 | -+------------+ -2 rows in set (0.04 sec) -``` - - - diff --git a/docs/docs-cn/10.sql-reference/5.sql-statement/9.alter-tenant.md b/docs/docs-cn/10.sql-reference/5.sql-statement/9.alter-tenant.md deleted file mode 100644 index e016a876a..000000000 --- a/docs/docs-cn/10.sql-reference/5.sql-statement/9.alter-tenant.md +++ /dev/null @@ -1,83 +0,0 @@ -ALTER TENANT -================================= - - - -描述 ------------ - -该语句用来修改租户信息。 - -格式 ------------ - -```javascript -ALTER TENANT {tenant_name | ALL} - [SET] [tenant_option_list] [opt_global_sys_vars_set] - -tenant_option_list: - tenant_option [, tenant_option ...] - -tenant_option: - COMMENT [=]'string' - |{CHARACTER SET | CHARSET} [=] charsetname - |COLLATE [=] collationname - |REPLICA_NUM [=] num - |ZONE_LIST [=] (zone [, zone...]) - |PRIMARY_ZONE [=] zone - |RESOURCE_POOL_LIST [=](poolname [, poolname...]) - |DEFAULT TABLEGROUP [=] {NULL | tablegroupname} - |{READ ONLY | READ WRITE} - |LOGONLY_REPLICA_NUM [=] num - |LOCALITY [=] 'locality description' - |LOCK|UNLOCK; - -opt_global_sys_vars_set: - VARIABLES system_var_name = expr [,system_var_name = expr] ... -``` - - - -参数解释 -------------- - - - -| **参数** | **描述** | -|--------------------------|---------------------------------------------------------------------------------------| -| tenant_name | 指定要修改的租户名。 | -| ALTER TENANT ALL | 同时修改所有租户。 | -| RESOURCE_POOL_LIST | 资源池列表,为创建租户时的必填项,暂时只支持一个 RESOURCE POOL。 | -| DEFAULT TABLEGROUP | 设置租户默认表组信息,NULL 表示取消ovtn库默认表组。 | -| LOCK\|UNLOCK | 租户锁定和解锁。对租户进行锁定后,不能在该租户上创建新的连接,已有连接保持不变。通常在客户费用到期未续费的场景下使用,客户费用到期后对租户进行锁定,客户续费后再进行解锁。 | -| COMMENT | 修改注释。 | -| CHARACTER SET \| CHARSET | 修改租户的字符集。 | -| COLLATE | 指定校对规则。 | -| REPLICA_NUM | 指定副本数。 | -| ZONE_LIST | 指定要修改的Zone列表。 | -| PRIMARY_ZONE | 指定主Zone。 | -| READ ONLY \| READ WRITE | 指定租户的只读或读写属性。 | -| LOGONLY_REPLICA_NUM | 指定日志副本数。 | -| LOCALITY | 描述副本在Zone间的分布情况,如:F@z1,F@z2,F@z3,R@z4 表示z1, z2, z3为全功能副本,z4为只读副本。 | -| system_var_name | 修改租户的系统变量值。 | - - - -示例 ------------ - -* 锁定租户TENANT1。 - - - - -```javascript -ALTER TENANT TENANT1 LOCK; -``` - - - -注意事项 -------------- - -ALTER TENANT语句系统租户有权限执行,同时本租户的管理员能执行。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/1.sql-request-execution-process-3.md b/docs/docs-cn/12.sql-optimization-guide-1/1.sql-request-execution-process-3.md deleted file mode 100644 index 10d507c05..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/1.sql-request-execution-process-3.md +++ /dev/null @@ -1,23 +0,0 @@ -SQL 请求执行流程 -=============================== - - - -SQL 引擎从接受 SQL 请求到执行的典型流程如下图所示: - -![newSQL 请求](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/7973677161/p261032.png) - -下表为 SQL 请求执行流程的步骤说明。 - - -| **步骤** | **说明** | -|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Parser(词法/语法解析模块) | 在收到用户发送的 SQL 请求串后,Parser 会将字符串分成一个个的"单词",并根据预先设定好的语法规则解析整个请求,将 SQL 请求字符串转换成带有语法结构信息的内存数据结构,称为语法树(Syntax Tree)。 | -| Plan Cache(执行计划缓存模块) | 执行计划缓存模块会将该 SQL 第一次生成的执行计划缓存在内存中,后续的执行可以反复执行这个计划,避免了重复查询优化的过程。 | -| Resolver(语义解析模块) | Resolver 将生成的语法树转换为带有数据库语义信息的内部数据结构。在这一过程中,Resolver 将根据数据库元信息将 SQL 请求中的 Token 翻译成对应的对象(例如库、表、列、索引等),生成的数据结构叫做 Statement Tree。 | -| Transfomer(逻辑改写模块) | 分析用户 SQL 的语义,并根据内部的规则或代价模型,将用户 SQL 改写为与之等价的其他形式,并将其提供给后续的优化器做进一步的优化。Transformer 的工作方式是在原 Statement Tree 上做等价变换,变换的结果仍然是一棵 Statement Tree。 | -| Optimizer(优化器) | 优化器是整个 SQL 请求优化的核心,其作用是为 SQL 请求生成最佳的执行计划。在优化过程中,优化器需要综合考虑 SQL 请求的语义、对象数据特征、对象物理分布等多方面因素,解决访问路径选择、联接顺序选择、联接算法选择、分布式计划生成等多个核心问题,最终选择一个对应该 SQL 的最佳执行计划。 | -| Code Generator(代码生成器) | 将执行计划转换为可执行的代码,但是不做任何优化选择。 | -| Executor(执行器) | 启动 SQL 的执行过程。 * 对于本地执行计划,Executor 会简单的从执行计划的顶端的算子开始调用,根据算子自身的逻辑完成整个执行的过程,并返回执行结果。 * 对于远程或分布式计划,将执行树分成多个可以调度的子计划,并通过 RPC 将其发送给相关的节点去执行。 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/1.introduction-to-sql-execution-plans-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/1.introduction-to-sql-execution-plans-2.md deleted file mode 100644 index 1ebd71a3a..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/1.introduction-to-sql-execution-plans-2.md +++ /dev/null @@ -1,190 +0,0 @@ -SQL 执行计划简介 -=============================== - -执行计划(EXPLAIN)是对一条 SQL 查询语句在数据库中执行过程的描述。 - -用户可以通过 `EXPLAIN` 命令查看优化器针对给定 SQL 生成的逻辑执行计划。如果要分析某条 SQL 的性能问题,通常需要先查看 SQL 的执行计划,排查每一步 SQL 执行是否存在问题。所以读懂执行计划是 SQL 优化的先决条件,而了解执行计划的算子是理解 `EXPLAIN` 命令的关键。 - -EXPLAIN 命令格式 ---------------------------------- - -OceanBase 数据库的执行计划命令有三种模式:`EXPLAIN BASIC`、`EXPLAIN` 和 `EXPLAIN EXTENDED`。这三种模式对执行计划展现不同粒度的细节信息: - -* `EXPLAIN BASIC` 命令用于最基本的计划展示。 - - - -* `EXPLAIN EXTENDED` 命令用于最详细的计划展示(通常在排查问题时使用这种展示模式)。 - - - -* `EXPLAIN` 命令所展示的信息可以帮助普通用户了解整个计划的执行方式。 - - - - - - -命令格式如下:​​ - -```sql -EXPLAIN [BASIC | EXTENDED | PARTITIONS | FORMAT = format_name] explainable_stmt -format_name: { TRADITIONAL | JSON } -explainable_stmt: { SELECT statement -| DELETE statement -| INSERT statement -| REPLACE statement -| UPDATE statement } -``` - - - -执行计划形状与算子信息 --------------------------------- - -在数据库系统中,执行计划在内部通常是以树的形式来表示的,但是不同的数据库会选择不同的方式展示给用户。 - -如下示例分别为 PostgreSQL 数据库、Oracle 数据库和 OceanBase 数据库对于 TPCDS Q3 的计划展示。 - -```sql -obclient>SELECT /*TPC-DS Q3*/ * - FROM (SELECT dt.d_year, - item.i_brand_id brand_id, - item.i_brand brand, - Sum(ss_net_profit) sum_agg - FROM date_dim dt, - store_sales, - item - WHERE dt.d_date_sk = store_sales.ss_sold_date_sk - AND store_sales.ss_item_sk = item.i_item_sk - AND item.i_manufact_id = 914 - AND dt.d_moy = 11 - GROUP BY dt.d_year, - item.i_brand, - item.i_brand_id - ORDER BY dt.d_year, - sum_agg DESC, - brand_id) - WHERE rownum <= 100; - -``` - - - -* PostgreSQL 数据库执行计划展示如下: - - ```sql - Limit (cost=13986.86..13987.20 rows=27 width=91) - -> Sort (cost=13986.86..13986.93 rows=27 width=65) - Sort Key: dt.d_year, (sum(store_sales.ss_net_profit)), item.i_brand_id - -> HashAggregate (cost=13985.95..13986.22 rows=27 width=65) - -> Merge Join (cost=13884.21..13983.91 rows=204 width=65) - Merge Cond: (dt.d_date_sk = store_sales.ss_sold_date_sk) - -> Index Scan using date_dim_pkey on date_dim dt (cost=0.00..3494.62 rows=6080 width=8) - Filter: (d_moy = 11) - -> Sort (cost=12170.87..12177.27 rows=2560 width=65) - Sort Key: store_sales.ss_sold_date_sk - -> Nested Loop (cost=6.02..12025.94 rows=2560 width=65) - -> Seq Scan on item (cost=0.00..1455.00 rows=16 width=59) - Filter: (i_manufact_id = 914) - -> Bitmap Heap Scan on store_sales (cost=6.02..658.94 rows=174 width=14) - Recheck Cond: (ss_item_sk = item.i_item_sk) - -> Bitmap Index Scan on store_sales_pkey (cost=0.00..5.97 rows=174 width=0) - Index Cond: (ss_item_sk = item.i_item_sk) - ``` - - - - - - -* Oracle 数据库执行计划展示如下: - - ```sql - Plan hash value: 2331821367 - -------------------------------------------------------------------------------------------------- - | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | - -------------------------------------------------------------------------------------------------- - | 0 | SELECT STATEMENT | | 100 | 9100 | 3688 (1)| 00:00:01 | - |* 1 | COUNT STOPKEY | | | | | | - | 2 | VIEW | | 2736 | 243K| 3688 (1)| 00:00:01 | - |* 3 | SORT ORDER BY STOPKEY | | 2736 | 256K| 3688 (1)| 00:00:01 | - | 4 | HASH GROUP BY | | 2736 | 256K| 3688 (1)| 00:00:01 | - |* 5 | HASH JOIN | | 2736 | 256K| 3686 (1)| 00:00:01 | - |* 6 | TABLE ACCESS FULL | DATE_DIM | 6087 | 79131 | 376 (1)| 00:00:01 | - | 7 | NESTED LOOPS | | 2865 | 232K| 3310 (1)| 00:00:01 | - | 8 | NESTED LOOPS | | 2865 | 232K| 3310 (1)| 00:00:01 | - |* 9 | TABLE ACCESS FULL | ITEM | 18 | 1188 | 375 (0)| 00:00:01 | - |* 10 | INDEX RANGE SCAN | SYS_C0010069 | 159 | | 2 (0)| 00:00:01 | - | 11 | TABLE ACCESS BY INDEX ROWID| STORE_SALES | 159 | 2703 | 163 (0)| 00:00:01 | - -------------------------------------------------------------------------------------------------- - ``` - - - - - - - - -* OceanBase 数据库执行计划展示如下: - - ```sql - |ID|OPERATOR |NAME |EST. ROWS|COST | - ------------------------------------------------------- - |0 |LIMIT | |100 |81141| - |1 | TOP-N SORT | |100 |81127| - |2 | HASH GROUP BY | |2924 |68551| - |3 | HASH JOIN | |2924 |65004| - |4 | SUBPLAN SCAN |VIEW1 |2953 |19070| - |5 | HASH GROUP BY | |2953 |18662| - |6 | NESTED-LOOP JOIN| |2953 |15080| - |7 | TABLE SCAN |ITEM |19 |11841| - |8 | TABLE SCAN |STORE_SALES|161 |73 | - |9 | TABLE SCAN |DT |6088 |29401| - ======================================================= - ``` - - - - - - -由示例可见,OceanBase 数据库的计划展示与 Oracle 数据库类似。OceanBase 数据库执行计划中的各列的含义如下: - - -| 列名 | 含义 | -|-----------|----------------------------| -| ID | 执行树按照前序遍历的方式得到的编号(从 0 开始)。 | -| OPERATOR | 操作算子的名称。 | -| NAME | 对应表操作的表名(索引名)。 | -| EST. ROWS | 估算该操作算子的输出行数。 | -| COST | 该操作算子的执行代价(微秒)。 | - - -**说明** - - - -在表操作中,NAME 字段会显示该操作涉及的表的名称(别名),如果是使用索引访问,还会在名称后的括号中展示该索引的名称, 例如 t1(t1_c2) 表示使用了 t1_c2 这个索引。如果扫描的顺序是逆序,还会在后面使用 RESERVE 关键字标识,例如 `t1(t1_c2,RESERVE)`。 - -OceanBase 数据库 `EXPLAIN` 命令输出的第一部分是执行计划的树形结构展示。其中每一个操作在树中的层次通过其在 operator 中的缩进予以展示。树的层次关系用缩进来表示,层次最深的优先执行,层次相同的以特定算子的执行顺序为标准来执行。 - -上述 TPCDS Q3 示例的计划展示树如下: - -![explain](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/8927937061/p181620.png)OceanBase 数据库 `EXPLAIN` 命令输出的第二部分是各操作算子的详细信息,包括输出表达式、过滤条件、分区信息以及各算子的独有信息(包括排序键、连接键、下压条件等)。示例如下: - -```unknow -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), sort_keys([t1.c1, ASC], [t1.c2, ASC]), prefix_pos(1) - 1 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), - equal_conds([t1.c1 = t2.c2]), other_conds(nil) - 2 - output([t2.c1], [t2.c2]), filter(nil), sort_keys([t2.c2, ASC]) - 3 - output([t2.c2], [t2.c1]), filter(nil), - access([t2.c2], [t2.c1]), partitions(p0) - 4 - output([t1.c1], [t1.c2]), filter(nil), - access([t1.c1], [t1.c2]), partitions(p0) -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/1.table-scan-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/1.table-scan-2.md deleted file mode 100644 index 58fe698c6..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/1.table-scan-2.md +++ /dev/null @@ -1,69 +0,0 @@ -TABLE SCAN -=============================== - -TABLE SCAN 算子是存储层和 SQL 层的接口,用于展示优化器选择哪个索引来访问数据。 - -在 OceanBase 数据库中,对于普通索引,索引的回表逻辑是封装在 TABLE SCAN 算子中的;而对于全局索引,索引的回表逻辑由 TABLE LOOKUP 算子完成。 - -示例:含 TABLE SCAN 算子的执行计划 - -```javascript -obclient>CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT, c3 INT, c4 INT, - INDEX k1(c2,c3)); -Query OK, 0 rows affected (0.09 sec) - -Q1: -obclient>EXPLAIN EXTENDED SELECT * FROM t1 WHERE c1 = 1\G; -*************************** 1. row *************************** -Query Plan: -| ================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ----------------------------------- -|0 |TABLE GET|t1 |1 |53 | -================================== -Outputs & filters: -------------------------------------- - 0 - output([t1.c1(0x7f22fbe69340)], [t1.c2(0x7f22fbe695c0)], [t1.c3(0x7f22fbe69840)], [t1.c4(0x7f22fbe69ac0)]), filter(nil), - access([t1.c1(0x7f22fbe69340)], [t1.c2(0x7f22fbe695c0)], [t1.c3(0x7f22fbe69840)], [t1.c4(0x7f22fbe69ac0)]), partitions(p0), - is_index_back=false, - range_key([t1.c1(0x7f22fbe69340)]), range[1 ; 1], - range_cond([t1.c1(0x7f22fbe69340) = 1(0x7f22fbe68cf0)]) - -Q2: -obclient>EXPLAIN EXTENDED SELECT * FROM t1 WHERE c2 < 1 AND c3 < 1 AND - c4 < 1\G; -*************************** 1. row *************************** -Query Plan: -| ====================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | --------------------------------------- -|0 |TABLE SCAN|t1(k1)|100 |12422| -====================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1(0x7f22fbd1e220)], [t1.c2(0x7f227decec40)], [t1.c3(0x7f227decf9b0)], [t1.c4(0x7f22fbd1dfa0)]), filter([t1.c3(0x7f227decf9b0) < 1(0x7f227decf360)], [t1.c4(0x7f22fbd1dfa0) < 1(0x7f22fbd1d950)]), - access([t1.c2(0x7f227decec40)], [t1.c3(0x7f227decf9b0)], [t1.c4(0x7f22fbd1dfa0)], [t1.c1(0x7f22fbd1e220)]), partitions(p0), - is_index_back=true, filter_before_indexback[true,false], - range_key([t1.c2(0x7f227decec40)], [t1.c3(0x7f227decf9b0)], [t1.c1(0x7f22fbd1e220)]), - range(NULL,MAX,MAX ; 1,MIN,MIN), - range_cond([t1.c2(0x7f227decec40) < 1(0x7f227dece5f0)]) -``` - - - -上述示例中,执行计划展示中的 outputs \& filters 详细展示了 TABLE SCAN 算子的输出信息如下: - - -| **信息名称** | **含义** | -|---------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| operator | TABLE SCAN 算子的 operator 有两种形式:TABLE SCAN 和 TABLE GET。 * TABLE SCAN:属于范围扫描,会返回 0 行或者多行数据。 * TABLE GET:直接用主键定位,返回 0 行或者 1 行数据。 | -| name | 选择用哪个索引来访问数据。选择的索引的名字会跟在表名后面,如果没有索引的名字,则说明执行的是主表扫描。 这里需要注意,在 OceanBase 数据库中,主表和索引的组织结构是一样的,主表本身也是一个索引。 | -| output | 该算子的输出列。 | -| filter | 该算子的过滤谓词。 由于示例中 TABLE SCAN 算子没有设置 filter,所以为 nil。 | -| partitions | 查询需要扫描的分区。 | -| is_index_back | 该算子是否需要回表。 例如,在 Q1 查询中,因为选择了主表,所以不需要回表。在 Q2 查询中,索引列是 `(c2,c3,c1)`, 由于查询需要返回 c4 列,所以需要回表。 | -| filter_before_indexback | 与每个 filter 对应,表明该 filter 是可以直接在索引上进行计算,还是需要索引回表之后才能计算。 例如,在 Q2 查询中,filter `c3 < 1` 可以直接在索引上计算,能减少回表数量;filter `c4 < 1` 需要回表取出 c4 列之后才能计算。 | -| range_key/range/range_cond | * range_key:索引的 rowkey 列。 * range:索引开始扫描和结束扫描的位置。判断是否是全表扫描需要关注 range 的范围。例如,对于一个 rowkey 有三列的场景,`range(MIN,MIN, MIN ; MAX, MAX, MAX)`代表的就是真正意义上的全表扫描。 * range_cond:决定索引开始扫描和结束扫描位置的相关谓词。 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/10.MATERIAL-1-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/10.MATERIAL-1-2.md deleted file mode 100644 index 8cbc1305c..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/10.MATERIAL-1-2.md +++ /dev/null @@ -1,50 +0,0 @@ -MATERIAL -============================= - -MATERIAL 算子用于物化下层算子输出的数据。 - -OceanBase 数据库以流式数据执行计划,但有时算子需要等待下层算子输出所有数据后才能够开始执行,所以需要在下方添加一个 MATERIAL 算子物化所有的数据。或者在子计划需要重复执行的时候,使用 MATERIAL 算子可以避免重复执行。 - -如下示例中,t1 表与 t2 表执行 NESTED LOOP JOIN 运算时,右表需要重复扫描,可以在右表有一个 MATERIAL 算子,保存 t2 表的所有数据。 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT, c3 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t2(c1 INT ,c2 INT ,c3 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT /*+ORDERED USE_NL(T2)*/* FROM t1,t2 - WHERE t1.c1=t2.c1\G; -*************************** 1. row *************************** -Query Plan: -=========================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | -------------------------------------------- -|0 |NESTED-LOOP JOIN| |2970 |277377| -|1 | TABLE SCAN |t1 |3 |37 | -|2 | MATERIAL | |100000 |176342| -|3 | TABLE SCAN |t2 |100000 |70683 | -=========================================== -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2], [t1.c3], [t2.c1], [t2.c2], [t2.c3]), filter(nil), - conds([t1.c1 = t2.c1]), nl_params_(nil) - 1 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), - access([t1.c1], [t1.c2], [t1.c3]), partitions(p0) - 2 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil) - 3 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), - access([t2.c1], [t2.c2], [t2.c3]), partitions(p0) -``` - - - -上述示例中,执行计划展示中 2 号算子 MATERIAL 的功能是保存 t2 表的数据,以避免每次联接都从磁盘扫描 t2 表的数据。执行计划展示中的 outputs \& filters 详细展示了 MATERIAL 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|------------------------------------------------------------------| -| output | 该算子输出的表达式。 其中 rownum() 表示 ROWNUM 对应的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 MATERIAL 算子没有设置 filter,所以为 nil。 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/11.SORT-1-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/11.SORT-1-2.md deleted file mode 100644 index a28a1b45a..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/11.SORT-1-2.md +++ /dev/null @@ -1,42 +0,0 @@ -SORT -========================= - -SORT 算子用于对输入的数据进行排序。 - -示例:对 t1 表的数据排序,并按照 c1 列降序排列和 c2 列升序排列 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t2(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT c1 FROM t1 ORDER BY c1 DESC, c2 ASC\G; -*************************** 1. row *************************** -Query Plan: -==================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------- -|0 |SORT | |3 |40 | -|1 | TABLE SCAN|t1 |3 |37 | -==================================== -Outputs & filters: -------------------------------------- - 0 - output([t1.c1]), filter(nil), sort_keys([t1.c1, DESC], [t1.c2, ASC]) - 1 - output([t1.c1], [t1.c2]), filter(nil), - access([t1.c1], [t1.c2]), partitions(p0) -``` - - - -上述示例中,执行计划展示中 0 号算子 SORT 对 t1 表的数据进行排序,执行计划展示中的 outputs \& filters 详细展示了 SORT 算子的输出信息如下: - - -| **信息名称** | **含义** | -|-------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| output | 该算子的输出列。 | -| filter | 该算子的过滤谓词。 由于示例中 SORT 算子没有设置 filter,所以为 nil。 | -| sort_keys(\[column, DESC\],\[column, ASC\] ...) | 按 column 列排序。 * DESC:降序。 * ASC:升序。 例如,`sort_keys([t1.c1, DESC],[t1.c2, ASC])`中指定排序键分别为 c1 和 c2,并且以 c1 列降序, c2 列升序排列。 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/12.LIMIT-1-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/12.LIMIT-1-2.md deleted file mode 100644 index fbdbc2256..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/12.LIMIT-1-2.md +++ /dev/null @@ -1,226 +0,0 @@ -LIMIT -========================== - -LIMIT 算子用于限制数据输出的行数,与 MySQL 的 LIMIT 算子功能相同。 - -在 OceanBase 数据库的 MySQL 模式中处理含有 LIMIT 的 SQL 时,SQL 优化器都会为其生成一个 LIMIT 算子,但在一些特殊场景不会给与分配,例如 LIMIT 可以下压到基表的场景,就没有分配的必要性。 - -而对于 OceanBase 数据库的 Oracle 模式,以下两种场景会为其分配 LIMIT 算子: - -* ROWNUM 经过 SQL 优化器改写生成 - - - -* 为了兼容 Oracle12c 的 FETCH 功能 - - - - - - -MySQL 模式含有 LIMIT 的 SQL 场景 ----------------------------------------------- - -示例 1:OceanBase 数据库的 MySQL 模式含有 LIMIT 的 SQL 场景 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t2(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(1, 1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(2, 2); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(3, 3); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t2 VALUES(1, 1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t2 VALUES(2, 2); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t2 VALUES(3, 3); -Query OK, 1 rows affected (0.12 sec) - -Q1: -obclient>EXPLAIN SELECT t1.c1 FROM t1,t2 LIMIT 1 OFFSET 1\G; -*************************** 1. row *************************** -Query Plan: -| ===================================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ------------------------------------------------------ -|0 |LIMIT | |1 |39 | -|1 | NESTED-LOOP JOIN CARTESIAN| |2 |39 | -|2 | TABLE SCAN |t1 |1 |36 | -|3 | TABLE SCAN |t2 |100000 |59654| -===================================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1]), filter(nil), limit(1), offset(1) - 1 - output([t1.c1]), filter(nil), - conds(nil), nl_params_(nil) - 2 - output([t1.c1]), filter(nil), - access([t1.c1]), partitions(p0) - 3 - output([t2.__pk_increment]), filter(nil), - access([t2.__pk_increment]), partitions(p0) - -Q2: -obclient>EXPLAIN SELECT * FROM t1 LIMIT 2\G; -*************************** 1. row *************************** -Query Plan: -| =================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------ -|0 |TABLE SCAN|t1 |2 |37 | -=================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2]), filter(nil), - access([t1.c1], [t1.c2]), partitions(p0), - limit(2), offset(nil) - -``` - - - -上述示例中,Q1 查询的执行计划展示中的 outputs \& filters 详细列出了 LIMIT 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|--------------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 LIMIT 算子没有设置 filter,所以为 nil。 | -| limit | 限制输出的行数,是一个常量。 | -| offset | 距离当前位置的偏移行数,是一个常量。 由于示例中的 SQL 中不含有 offset,因此生成的计划中为 nil。 | - - - -Q2 查询的执行计划展示中,虽然 SQL 中含有 LIMIT,但是并未分配 LIMIT 算子,而是将相关表达式下压到了 TABLE SCAN 算子上,这种下压 LIMIT 行为是 SQL 优化器的一种优化方式,详细信息请参见 [TABLE SCAN](../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/1.table-scan-2.md)。 - -Oracle 模式含有 COUNT 的 SQL 改写为 LIMIT 场景 ---------------------------------------------------------- - -由于 Oracle 模式含有 COUNT 的 SQL 改写为 LIMIT 场景在 COUNT 算子章节已经有过相关介绍,详细信息请参见 [COUNT](../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/4.COUNT-1-2-3-4.md)。 - -Oracle 模式含有 FETCH 的 SQL 场景 ------------------------------------------------ - -示例 2:OceanBase 数据库的 Oracle 模式含有 FETCH 的 SQL 场景 - -```javascript -obclient>CREATE TABLE T1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE T1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(1, 1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(2, 2); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(3, 3); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t2 VALUES(1, 1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t2 VALUES(2, 2); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t2 VALUES(3, 3); -Query OK, 1 rows affected (0.12 sec) - -Q3: -obclient>EXPLAIN SELECT * FROM t1,t2 OFFSET 1 ROWS - FETCH NEXT 1 ROWS ONLY\G; -*************************** 1. row *************************** -Query Plan: -| ===================================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ------------------------------------------------------ -|0 |LIMIT | |1 |238670 | -|1 | NESTED-LOOP JOIN CARTESIAN| |2 |238669 | -|2 | TABLE SCAN |T1 |1 |36 | -|3 | MATERIAL | |100000 |238632 | -|4 | TABLE SCAN |T2 |100000 |64066| -===================================================== - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil), limit(?), offset(?) - 1 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil), - conds(nil), nl_params_(nil) - 2 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 3 - output([T2.C1], [T2.C2]), filter(nil) - 4 - output([T2.C1], [T2.C2]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p0) - - - Q4: -obclient>EXPLAIN SELECT * FROM t1 FETCH NEXT 1 ROWS ONLY\G; -*************************** 1. row *************************** -Query Plan: - | =================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------ -|0 |TABLE SCAN|T1 |1 |37 | -=================================== - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0), - limit(?), offset(nil) - - - Q5: -obclient>EXPLAIN SELECT * FROM t2 ORDER BY c1 FETCH NEXT 10 - PERCENT ROW WITH TIES\G; -*************************** 1. row *************************** -Query Plan: -| ======================================= -|ID|OPERATOR |NAME|EST. ROWS|COST | ---------------------------------------- -|0 |LIMIT | |10000 |573070| -|1 | SORT | |100000 |559268| -|2 | TABLE SCAN|T2 |100000 |64066 | -======================================= - -Outputs & filters: -------------------------------------- - 0 - output([T2.C1], [T2.C2]), filter(nil), limit(nil), offset(nil), percent(?), with_ties(true) - 1 - output([T2.C1], [T2.C2]), filter(nil), sort_keys([T2.C1, ASC]) - 2 - output([T2.C1], [T2.C2]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p0) -``` - - - -上述示例中,Q3 和 Q4 的查询的执行计划展示中,与之前 MySQL 模式的 Q1 和 Q2 查询基本相同,这是因为 Oracle 12c 的 FETCH 功能和 MySQL 的 LIMIT 功能类似,两者的区别如 Q5 执行计划展示中所示。 - -执行计划展示中的 outputs \& filters 详细列出了 LIMIT 算子的输出信息如下: - - -| **信息名称** | **含义** | -|-----------|-------------------------------------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 LIMIT 算子没有设置 filter,所以为 nil。 | -| limit | 限制输出的行数,是一个常量。 | -| offset | 距离当前位置的偏移行数,是一个常量。 | -| percent | 按照数据总行数的百分比输出,是一个常量。 | -| with_ties | 是否在排序后的将最后一行按照等值一起输出。 例如,要求输出最后一行,但是排序之后有两行的值都为 1,如果设置了最后一行按照等值一起输出,那么这两行都会被输出。 | - - - -以上 LIMIT 算子的新增的计划展示属性,都是在 Oracle 模式下的 FETCH 功能特有的,不影响 MySQL 模式计划。关于 Oracle12c 的 FETCH 语法的详细信息,请参见 [Oracle 12c Fetch Rows](https://renenyffenegger.ch/notes/development/databases/Oracle/SQL/select/first-n-rows/index#ora-sql-row-limiting-clause)。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/13.for-update-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/13.for-update-2.md deleted file mode 100644 index 1494ece01..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/13.for-update-2.md +++ /dev/null @@ -1,135 +0,0 @@ -FOR UPDATE -=============================== - -FOR UPDATE 算子用于对表中的数据进行加锁操作。 - -OceanBase 数据库支持的 FOR UPDATE 算子包括 FOR UPDATE 和 MULTI FOR UPDATE。 - -FOR UPDATE 算子执行查询的一般流程如下: - -1. 首先执行 `SELECT` 语句部分,获得查询结果集。 - - - -2. 对查询结果集相关的记录进行加锁操作。 - - - - - - -FOR UPDATE -------------------------------- - -FOR UPDATE 用于对单表(或者单个分区)进行加锁。 - -如下示例中,Q1 查询是对 t1 表中满足 `c1 = 1` 的行进行加锁。这里 t1 表是一张单分区的表,所以 1 号算子生成了一个 FOR UPDATE 算子。 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t2(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(1, 1); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(2, 2); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(3, 3); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t2 VALUES(1, 1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t2 VALUES(2, 2); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t2 VALUES(3, 3); -Query OK, 1 rows affected (0.12 sec) - -Q1: -obclient> EXPLAIN SELECT * FROM t1 WHERE c1 = 1 FOR UPDATE\G; -*************************** 1. row *************************** -Query Plan: -===================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| -------------------------------------- -|0 |MATERIAL | |10 |856 | -|1 | FOR UPDATE | |10 |836 | -|2 | TABLE SCAN|T1 |10 |836 | -===================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2]), filter(nil) - 1 - output([T1.C1], [T1.C2]), filter(nil), lock tables(T1) - 2 - output([T1.C1], [T1.C2], [T1.__pk_increment]), filter([T1.C1 = 1]), - access([T1.C1], [T1.C2], [T1.__pk_increment]), partitions(p0) -``` - - - -上述示例中,Q1 查询的执行计划展示中的 outputs \& filters 详细列出了 FOR UPDATE 算子的输出信息如下: - - -| **信息名称** | **含义** | -|-------------|--------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 FOR UPDATE 算子没有设置 filter,所以为 nil。 | -| lock tables | 需要加锁的表。 | - - - -MULTI FOR UPDATE -------------------------------------- - -MULTI FOR UPDATE 用于对多表(或者多个分区)进行加锁操作。 - -如下示例中,Q2 查询是对 t1 和 t2 两张表的数据进行加锁,加锁对象是满足 `c1 = 1 AND c1 = d1` 的行。由于需要对多个表的行进行加锁,因此 1 号算子是 MULTI FOR UPDATE。 - -```javascript -obclient>CREATE TABLE t1 (c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t2 (d1 INT, d2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT * FROM t1, t2 WHERE c1 = 1 AND c1 = d1 - FOR UPDATE\G; -*************************** 1. row *************************** -Query Plan: -===================================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------------------------ -|0 |MATERIAL | |10 |931 | -|1 | MULTI FOR UPDATE | |10 |895 | -|2 | NESTED-LOOP JOIN CARTESIAN| |10 |895 | -|3 | TABLE GET |T2 |1 |52 | -|4 | TABLE SCAN |T1 |10 |836 | -===================================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2], [T2.D1], [T2.D2]), filter(nil) - 1 - output([T1.C1], [T1.C2], [T2.D1], [T2.D2]), filter(nil), lock tables(T1, T2) - 2 - output([T1.C1], [T1.C2], [T2.D1], [T2.D2], [T1.__pk_increment]), filter(nil), - conds(nil), nl_params_(nil) - 3 - output([T2.D1], [T2.D2]), filter(nil), - access([T2.D1], [T2.D2]), partitions(p0) - 4 - output([T1.C1], [T1.C2], [T1.__pk_increment]), filter([T1.C1 = 1]), - access([T1.C1], [T1.C2], [T1.__pk_increment]), partitions(p0) -``` - - - -上述示例中,Q2 查询的执行计划展示中的 outputs \& filters 详细列出了 MULTI FOR UPDATE 算子的信息如下: - - -| **信息名称** | **含义** | -|-------------|--------------------------------------------------------------------------| -| output | 该算子输出的列。 | -| filter | 该算子上的过滤条件。 由于示例中 MULTI FOR UPDATE 算子没有设置 filter,所以为 nil。 | -| lock tables | 需要加锁的表。 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/14.select-into-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/14.select-into-2.md deleted file mode 100644 index 8186df025..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/14.select-into-2.md +++ /dev/null @@ -1,47 +0,0 @@ -SELECT INTO -================================ - -SELECT INTO 算子用于将查询结果赋值给变量列表,查询仅返回一行数据。 - -如下示例查询中, `SELECT` 输出列为 `COUNT(*)` 和 `MAX(c1)`,其查询结果分别赋值给变量 @a 和 @b。 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(1,1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(2,2); -Query OK, 1 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT COUNT(*), MAX(c1) INTO @a, @b FROM t1\G; -*************************** 1. row *************************** -Query Plan: -========================================= -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------------ -|0 |SELECT INTO | |0 |37 | -|1 | SCALAR GROUP BY| |1 |37 | -|2 | TABLE SCAN |t1 |2 |37 | -========================================= -Outputs & filters: -------------------------------------- - 0 - output([T_FUN_COUNT(*)], [T_FUN_MAX(t1.c1)]), filter(nil) - 1 - output([T_FUN_COUNT(*)], [T_FUN_MAX(t1.c1)]), filter(nil), - group(nil), agg_func([T_FUN_COUNT(*)], [T_FUN_MAX(t1.c1)]) - 2 - output([t1.c1]), filter(nil), - access([t1.c1]), partitions(p0) -``` - - - -上述示例中,执行计划展示中的 outputs \& filters 详细列出了 SELECT INTO 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|---------------------------------------------------------------------| -| output | 该算子赋值给变量列表的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 SELECT INTO 算子没有设置 filter,所以为 nil。 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/15.subplan-scan-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/15.subplan-scan-2.md deleted file mode 100644 index 1c66dbebe..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/15.subplan-scan-2.md +++ /dev/null @@ -1,79 +0,0 @@ -SUBPLAN SCAN -================================= - -SUBPLAN SCAN 算子用于展示优化器从哪个视图访问数据。 - -当查询的 FROM TABLE 为视图时,执行计划中会分配 SUBPLAN SCAN 算子。SUBPLAN SCAN 算子类似于 TABLE SCAN 算子,但它不从基表读取数据,而是读取孩子节点的输出数据。 - -如下示例中,Q1 查询中 1 号算子为视图中查询生成,0 号算子 SUBPLAN SCAN 读取 1 号算子并输出。 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(1,1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(2,2); -Query OK, 1 rows affected (0.12 sec) - -obclient>CREATE VIEW v AS SELECT * FROM t1 LIMIT 5; -Query OK, 1 rows affected (0.12 sec) - -Q1: -obclient>EXPLAIN SELECT * FROM V WHERE c1 > 0\G; -*************************** 1. row *************************** -Query Plan: -===================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| -------------------------------------- -|0 |SUBPLAN SCAN|v |1 |37 | -|1 | TABLE SCAN |t1 |2 |37 | -===================================== -Outputs & filters: -------------------------------------- - 0 - output([v.c1], [v.c2]), filter([v.c1 > 0]), - access([v.c1], [v.c2]) - 1 - output([t1.c1], [t1.c2]), filter(nil), - access([t1.c1], [t1.c2]), partitions(p0), - limit(5), offset(nil) -``` - - -**说明** - - - -目前 LIMIT 算子只支持 MySQL 模式的 SQL 场景。详细信息请参考 [LIMIT](../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/12.LIMIT-1-2.md)。 - -上述示例中,Q1 查询的执行计划展示中的 outputs \& filters 详细列出了 SUBPLAN SCAN 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|-------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 例如 `filter([v.c1 > 0])` 中的 `v.c1 > 0`。 | -| access | 该算子从子节点读取的需要使用的列名。 | - - - -当 `FROM TABLE` 为视图并且查询满足一定条件时能够对查询进行视图合并改写,此时执行计划中并不会出现 SUBPLAN SCAN。如下例所示,Q2 查询相比 Q1 查询减少了过滤条件,不再需要分配 SUBPLAN SCAN 算子。 - -```javascript -Q2: -obclient>EXPLAIN SELECT * FROM v\G; -*************************** 1. row *************************** -Query Plan: -=================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------ -|0 |TABLE SCAN|t1 |2 |37 | -=================================== -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2]), filter(nil), - access([t1.c1], [t1.c2]), partitions(p0), - limit(5), offset(nil) -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/16.UNION-1-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/16.UNION-1-2.md deleted file mode 100644 index 85e81a034..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/16.UNION-1-2.md +++ /dev/null @@ -1,121 +0,0 @@ -UNION -========================== - -UNION 算子用于将两个查询的结果集进行并集运算。 - -OceanBase 数据库支持的 UNION 算子包括 UNION ALL、 HASH UNION DISTINCT 和 MERGE UNION DISTINCT。 - -UNION ALL ------------------------------- - -UNION ALL 用于直接对两个查询结果集进行合并输出。 - -如下示例中,Q1 对两个查询使用 UNION ALL 进行联接,使用 UNION ALL 算子进行并集运算。算子执行时依次输出左右子节点所有输出结果。 - -```javascript -obclient>CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(1,1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(2,2); -Query OK, 1 rows affected (0.12 sec) - -Q1: -obclient>EXPLAIN SELECT c1 FROM t1 UNION ALL SELECT c2 FROM t1\G; -*************************** 1. row *************************** -Query Plan: -==================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------- -|0 |UNION ALL | |4 |74 | -|1 | TABLE SCAN|T1 |2 |37 | -|2 | TABLE SCAN|T1 |2 |37 | -==================================== -Outputs & filters: -------------------------------------- - 0 - output([UNION(T1.C1, T1.C2)]), filter(nil) - 1 - output([T1.C1]), filter(nil), - access([T1.C1]), partitions(p0) - 2 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) -``` - - - -上述示例中,执行计划展示中的 outputs \& filters 详细列出了 UNION ALL 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|-------------------------------------------------------------------| -| output | 该算子的输出表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 UNION ALL 算子没有设置 filter,所以为 nil。 | - - - -MERGE UNION DISTINCT ------------------------------------------ - -MERGE UNION DISTINCT 用于对结果集进行并集、去重后进行输出。 - -如下示例中,Q2 对两个查询使用 UNION DISTINCT 进行联接, c1 有可用排序,0 号算子生成 MERGE UNION DISTINCT 进行取并集、去重。由于 c2 无可用排序,所以在 3 号算子上分配了 SORT 算子进行排序。算子执行时从左右子节点读取有序输入,进行合并得到有序输出并去重。 - -```javascript -Q2: -obclient>EXPLAIN SELECT c1 FROM t1 UNION SELECT c2 FROM t1\G; -*************************** 1. row *************************** -Query Plan: -============================================= -|ID|OPERATOR |NAME|EST. ROWS|COST| ---------------------------------------------- -|0 |MERGE UNION DISTINCT| |4 |77 | -|1 | TABLE SCAN |T1 |2 |37 | -|2 | SORT | |2 |39 | -|3 | TABLE SCAN |T1 |2 |37 | -============================================= -Outputs & filters: -------------------------------------- - 0 - output([UNION(T1.C1, T1.C2)]), filter(nil) - 1 - output([T1.C1]), filter(nil), - access([T1.C1]), partitions(p0) - 2 - output([T1.C2]), filter(nil), sort_keys([T1.C2, ASC]) - 3 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 MERGE UNION DISTINCT 算子的输出信息,字段的含义与 UNION ALL 算子相同。 - -HASH UNION DISTINCT ----------------------------------------- - -HASH UNION DISTINCT 用于对结果集进行并集、去重后进行输出。 - -如下示例中,Q3 对两个查询使用 UNION DISTINCT 进行联接,无可利用排序,0 号算子使用 HASH UNION DISTINCT 进行并集、去重。算子执行时读取左右子节点输出,建立哈希表进行去重,最终输出去重后结果。 - -```javascript -Q3: -obclient>EXPLAIN SELECT c2 FROM t1 UNION SELECT c2 FROM t1\G; -*************************** 1. row *************************** -Query Plan: -============================================ -|ID|OPERATOR |NAME|EST. ROWS|COST| --------------------------------------------- -|0 |HASH UNION DISTINCT| |4 |77 | -|1 | TABLE SCAN |T1 |2 |37 | -|2 | TABLE SCAN |T1 |2 |37 | -============================================ -Outputs & filters: -------------------------------------- - 0 - output([UNION(T1.C2, T1.C2)]), filter(nil) - 1 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) - 2 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 HASH UNION DISTINCT 算子的输出信息,字段的含义与 UNION ALL 算子相同。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/17.INTERSECT-1-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/17.INTERSECT-1-2.md deleted file mode 100644 index 57233f774..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/17.INTERSECT-1-2.md +++ /dev/null @@ -1,86 +0,0 @@ -INTERSECT -============================== - -INTERSECT 算子用于对左右孩子算子输出进行交集运算,并进行去重。 - -OceanBase 数据库支持的 INTERSECT 算子包括 MERGE INTERSECT DISTINCT 和 HASH INTERSECT DISTINCT。 - -MERGE INTERSECT DISTINCT ---------------------------------------------- - -如下示例中,Q1 对两个查询使用 INTERSECT 联接,c1 有可用排序,0 号算子生成了 MERGE INTERSECT DISTINCT 进行求取交集、去重。由于 c2 无可用排序,所以在 3 号算子上分配了 SORT 算子进行排序。算子执行时从左右子节点读取有序输入,利用有序输入进行 MERGE,实现去重并得到交集结果。 - -```javascript -obclient>CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(1,1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(2,2); -Query OK, 1 rows affected (0.12 sec) - -Q1: -obclient>EXPLAIN SELECT c1 FROM t1 INTERSECT SELECT c2 FROM t1\G; -*************************** 1. row *************************** -Query Plan: -================================================= -|ID|OPERATOR |NAME|EST. ROWS|COST| -------------------------------------------------- -|0 |MERGE INTERSECT DISTINCT| |2 |77 | -|1 | TABLE SCAN |T1 |2 |37 | -|2 | SORT | |2 |39 | -|3 | TABLE SCAN |T1 |2 |37 | -================================================= -Outputs & filters: -------------------------------------- - 0 - output([INTERSECT(T1.C1, T1.C2)]), filter(nil) - 1 - output([T1.C1]), filter(nil), - access([T1.C1]), partitions(p0) - 2 - output([T1.C2]), filter(nil), sort_keys([T1.C2, ASC]) - 3 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) -``` - - - -上述示例中,执行计划展示中的 outputs \& filters 详细列出了所有 INTERSECT 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|------------------------------------------------------------------------------------------| -| output | 该算子的输出表达式。 使用 INTERSECT 联接的两个子算子对应输出,即表示交集运算输出结果中的一列,括号内部为左右子节点对应此列的输出列。 | -| filter | 该算子上的过滤条件。 由于示例中 INTERSECT 算子没有设置 filter,所以为 nil。 | - - - -HASH INTERSECT DISTINCT --------------------------------------------- - -如下例所示,Q2 对两个查询使用 INTERSECT 进行联接,不可利用排序,0 号算子使用 HASH INTERSECT DISTINCT 进行求取交集、去重。算子执行时先读取一侧子节点输出建立哈希表并去重,再读取另一侧子节点利用哈希表求取交集并去重。 - -```javascript -Q2: -obclient>EXPLAIN SELECT c2 FROM t1 INTERSECT SELECT c2 FROM t1\G; -*************************** 1. row *************************** -Query Plan: -================================================ -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------------------- -|0 |HASH INTERSECT DISTINCT| |2 |77 | -|1 | TABLE SCAN |T1 |2 |37 | -|2 | TABLE SCAN |T1 |2 |37 | -================================================ - -Outputs & filters: -------------------------------------- - 0 - output([INTERSECT(T1.C2, T1.C2)]), filter(nil) - 1 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) - 2 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 HASH INTERSECT DISTINCT 算子的输出信息,字段的含义与 MERGE INTERSECT DISTINCT 算子相同。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/18.except-minus-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/18.except-minus-2.md deleted file mode 100644 index 1514b9dd1..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/18.except-minus-2.md +++ /dev/null @@ -1,87 +0,0 @@ -EXCEPT/MINUS -================================= - -EXCEPT 算子用于对左右孩子算子输出集合进行差集运算,并进行去重。 - -Oracle 模式下一般使用 MINUS 进行差集运算,MySQL 模式下一般使用 EXCEPT 进行差集运算。OceanBase 数据库的 MySQL 模式不区分 EXCEPT 和 MINUS,两者均可作为差集运算关键字使用。 - -OceanBase 数据库支持的 EXCEPT 算子包括 MERGE EXCEPT DISTINCT 和 HASH EXCEPT DISTINCT。 - -MERGE EXCEPT DISTINCT ------------------------------------------- - -如下示例中,Q1 对两个查询使用 MINUS 进行联接, c1 有可用排序,0 号算子生成了 MERGE EXCEPT DISTINCT 进行求取差集、去重,由于 c2 无可用排序,所以在 3 号算子上分配了 SORT 算子进行排序。算子执行时从左右孩子节点读取有序输入,利用有序输入进行 MERGE, 实现去重并得到差集结果。 - -```javascript -obclient>CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(1,1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(2,2); -Query OK, 1 rows affected (0.12 sec) - -Q1: -obclient>EXPLAIN SELECT c1 FROM t1 MINUS SELECT c2 FROM t1\G; -*************************** 1. row *************************** -Query Plan: -============================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ----------------------------------------------- -|0 |MERGE EXCEPT DISTINCT| |2 |77 | -|1 | TABLE SCAN |T1 |2 |37 | -|2 | SORT | |2 |39 | -|3 | TABLE SCAN |T1 |2 |37 | -============================================== -Outputs & filters: -------------------------------------- - 0 - output([MINUS(T1.C1, T1.C2)]), filter(nil) - 1 - output([T1.C1]), filter(nil), - access([T1.C1]), partitions(p0) - 2 - output([T1.C2]), filter(nil), sort_keys([T1.C2, ASC]) - 3 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) -``` - - - -上述示例中,执行计划展示中的 outputs \& filters 详细列出了 EXCEPT 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|----------------------------------------------------------------------------------------------------------------------------------| -| output | 该算子的输出表达式。 使用 EXCEPT/MINUS 联接的两孩子算子对应输出(Oracle 模式使用 MINUS,MySQL 模式使用 EXCEPT),表示差集运算输出结果中的一列,括号内部为左右孩子节点对应此列的输出列。 | -| filter | 该算子上的过滤条件。 由于示例中 EXCEPT 算子没有设置 filter,所以为 nil。 | - - - -HASH EXCEPT DISTINCT ------------------------------------------ - -如下示例中,Q2 对两个查询使用 MINUS 进行联接,不可利用排序,0 号算子使用 HASH EXCEPT DISTINCT 进行求取差集、去重。算子执行时先读取左侧孩子节点输出建立哈希表并去重,再读取右侧孩子节点输出利用哈希表求取差集并去重。 - -```javascript -Q2: -obclient>EXPLAIN SELECT c2 FROM t1 MINUS SELECT c2 FROM t1\G; -*************************** 1. row *************************** -Query Plan: -============================================= -|ID|OPERATOR |NAME|EST. ROWS|COST| ---------------------------------------------- -|0 |HASH EXCEPT DISTINCT| |2 |77 | -|1 | TABLE SCAN |T1 |2 |37 | -|2 | TABLE SCAN |T1 |2 |37 | -============================================= -Outputs & filters: -------------------------------------- - 0 - output([MINUS(T1.C2, T1.C2)]), filter(nil) - 1 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) - 2 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 HASH EXCEPT DISTINCT 算子的输出信息,字段的含义与 MERGE EXCEPT DISTINCT 算子相同。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/19.INSERT-1-2-3-4.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/19.INSERT-1-2-3-4.md deleted file mode 100644 index 6def2155d..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/19.INSERT-1-2-3-4.md +++ /dev/null @@ -1,232 +0,0 @@ -INSERT -=========================== - -INSERT 算子用于将指定的数据插入数据表,数据来源包括直接指定的值和子查询的结果。 - -OceanBase 数据库支持的 INSERT 算子包括 INSERT 和 MULTI PARTITION INSERT。 - -INSERT ---------------------------- - -INSERT 算子用于向数据表的单个分区中插入数据。 - -如下例所示,Q1 查询将值 (1, '100') 插入到非分区表 t1 中。其中 1 号算子 EXPRESSION 用来生成常量表达式的值。 - -```javascript -obclient>CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 VARCHAR2(10)); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t2 (c1 INT PRIMARY KEY, c2 VARCHAR2(10)) PARTITION BY - HASH(c1) PARTITIONS 10; -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t3 (c1 INT PRIMARY KEY, c2 VARCHAR2(10)); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE INDEX IDX_t3_c2 ON t3 (c2) PARTITION BY HASH(c2) PARTITIONS 3; -Query OK, 0 rows affected (0.12 sec) - -Q1: -obclient>EXPLAIN INSERT INTO t1 VALUES (1, '100')\G; -*************************** 1. row *************************** -Query Plan: -==================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------- -|0 |INSERT | |1 |1 | -|1 | EXPRESSION| |1 |1 | -==================================== - -Outputs & filters: -------------------------------------- - 0 - output([__values.C1], [__values.C2]), filter(nil), - columns([{T1: ({T1: (T1.C1, T1.C2)})}]), partitions(p0) - 1 - output([__values.C1], [__values.C2]), filter(nil) - values({1, '100'}) -``` - - - -上述示例中,执行计划展示中的 outputs \& filters 详细列出了 INSERT 算子的输出信息如下: - - -| **信息名称** | **含义** | -|------------|----------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 INSERT 算子没有设置 filter,所以为 nil。 | -| columns | 插入操作涉及的数据表的列。 | -| partitions | 插入操作涉及到的数据表的分区(非分区表可以认为是一个只有一个分区的分区表)。 | - - - -更多 INSERT 算子的示例如下: - -* Q2 查询将值(2, '200')、(3, '300')插入到表 t1 中。 - - ```unknow - Q2: - obclient>EXPLAIN INSERT INTO t1 VALUES (2, '200'),(3, '300')\G; - *************************** 1. row *************************** - Query Plan: - ==================================== - |ID|OPERATOR |NAME|EST. ROWS|COST| - ------------------------------------ - |0 |INSERT | |2 |1 | - |1 | EXPRESSION| |2 |1 | - ==================================== - - Outputs & filters: - ------------------------------------- - 0 - output([__values.C1], [__values.C2]), filter(nil), - columns([{T1: ({T1: (T1.C1, T1.C2)})}]), partitions(p0) - 1 - output([__values.C1], [__values.C2]), filter(nil) - values({2, '200'}, {3, '300'}) - ``` - - - -* Q3 查询将子查询 `SELECT * FROM t3` 的结果插入到表 t1 中。 - - ```unknow - Q3: - obclient>EXPLAIN INSERT INTO t1 SELECT * FROM t3\G; - *************************** 1. row *************************** - Query Plan: - ==================================== - |0 |INSERT | |100000 |117862| - |1 | EXCHANGE IN DISTR | |100000 |104060| - |2 | EXCHANGE OUT DISTR| |100000 |75662 | - |3 | SUBPLAN SCAN |VIEW1|100000 |75662 | - |4 | TABLE SCAN |T3 |100000 |61860 | - ================================================ - - Outputs & filters: - ------------------------------------- - 0 - output([VIEW1.C1], [VIEW1.C2]), filter(nil), - columns([{T1: ({T1: (T1.C1, T1.C2)})}]), partitions(p0) - 1 - output([VIEW1.C1], [VIEW1.C2]), filter(nil) - 2 - output([VIEW1.C1], [VIEW1.C2]), filter(nil) - 3 - output([VIEW1.C1], [VIEW1.C2]), filter(nil), - access([VIEW1.C1], [VIEW1.C2]) - 4 - output([T3.C1], [T3.C2]), filter(nil), - access([T3.C2], [T3.C1]), partitions(p0) - ``` - - - -* Q4 查询将值(1, '100')插入到分区表 t2 中,通过 `partitions` 参数可以看出,该值会被插入到 t2 的 p5 分区。 - - ```javascript - Q4: - obclient>EXPLAIN INSERT INTO t2 VALUES (1, '100')\G; - *************************** 1. row *************************** - Query Plan: - ==================================== - |ID|OPERATOR |NAME|EST. ROWS|COST| - ------------------------------------ - |0 |INSERT | |1 |1 | - |1 | EXPRESSION| |1 |1 | - ==================================== - Outputs & filters: - ------------------------------------- - 0 - output([__values.C1], [__values.C2]), filter(nil), - columns([{T2: ({T2: (T2.C1, T2.C2)})}]), partitions(p5) - 1 - output([__values.C1], [__values.C2]), filter(nil) - values({1, '100'}) - ``` - - - - - - -MULTI PARTITION INSERT -------------------------------------------- - -MULTI PARTITION INSERT 算子用于向数据表的多个分区中插入数据。 - -如下例所示,Q5 查询将值(2, '200')、(3, '300')插入到分区表 t2 中,通过 `partitions` 可以看出,这些值会被插入到 t2 的 p0 和 p6 分区。 - -```javascript -Q5: -obclient>EXPLAIN INSERT INTO t2 VALUES (2, '200'),(3, '300')\G; -*************************** 1. row *************************** -Query Plan: -=============================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------------------ -|0 |MULTI PARTITION INSERT| |2 |1 | -|1 | EXPRESSION | |2 |1 | -=============================================== - -Outputs & filters: -------------------------------------- - 0 - output([__values.C1], [__values.C2]), filter(nil), - columns([{T2: ({T2: (T2.C1, T2.C2)})}]), partitions(p0, p6) - 1 - output([__values.C1], [__values.C2]), filter(nil) - values({2, '200'}, {3, '300'}) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 MULTI PARTITION INSERT 算子的信息,字段的含义与 INSERT 算子相同。 - -更多 MULTI PARTITION INSERT 算子的示例如下: - -* Q6 查询将子查询 `SELECT * FROM t3` 的结果插入到分区表 t2 中,因为无法确定子查询的结果集,因此数据可能插入到 t2 的 p0 到 p9 的任何一个分区中。从1 号算子可以看到,这里的 `SELECT * FROM t3` 会被放在一个子查询中,并将子查询命名为 VIEW1。当 OceanBase 数据库内部改写 SQL 产生了子查询时,会自动为子查询命名,并按照子查询生成的顺序命名为 VIEW1、VIEW2、VIEW3... - - ```unknow - Q6: - obclient>EXPLAIN INSERT INTO t2 SELECT * FROM t3\G; - *************************** 1. row *************************** - Query Plan: - ============================================== - |ID|OPERATOR |NAME|EST. ROWS|COST| - -------------------------------------------------- - |0 |MULTI PARTITION INSERT| |100000 |117862| - |1 | EXCHANGE IN DISTR | |100000 |104060| - |2 | EXCHANGE OUT DISTR | |100000 |75662 | - |3 | SUBPLAN SCAN |VIEW1|100000 |75662 | - |4 | TABLE SCAN |T3 |100000 |61860 | - ================================================== - - Outputs & filters: - ------------------------------------- - 0 - output([VIEW1.C1], [VIEW1.C2]), filter(nil), - columns([{T2: ({T2: (T2.C1, T2.C2)})}]), partitions(p[0-9]) - 1 - output([VIEW1.C1], [VIEW1.C2]), filter(nil) - 2 - output([VIEW1.C1], [VIEW1.C2]), filter(nil) - 3 - output([VIEW1.C1], [VIEW1.C2]), filter(nil), - access([VIEW1.C1], [VIEW1.C2]) - 4 - output([T3.C1], [T3.C2]), filter(nil), - access([T3.C2], [T3.C1]), partitions(p0) - ``` - - - -* Q7 查询将值(1, '100')插入到非分区表 t3 中。虽然 t3 本身是一个非分区表,但因为 t3 上存在全局索引 idx_t3_c2,因此本次插入也涉及到了多个分区。 - - ```javascript - Q7: - obclient>EXPLAIN INSERT INTO t3 VALUES (1, '100')\G; - *************************** 1. row *************************** - Query Plan: - ============================================== - |ID|OPERATOR |NAME|EST. ROWS|COST| - ----------------------------------------------- - |0 |MULTI PARTITION INSERT| |1 |1 | - |1 | EXPRESSION | |1 |1 | - =============================================== - - Outputs & filters: - ------------------------------------- - 0 - output([__values.C1], [__values.C2]), filter(nil), - columns([{T3: ({T3: (T3.C1, T3.C2)}, {IDX_T3_C2: (T3.C2, T3.C1)})}]), partitions(p0) - 1 - output([__values.C1], [__values.C2]), filter(nil) - values({1, '100'}) - ``` - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/2.table-lookup-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/2.table-lookup-2.md deleted file mode 100644 index d8d0fb4b7..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/2.table-lookup-2.md +++ /dev/null @@ -1,45 +0,0 @@ -TABLE LOOKUP -================================= - -TABLE LOOKUP 算子用于表示全局索引的回表逻辑。 - -示例:全局索引回表 - -```javascript -obclient>CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT, c3 INT) PARTITION BY - HASH(c1) PARTITIONS 4; -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE INDEX i1 ON t1(c2) GLOBAL; -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT * FROM t1 WHERE c2 = 1\G; -*************************** 1. row *************************** -Query Plan: -| ======================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | ----------------------------------------- -|0 |TABLE LOOKUP|t1 |3960 |31065| -|1 | TABLE SCAN |t1(i1)|3960 |956 | -======================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil), - partitions(p[0-3]) - 1 - output([t1.c1]), filter(nil), - access([t1.c1]), partitions(p0) -``` - - - -上述示例中,1 号算子是扫描全局索引 i1, 0 号算子表明从主表中获取不在全局索引的列。执行计划展示中的 outputs \& filters 详细展示了 TABLE LOOKUP 算子的输出信息如下: - - -| **信息名称** | **含义** | -|------------|---------------------------------------------------------------------| -| output | 该算子的输出列。 | -| filter | 该算子的过滤谓词。 由于示例中 TABLE LOOKUP 算子没有设置 filter,所以为 nil。 | -| partitions | 查询需要扫描的分区。 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/20.DELETE-1-2-3-4.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/20.DELETE-1-2-3-4.md deleted file mode 100644 index ea6be722c..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/20.DELETE-1-2-3-4.md +++ /dev/null @@ -1,176 +0,0 @@ -DELETE -=========================== - -DELETE 算子用于删除数据表中满足指定条件的数据行。 - -OceanBase 数据库支持的 DELETE 算子包括 DELETE 和 MULTI PARTITION DELETE。 - -DELETE ---------------------------- - -DELETE 算子用于删除数据表单个分区中的数据。 - -如下例所示,Q1 查询删除了表 t1 中所有满足 `c2>'100'` 的行。 - -```javascript -obclient>CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 VARCHAR2(10)); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t2 (c1 INT PRIMARY KEY, c2 VARCHAR2(10)) PARTITION BY - HASH(c1) PARTITIONS 10; -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t3 (c1 INT PRIMARY KEY, c2 VARCHAR2(10)); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE INDEX IDX_t3_c2 ON t3 (c2) PARTITION BY HASH(c2) PARTITIONS 3; -Query OK, 0 rows affected (0.12 sec) - -Q1: -obclient>EXPLAIN DELETE FROM t1 WHERE c2 > '100'\G; -*************************** 1. row *************************** -Query Plan: -====================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | --------------------------------------- -|0 |DELETE | |10000 |118697| -|1 | TABLE SCAN|T1 |10000 |108697| -====================================== - -Outputs & filters: -------------------------------------- - 0 - output(nil), filter(nil), table_columns([{T1: ({T1: (T1.C1, T1.C2)})}]) - 1 - output([T1.C1], [T1.C2]), filter([T1.C2 > '100']), - access([T1.C1], [T1.C2]), partitions(p0) -``` - - - -上述示例中,执行计划展示中的 outputs \& filters 详细列出了 DELETE 算子的输出信息如下: - - -| **信息名称** | **含义** | -|---------------|-----------------------------------------------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。由于示例中 DELETE 算子没有设置 filter,所以为 nil。对于删除语句,WHERE 中的谓词会下推到基表上,比如 Q1 查询中的 `c2>'100'` 被下推到了 1 号算子上。 | -| table_columns | 删除操作涉及的数据表的列。 | - - - -更多 DELETE 算子的示例如下: - -* Q2 查询删除 t1 中的所有数据行。 - - - -* Q3 查询删除分区表 t2 中满足 `c1 = 1` 的数据行。 - - - -* Q4 查询删除分区表 t2 中满足 `c2 > '100' ` 的数据行。从执行计划中可以看到,DELETE 算子分配在 EXCHANGE 算子下面,因此 2 号和 3 号算子会作为一个 task 以分区的粒度进行调度。在计划执行时, 3 号算子扫描出 t2 一个分区中满足 `c2 > '100'` 的数据,2 号算子 DELETE 则只会删除相应分区下扫描出的数据。 - - - - - - -```javascript -Q2: -obclient>EXPLAIN DELETE FROM t1\G; -*************************** 1. row *************************** -Query Plan: -====================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | --------------------------------------- -|0 |DELETE | |100000 |161860| -|1 | TABLE SCAN|T1 |100000 |61860 | -====================================== - -Outputs & filters: -------------------------------------- - 0 - output(nil), filter(nil), table_columns([{T1: ({T1: (T1.C1, T1.C2)})}]) - 1 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - - -Q3: -obclient>EXPLAIN DELETE FROM t2 WHERE c1 = 1\G; -*************************** 1. row *************************** -Query Plan: -=================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------ -|0 |DELETE | |1 |53 | -|1 | TABLE GET|T2 |1 |52 | -=================================== - -Outputs & filters: -------------------------------------- - 0 - output(nil), filter(nil), table_columns([{T2: ({T2: (T2.C1, T2.C2)})}]) - 1 - output([T2.C1], [T2.C2]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p5) - - -Q4: -obclient>EXPLAIN DELETE FROM t2 WHERE c2 > '100'\G; -*************************** 1. row *************************** -Query Plan: -=============================================== - -|ID|OPERATOR |NAME |EST. ROWS|COST | -------------------------------------------------------- -|0 |PX COORDINATOR | |100000 |1186893| -|1 | EXCHANGE OUT DISTR |:EX10000|100000 |1186893| -|2 | PX PARTITION ITERATOR| |100000 |1186893| -|3 | DELETE | |100000 |1186893| -|4 | TABLE SCAN |T2 |100000 |1086893| -================================================== - -Outputs & filters: -------------------------------------- - 0 - output(nil), filter(nil) - 1 - output(nil), filter(nil), dop=1 - 2 - output(nil), filter(nil) - 3 - output(nil), filter(nil), table_columns([{T2: ({T2: (T2.C1, T2.C2)})}]) - 4 - output([T2.C1], [T2.C2]), filter([T2.C2 > '100']), - access([T2.C1], [T2.C2]), partitions(p[0-9]) -``` - - - -MULTI PARTITION DELETE -------------------------------------------- - -MULTI PARTITION DELETE 算子用于删除数据表多个分区中的数据。 - -如下例所示,Q5 查询删除了表 t3 中所有满足 `c2 > '100' ` 的数据行。虽然 t3 本身是一个非分区表,但因为 t3 上存在全局索引 idx_t3_c2,因此每一条数据行会存在于多个分区中。 - -```javascript -Q5: -obclient>EXPLAIN DELETE FROM t3 WHERE c2 > '100'\G; -*************************** 1. row *************************** -Query Plan: -======================================================== - -|ID|OPERATOR |NAME |EST. ROWS|COST | ------------------------------------------------------------ -|0 |MULTI PARTITION DELETE | |10001 |27780| -|1 | PX COORDINATOR | |10001 |17780| -|2 | EXCHANGE OUT DISTR |:EX10000 |10001 |14941| -|3 | PX PARTITION ITERATOR| |10001 |14941| -|4 | TABLE SCAN |T3(IDX_T3_C2)|10001 |14941| -=========================================================== - -Outputs & filters: -------------------------------------- - 0 - output(nil), filter(nil), table_columns([{T3: ({T3: (T3.C1, T3.C2)}, {IDX_T3_C2: (T3.C2, T3.C1)})}]) - 1 - output([T3.C1], [T3.C2]), filter(nil) - 2 - output([T3.C2], [T3.C1]), filter(nil), dop=1 - 3 - output([T3.C2], [T3.C1]), filter(nil) - 4 - output([T3.C2], [T3.C1]), filter(nil), - access([T3.C2], [T3.C1]), partitions(p[0-2]) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 MULTI PARTITION DELETE 算子的信息,字段的含义与 DELETE 算子相同。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/21.UPDATE-1-2-3-4.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/21.UPDATE-1-2-3-4.md deleted file mode 100644 index 4dd28a075..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/21.UPDATE-1-2-3-4.md +++ /dev/null @@ -1,219 +0,0 @@ -UPDATE -=========================== - -UPDATE 算子用于更新数据表中满足指定条件的数据行。 - -OceanBase 数据库支持的 UPDATE 算子包括 UPDATE 和 MULTI PARTITION UPDATE。 - -UPDATE ---------------------------- - -UPDATE 算子用于更新数据表单个分区中的数据。 - -如下例所示,Q1 查询更新了表 t1 中所有满足 `c2 = '100'` 的行,并将 c2 的值设置为 200。 - -```javascript -obclient>CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 VARCHAR2(10)); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t2 (c1 INT PRIMARY KEY, c2 VARCHAR2(10)) PARTITION BY - HASH(c1) PARTITIONS 10; -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t3 (c1 INT PRIMARY KEY, c2 VARCHAR2(10)); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE INDEX IDX_t3_c2 ON t3 (c2) PARTITION BY HASH(c2) PARTITIONS 3; -Query OK, 0 rows affected (0.12 sec) - -Q1: -obclient>EXPLAIN UPDATE t1 SET c2 = '200' WHERE c2 = '100'\G; -*************************** 1. row *************************** -Query Plan: -====================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ------------------------------------------------ -|0 |EXCHANGE IN REMOTE | |990 |109687| -|1 | EXCHANGE OUT REMOTE| |990 |109687| -|2 | UPDATE | |990 |109687| -|3 | TABLE SCAN |T1 |990 |108697| -=============================================== - -Outputs & filters: -------------------------------------- - 0 - output(nil), filter(nil) - 1 - output(nil), filter(nil) - 2 - output(nil), filter(nil), table_columns([{T1: ({T1: (T1.C1, T1.C2)})}]), - update([T1.C2=?]) - 3 - output([T1.C1], [T1.C2], [?]), filter([T1.C2 = '100']), - access([T1.C2], [T1.C1]), partitions(p0) -``` - - - -上述示例中,执行计划展示中的 outputs \& filters 详细列出了 UPDATE 算子的输出信息如下: - - -| **信息名称** | **含义** | -|---------------|-----------------------------------------------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。由于示例中 UPDATE 算子没有 filter,所以为 nil。对于更新语句,WHERE 中的谓词会下推到基表上,比如 Q1 查询中的 `c2 = '100'` 被下推到了 1 号算子上。 | -| table_columns | 更新操作涉及的数据表的列。 | -| update | 更新操作中所有的赋值表达式。 | - - - -更多 UPDATE 算子的示例如下: - -* Q2 查询更新 t1 中的所有数据行,并将 c2 的值置为 200。 - - - -* Q3 查询更新分区表 t2 中满足 `c1='100'` 的数据行,并将 c2 的值置为 150。 - - - -* Q4 查询更新分区表 t2 中满足 `c2 ='100'` 的数据行,并将`c2` 的值置为`rpad(t2.c2, 10, '9')`。从执行计划中可以看到,UPDATE 算子分配在 EXCHANGE 算子下面,因此 2 号和 3 号算子会作为一个 task 以分区的粒度进行调度。执行时 3 号算子扫描出 t2 一个分区中满足 `c2 = '100'` 的数据,2 号 UPDATE 算子则只会更新相应分区下扫描出的数据。 - - - - - - -```javascript -Q2: -obclient>EXPLAIN UPDATE t1 SET c2 = '200'\G; -*************************** 1. row *************************** -Query Plan: -====================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ------------------------------------------------ -|0 |EXCHANGE IN REMOTE | |100000 |161860| -|1 | EXCHANGE OUT REMOTE| |100000 |161860| -|2 | UPDATE | |100000 |161860| -|3 | TABLE SCAN |T1 |100000 |61860 | -=============================================== - -Outputs & filters: -------------------------------------- - 0 - output(nil), filter(nil) - 1 - output(nil), filter(nil) - 2 - output(nil), filter(nil), table_columns([{T1: ({T1: (T1.C1, T1.C2)})}]), - update([T1.C2=?]) - 3 - output([T1.C1], [T1.C2], [?]), filter(nil), - access([T1.C2], [T1.C1]), partitions(p0) - - -Q3: -obclient>EXPLAIN UPDATE t2 SET t2.c2 = '150' WHERE t2.c1 = '100'\G; -*************************** 1. row *************************** -Query Plan: -=================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------ -|0 |UPDATE | |1 |53 | -|1 | TABLE GET|T2 |1 |52 | -=================================== - -Outputs & filters: -------------------------------------- - 0 - output(nil), filter(nil), table_columns([{T2: ({T2: (T2.C1, T2.C2)})}]), - update([T2.C2=?]) - 1 - output([T2.C1], [T2.C2], [?]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p5) - - -Q4: -obclient>EXPLAIN UPDATE t2 SET t2.c2 = RPAD(t2.c2, 10, '9') WHERE t2.c2 = '100'\G; -*************************** 1. row *************************** -Query Plan: -=============================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | -------------------------------------------------------- -|0 |PX COORDINATOR | |9900 |1096793| -|1 | EXCHANGE OUT DISTR |:EX10000|9900 |1096793| -|2 | PX PARTITION ITERATOR| |9900 |1096793| -|3 | UPDATE | |9900 |1096793| -|4 | TABLE SCAN |T2 |9900 |1086893| -======================================================= - -Outputs & filters: -------------------------------------- - 0 - output(nil), filter(nil) - 1 - output(nil), filter(nil), dop=1 - 2 - output(nil), filter(nil) - 3 - output(nil), filter(nil), table_columns([{T2: ({T2: (T2.C1, T2.C2)})}]), - update([T2.C2=column_conv(VARCHAR,utf8mb4_bin,length:10,NULL,RPAD(T2.C2, 10, ?))]) - 4 - output([T2.C1], [T2.C2], [column_conv(VARCHAR,utf8mb4_bin,length:10,NULL,RPAD(T2.C2, 10, ?))]), filter([T2.C2 = '100']), - access([T2.C1], [T2.C2]), partitions(p[0-9]) -``` - - - -MULTI PARTITION UPDATE -------------------------------------------- - -MULTI PARTITION UPDATE 算子表示更新数据表多个分区中的数据。如下例所示,Q5 查询更新表 t3 中所有满足`c2 < '100'`的数据行,并将 c2 的值置为 200。虽然 t3 本身是一个非分区表,但 t3 上存在全局索引 idx_t3_c2,因此每一条数据行会存在于多个分区中。 - -```javascript -Q5: -obclient>EXPLAIN UPDATE t3 SET c2 = '200' WHERE c2 < '100'\G; -*************************** 1. row *************************** -Query Plan: -======================================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | ------------------------------------------------------------ -|0 |MULTI PARTITION UPDATE | |10001 |27780| -|1 | PX COORDINATOR | |10001 |17780| -|2 | EXCHANGE OUT DISTR |:EX10000 |10001 |14941| -|3 | PX PARTITION ITERATOR| |10001 |14941| -|4 | TABLE SCAN |T3(IDX_T3_C2)|10001 |14941| -=========================================================== - -Outputs & filters: -------------------------------------- - 0 - output(nil), filter(nil), table_columns([{T3: ({T3: (T3.C1, T3.C2)}, {IDX_T3_C2: (T3.C2, T3.C1)})}]), - update([T3.C2=?]) - 1 - output([T3.C1], [T3.C2], [?]), filter(nil) - 2 - output([T3.C2], [T3.C1], [?]), filter(nil), dop=1 - 3 - output([T3.C2], [T3.C1], [?]), filter(nil) - 4 - output([T3.C2], [T3.C1], [?]), filter(nil), - access([T3.C2], [T3.C1]), partitions(p[0-2]) -``` - - - -更多 MULTI PARTITION UPDATE 的示例如下: - -* Q6 查询更新分区表 t2 中满足 `c1 = 100` 的数据行,并将 c1 的值设置为 101。因为更新的列是主键列,可能会导致更新后的数据行与更新前的数据行位于不同的分区,因此需要使用 MULTI PARTITION UPDATE 算子进行更新。 - - - - - - -```javascript -Q6: -obclient>EXPLAIN UPDATE t2 SET t2.c1 = 101 WHERE t2.c1 = 100\G; -*************************** 1. row *************************** -Query Plan: -=============================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------------------ -|0 |MULTI PARTITION UPDATE| |1 |54 | -|1 | EXCHANGE IN DISTR | |1 |53 | -|2 | EXCHANGE OUT DISTR | |1 |52 | -|3 | TABLE GET |T2 |1 |52 | -=============================================== - -Outputs & filters: -------------------------------------- - 0 - output(nil), filter(nil), table_columns([{T2: ({T2: (T2.C1, T2.C2)})}]), - update([T2.C1=?]) - 1 - output([T2.C1], [T2.C2], [?]), filter(nil) - 2 - output([T2.C1], [T2.C2], [?]), filter(nil) - 3 - output([T2.C1], [T2.C2], [?]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p5) -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/22.MERGE-1-2-3.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/22.MERGE-1-2-3.md deleted file mode 100644 index 984c44b5a..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/22.MERGE-1-2-3.md +++ /dev/null @@ -1,120 +0,0 @@ -MERGE -========================== - -MERGE 算子用于将源表中的数据行以更新或插入的方式合并到目标表中。 - -OceanBase 数据库支持的 MERGE 算子包括 MERGE 和 MULTI PARTITION MERGE。 - -MERGE --------------------------- - -MERGE 算子用于合并数据表单个分区中的数据。 - -如下例所示,Q1 查询将 src_tbl 表中的数据行合并到 t1 表中,对于 src_tbl 中的每一条数据行按照如下方式进行合并: - -* 当 t1 中存在满足 `t1.c1=src_tbl.c1` 条件的数据行: - - - - - - - - - - - - -* 当 t1 中不存在满足 `t1.c1 = src_tbl.c1` 条件的数据行: - - - - - - - - -* 其中,OUTER JOIN 是合并功能实现时依赖的一次联接操作,使用 MERGE 算子时,一定会在 `source_table` 和 `target_table` 上做一次外联接,目的是为了区分哪些行是匹配的,哪些是不匹配的。 - -* 执行计划展示中的 outputs \& filters 详细列出了 MERGE 算子的输出信息如下: - - - - -MULTI PARTITION MERGE ------------------------------------------- - -MULTI PARTITION MERGE 算子用于合并数据表多个分区中的数据。 - -如下例所示,Q2 查询将 src_tbl 表中的数据行合并到分区表 t2 表中,对于 src_tbl 中的每一条数据行按照如下方式进行合并: - -* 当 t2 中存在满足 `t2.c1 = src_tbl.c1` 条件的数据行: - - - - - - - - - - - - -* 当 t2 中不存在满足 `t2.c1 = src_tbl.c1` 条件的数据行,执行插入操作,向 t2 中插入 `(src_tbl.c1, src_tbl.c2)`。 - - - - - - -```javascript -Q2: -obclient>EXPLAIN MERGE INTO t2 USING SRC_TBL ON (t2.c1 = src_tbl.c1) - WHEN MATCHED THEN - UPDATE SET t2.c2 = SUBSTR(src_tbl.c2, 1, 5) - DELETE WHERE t2.c2 > '80000' - WHEN NOT MATCHED THEN - INSERT (t2.c1, t2.c2) VALUES (src_tbl.c1,src_tbl.c2)\G; -*************************** 1. row *************************** -Query Plan: -============================================================ - -|ID|OPERATOR |NAME |EST. ROWS|COST | --------------------------------------------------------------- -|0 |MULTI PARTITION MERGE | |100000 |100000 | -|1 | PX COORDINATOR | |100000 |956685 | -|2 | EXCHANGE OUT DISTR |:EX10001|100000 |899889 | -|3 | MERGE OUTER JOIN | |100000 |899889 | -|4 | EXCHANGE IN DISTR | |100000 |90258 | -|5 | EXCHANGE OUT DISTR (PKEY)|:EX10000|100000 |61860 | -|6 | TABLE SCAN |SRC_TBL |100000 |61860 | -|7 | SORT | |1000000 |5447108| -|8 | PX PARTITION ITERATOR | |1000000 |618524 | -|9 | TABLE SCAN |T2 |1000000 |618524 | -============================================================== - -Outputs & filters: -------------------------------------- - 0 - output([column_conv(DECIMAL,PS:(38,0),NOT NULL,SRC_TBL.C1)], [column_conv(VARCHAR,utf8mb4_bin,length:10,NULL,SRC_TBL.C2)]), filter(nil), - columns([{T2: ({T2: (T2.C1, T2.C2)})}]), partitions(p[0-9]), - update([T2.C2=column_conv(VARCHAR,utf8mb4_bin,length:10,NULL,SUBSTR(SRC_TBL.C2, 1, 5))]), - match_conds([T2.C1 = SRC_TBL.C1]), insert_conds(nil), - update_conds(nil), delete_conds([T2.C2 > '80000']) - 1 - output([SRC_TBL.C1], [SRC_TBL.C2], [T2.C1], [T2.C1 = SRC_TBL.C1], [T2.C2]), filter(nil) - 2 - output([SRC_TBL.C1], [SRC_TBL.C2], [T2.C1], [T2.C1 = SRC_TBL.C1], [T2.C2]), filter(nil), dop=1 - 3 - output([SRC_TBL.C1], [SRC_TBL.C2], [T2.C1], [T2.C1 = SRC_TBL.C1], [T2.C2]), filter(nil), - equal_conds([T2.C1 = SRC_TBL.C1]), other_conds(nil) - 4 - output([SRC_TBL.C1], [SRC_TBL.C2]), filter(nil) - 5 - (#keys=1, [SRC_TBL.C1]), output([SRC_TBL.C1], [SRC_TBL.C2]), filter(nil), is_single, dop=1 - 6 - output([SRC_TBL.C1], [SRC_TBL.C2]), filter(nil), - access([SRC_TBL.C1], [SRC_TBL.C2]), partitions(p0) - 7 - output([T2.C1], [T2.C2]), filter(nil), sort_keys([T2.C1, ASC]), local merge sort - 8 - output([T2.C1], [T2.C2]), filter(nil) - 9 - output([T2.C1], [T2.C2]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p[0-9]) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 MULTI PARTITION MERGE 算子的输出信息,字段的含义与 MERGE 算子相同。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/23.EXCHANGE-1-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/23.EXCHANGE-1-2.md deleted file mode 100644 index c9f0372c1..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/23.EXCHANGE-1-2.md +++ /dev/null @@ -1,263 +0,0 @@ -EXCHANGE -============================= - -EXCHANGE 算子用于线程间进行数据交互的算子。 - -EXCHANGE 算子适用于在分布式场景,一般都是成对出现的,数据源端有一个 OUT 算子,目的端会有一个 IN 算子。 - -EXCH-IN/OUT --------------------------------- - -EXCH-IN/OUT 即 EXCHANGE IN/ EXCHANGE OUT 用于将多个分区上的数据汇聚到一起,发送到查询所在的主节点上。 - -如下例所示,下面的查询中访问了 5 个分区的数据(p0-p4),其中 1 号算子接受 2 号算子产生的输出,并将数据传出;0 号算子接收多个分区上 1 号算子产生的输出,并将结果汇总输出。 - -```javascript -obclient>CREATE TABLE t (c1 INT, c2 INT) PARTITION BY HASH(c1) PARTITIONS 5; -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT * FROM t\G; -*************************** 1. row *************************** -Query Plan: -============================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ----------------------------------------------- -|0 |EXCHANGE IN DISTR | |500000 |545109| -|1 | EXCHANGE OUT DISTR| |500000 |320292| -|2 | TABLE SCAN |T |500000 |320292| -============================================== - -Outputs & filters: -------------------------------------- - 0 - output([T.C1], [T.C2]), filter(nil) - 1 - output([T.C1], [T.C2]), filter(nil) - 2 - output([T.C1], [T.C2]), filter(nil), - access([T.C1], [T.C2]), partitions(p[0-4]) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 EXCH-IN/OUT 算子的输出信息如下: - - -| 信息名称 | 含义 | -|--------|---------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 EXCH-IN/OUT 算子没有设置 filter,所以为 nil。 | - - - -EXCH-IN/OUT (REMOTE) ------------------------------------------ - -EXCH-IN/OUT (REMOTE) 算子用于将远程的数据(单个分区的数据)拉回本地。 - -如下例所示,在 A 机器上创建了一张非分区表,在 B 机器上执行查询,读取该表的数据。此时,由于待读取的数据在远程,执行计划中分配了 0 号算子和 1 号算子来拉取远程的数据。其中,1 号算子在 A 机器上执行,读取 t 表的数据,并将数据传出;0 号算子在 B 机器上执行,接收 1 号算子产生的输出。 - -```javascript -obclient>CREATE TABLE t (c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT * FROM t\G; -*************************** 1. row *************************** -Query Plan: -=============================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ------------------------------------------------ -|0 |EXCHANGE IN REMOTE | |100000 |109029| -|1 | EXCHANGE OUT REMOTE| |100000 |64066 | -|2 | TABLE SCAN |T |100000 |64066 | -=============================================== - -Outputs & filters: -------------------------------------- - 0 - output([T.C1], [T.C2]), filter(nil) - 1 - output([T.C1], [T.C2]), filter(nil) - 2 - output([T.C1], [T.C2]), filter(nil), - access([T.C1], [T.C2]), partitions(p0) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 EXCH-IN/OUT (REMOTE) 算子的输出信息,字段的含义与 EXCH-IN/OUT 算子相同。 - -EXCH-IN/OUT (PKEY) ---------------------------------------- - -EXCH-IN/OUT (PKEY) 算子用于数据重分区。它通常用于二元算子中,将一侧孩子节点的数据按照另外一些孩子节点的分区方式进行重分区。 - -如下示例中,该查询是对两个分区表的数据进行联接,执行计划将 s 表的数据按照 t 的分区方式进行重分区,4 号算子的输入是 s 表扫描的结果,对于 s 表的每一行,该算子会根据 t 表的数据分区,以及根据查询的联接条件,确定一行数据应该发送到哪个节点进行。 - -此外,可以看到 3 号算子是一个 EXCHANGE IN MERGE SORT DISTR,它是一个特殊的 EXCHANGE IN 算子,它用于在汇总多个分区的数据时,会进行一定的归并排序,在这个执行计划中,3 号算子接收到的每个分区的数据都是按照 c1 有序排列的,它会对每个接收到的数据进行归并排序,从而保证结果输出结果也是按照 c1 有序排列的。 - -```javascript -obclient>CREATE TABLE t (c1 INT, c2 INT) PARTITION BY HASH(c1) PARTITIONS 5; -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE s (c1 INT PRIMARY KEY, c2 INT) PARTITION BY HASH(c1) PARTITIONS 4; -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT * FROM s, t WHERE s.c1 = t.c1\G; -*************************** 1. row *************************** -Query Plan: - =============================================================== -|ID|OPERATOR |NAME|EST. ROWS |COST | ---------------------------------------------------------------- -|0 |EXCHANGE IN DISTR | |1960200000|3090308367| -|1 | EXCHANGE OUT DISTR | |1960200000|1327558071| -|2 | MERGE JOIN | |1960200000|1327558071| -|3 | EXCHANGE IN MERGE SORT DISTR| |400000 |436080 | -|4 | EXCHANGE OUT DISTR (PKEY) | |400000 |256226 | -|5 | TABLE SCAN |S |400000 |256226 | -|6 | TABLE SCAN |T |500000 |320292 | -=============================================================== - -Outputs & filters: -------------------------------------- - 0 - output([S.C1], [S.C2], [T.C1], [T.C2]), filter(nil) - 1 - output([S.C1], [S.C2], [T.C1], [T.C2]), filter(nil) - 2 - output([S.C1], [S.C2], [T.C1], [T.C2]), filter(nil), - equal_conds([S.C1 = T.C1]), other_conds(nil) - 3 - output([S.C1], [S.C2]), filter(nil), sort_keys([S.C1, ASC]) - 4 - (#keys=1, [S.C1]), output([S.C1], [S.C2]), filter(nil) - 5 - output([S.C1], [S.C2]), filter(nil), - access([S.C1], [S.C2]), partitions(p[0-3]) - 6 - output([T.C1], [T.C2]), filter(nil), - access([T.C1], [T.C2]), partitions(p[0-4]) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 EXCH-IN/OUT (PKEY) 算子的输出信息如下: - - -| 信息名称 | 含义 | -|--------|--------------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 EXCH-IN/OUT(PKEY)算子没有设置 filter,所以为 nil。 | -| pkey | 按照哪一列进行重分区。 例如,`#keys=1, [s.c1]` 表示按照 c1 这一列重分区 | - - - -EXCH-IN/OUT (HASH) ---------------------------------------- - -EXCH-IN/OUT (HASH) 算子用于对数据使用一组 HASH 函数进行重分区。 - -如下例所示的执行计划中,3-5 号以及 7-8 号是两组使用 HASH 重分区的 EXCHANGE 算子。这两组算子的作用是把 t 表和 s 表的数据按照一组新的 HASH 函数打散成多份,在这个例子中 HASH 的列为 t.c2 和 s.c2,这保证了 c2 取值相同的行会被分发到同一份中。基于重分区之后的数据,2 号算子 HASH JOIN 会对每一份数据按照 `t.c2= s.c2` 进行联接。 - -此外,由于查询中执行了并行度为 2,计划中展示了 dop = 2 (dop 是 Degree of Parallelism 的缩写)。 - -```javascript -obclient>CREATE TABLE t (c1 INT, c2 INT) PARTITION BY HASH(c1) PARTITIONS 4; -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE s (c1 INT, c2 INT) PARTITION BY HASH(c1) PARTITIONS 4; -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT /*+PQ_DISTRIBUTE(@"SEL$1" ("TEST.S"@"SEL$1" ) HASH HASH), - PARALLEL(2)*/ * FROM t, s WHERE t.c2 = s.c2\G; -*************************** 1. row *************************** -Query Plan: -================================================================= -|ID|OPERATOR |NAME |EST. ROWS |COST | ------------------------------------------------------------------ -|0 |PX COORDINATOR | |1568160000|2473629500| -|1 | EXCHANGE OUT DISTR |:EX10002|1568160000|1063429263| -|2 | HASH JOIN | |1568160000|1063429263| -|3 | EXCHANGE IN DISTR | |400000 |436080 | -|4 | EXCHANGE OUT DISTR (HASH)|:EX10000|400000 |256226 | -|5 | PX PARTITION ITERATOR | |400000 |256226 | -|6 | TABLE SCAN |T |400000 |256226 | -|7 | EXCHANGE IN DISTR | |400000 |436080 | -|8 | EXCHANGE OUT DISTR (HASH)|:EX10001|400000 |256226 | -|9 | PX PARTITION ITERATOR | |400000 |256226 | -|10| TABLE SCAN |S |400000 |256226 | -================================================================= - -Outputs & filters: -------------------------------------- - 0 - output([T.C1], [T.C2], [S.C1], [S.C2]), filter(nil) - 1 - output([T.C1], [T.C2], [S.C1], [S.C2]), filter(nil), dop=2 - 2 - output([T.C1], [T.C2], [S.C1], [S.C2]), filter(nil), - equal_conds([T.C2 = S.C2]), other_conds(nil) - 3 - output([T.C1], [T.C2]), filter(nil) - 4 - (#keys=1, [T.C2]), output([T.C1], [T.C2]), filter(nil), dop=2 - 5 - output([T.C1], [T.C2]), filter(nil) - 6 - output([T.C1], [T.C2]), filter(nil), - access([T.C1], [T.C2]), partitions(p[0-3]) - 7 - output([S.C1], [S.C2]), filter(nil) - 8 - (#keys=1, [S.C2]), output([S.C1], [S.C2]), filter(nil), dop=2 - 9 - output([S.C1], [S.C2]), filter(nil) - 10 - output([S.C1], [S.C2]), filter(nil), - access([S.C1], [S.C2]), partitions(p[0-3]) -``` - - - -其中,PX PARTITION ITERATO 算子用于按照分区粒度迭代数据,详细信息请参见 [GI](../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/24.GI-1-2.md)。 - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 EXCH-IN/OUT (HASH) 算子的输出信息如下: - - -| 信息名称 | 含义 | -|--------|--------------------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 EXCH-IN/OUT (HASH) 算子没有设置 filter,所以为 nil。 | -| pkey | 按照哪一列进行 HASH 重分区。 例如,`#keys=1, [s.c2]` 表示按照 c2 这一列进行 HASH 重分区。 | - - - -EXCH-IN/OUT(BROADCAST) -------------------------------------------- - -EXCH-IN/OUT(BROADCAST) 算子用于对输入数据使用 BROADCAST 的方法进行重分区,它会将数据广播到其他线程上。 - -如下示例的执行计划中,3-4 号是一组使用 BROADCAST 重分区方式的 EXCHANGE 算子。它会将 t 表的数据广播到每个线程上,s 表每个分区的数据都会尝试和被广播的 t 表数据进行联接。 - -```javascript -obclient>CREATE TABLE t (c1 INT, c2 INT) PARTITION BY HASH(c1) PARTITIONS 4; -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE s (c1 INT, c2 INT) PARTITION BY HASH(c1) PARTITIONS 4; -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO s VALUES (1, 1), (2, 2), (3, 3), (4, 4); -Query OK, 1 rows affected (0.12 sec) - -obclient>EXPALIN SELECT /*+PARALLEL(2) */ * FROM t, s WHERE t.c2 = s.c2\G; -*************************** 1. row *************************** -Query Plan: -====================================================================== -|ID|OPERATOR |NAME |EST. ROWS |COST | ----------------------------------------------------------------------- -|0 |PX COORDINATOR | |1568160000|2473449646| -|1 | EXCHANGE OUT DISTR |:EX10001|1568160000|1063249409| -|2 | HASH JOIN | |1568160000|1063249409| -|3 | EXCHANGE IN DISTR | |400000 |436080 | -|4 | EXCHANGE OUT DISTR (BROADCAST)|:EX10000|400000 |256226 | -|5 | PX PARTITION ITERATOR | |400000 |256226 | -|6 | TABLE SCAN |T |400000 |256226 | -|7 | PX PARTITION ITERATOR | |400000 |256226 | -|8 | TABLE SCAN |S |400000 |256226 | -====================================================================== - -Outputs & filters: -------------------------------------- - 0 - output([T.C1], [T.C2], [S.C1], [S.C2]), filter(nil) - 1 - output([T.C1], [T.C2], [S.C1], [S.C2]), filter(nil), dop=2 - 2 - output([T.C1], [T.C2], [S.C1], [S.C2]), filter(nil), - equal_conds([T.C2 = S.C2]), other_conds(nil) - 3 - output([T.C1], [T.C2]), filter(nil) - 4 - output([T.C1], [T.C2]), filter(nil), dop=2 - 5 - output([T.C1], [T.C2]), filter(nil) - 6 - output([T.C1], [T.C2]), filter(nil), - access([T.C1], [T.C2]), partitions(p[0-3]) - 7 - output([S.C1], [S.C2]), filter(nil) - 8 - output([S.C1], [S.C2]), filter(nil), - access([S.C1], [S.C2]), partitions(p[0-3]) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 EXCH-IN/OUT (BROADCAST) 算子的信息,字段的含义与 EXCH-IN/OUT 算子相同。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/24.GI-1-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/24.GI-1-2.md deleted file mode 100644 index 9538caad4..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/24.GI-1-2.md +++ /dev/null @@ -1,86 +0,0 @@ -GI -======================= - -GI 算子用于并行执行中,用于按照分区或者按照数据块迭代整张表。 - -按照迭代数据的粒度划分,GI 算子包括 PX PARTITION ITERATOR 和 PX BLOCK ITERATOR。 - -PX PARTITION ITERATOR ------------------------------------------- - -PX PARTITION ITERATOR 算子用于按照分区粒度迭代数据。 - -如下示例中,2 号算子按分区粒度迭代出数据。 - -```sql -obclient>CREATE TABLE t (c1 INT, c2 INT) PARTITION BY HASH(c1) PARTITIONS 4; -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE INDEX idx ON t (c1); -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT /*+FULL(t)*/ c1 FROM t\G; -*************************** 1. row *************************** -Query Plan: -====================================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | ------------------------------------------------------- -|0 |PX COORDINATOR | |400000 |427257| -|1 | EXCHANGE OUT DISTR |:EX10000|400000 |247403| -|2 | PX PARTITION ITERATOR| |400000 |247403| -|3 | TABLE SCAN |T |400000 |247403| -====================================================== - -Outputs & filters: -------------------------------------- - 0 - output([T.C1], [T.C2]), filter(nil) - 1 - output([T.C1], [T.C2]), filter(nil), dop=1 - 2 - output([T.C1], [T.C2]), filter(nil) - 3 - output([T.C1], [T.C2]), filter(nil), - access([T.C1], [T.C2]), partitions(p[0-3]) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 PX PARTITION ITERATOR 算子的输出信息如下: - - -| 信息名称 | 含义 | -|--------|-------------------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 PX PARTITION ITERATOR 算子没有设置 filter,所以为 nil。 | - - - -PX BLOCK ITERATOR --------------------------------------- - -PX BLOCK ITERATOR 算子用于按照数据块粒度迭代数据。 - -相对于 PX PARTITION ITERATOR,PX BLOCK ITERATOR 算子按照数据块迭代的方式粒度更小,能够切分出更多的任务,支持更高的并行度。 - -```sql -obclient>EXPLAIN SELECT /*+PARALLEL(4)*/ c1 FROM t\G; -*************************** 1. row *************************** -Query Plan: -================================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | --------------------------------------------------- -|0 |PX COORDINATOR | |400000 |279171| -|1 | EXCHANGE OUT DISTR|:EX10000|400000 |189244| -|2 | PX BLOCK ITERATOR| |400000 |189244| -|3 | TABLE SCAN |T(IDX) |400000 |189244| -================================================== - -Outputs & filters: -------------------------------------- - 0 - output([T.C1]), filter(nil) - 1 - output([T.C1]), filter(nil), dop=4 - 2 - output([T.C1]), filter(nil) - 3 - output([T.C1]), filter(nil), - access([T.C1]), partitions(p[0-3]) -``` - - - -上述示例的执行计划展示中的 outputs \& filters 详细列出了 PX BLOCK ITERATOR 算子的输出信息,字段的含义与 PX PARTITION ITERATOR 算子相同。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/3.JOIN-1-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/3.JOIN-1-2.md deleted file mode 100644 index 9ba45fa41..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/3.JOIN-1-2.md +++ /dev/null @@ -1,262 +0,0 @@ -JOIN -========================= - -JOIN 算子用于将两张表的数据,按照特定的条件进行联接。 - -JOIN 的类型主要包括内联接(INNER JOIN)、外联接(OUTER JOIN)和半联接(SEMI/ANTI JOIN)三种。 - -OceanBase 数据库支持的 JOIN 算子主要有 NESTED LOOP JOIN (NLJ)、MERGE JOIN (MJ) 和 HASH JOIN (HJ)。 - -NESTED LOOP JOIN (NLJ) -------------------------------------------- - -如下示例中,Q1 和 Q2 查询使用 HINT 指定了查询使用 NLJ。其中,0 号算子是一个 NLJ 算子。这个算子存在两个子节点,分别是 1 号算子和 2 号算子,它的执行逻辑为: - -1. 从 1 号算子读取一行。 - - - -2. 打开 2 号算子,读取所有的行。 - - - -3. 联接接 1和 2 号算子的输出结果,并执行过滤条件,输出结果。 - - - -4. 重复第一步,直到 1 号算子迭代结束。 - - - - - - -```javascript -obclient>CREATE TABLE t1 (c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>CREATE TABLE t2 (d1 INT, d2 INT, PRIMARY KEY (d1)); -Query OK, 0 rows affected (0.12 sec) - -Q1: -obclient>EXPLAIN SELECT /*+USE_NL(t1, t2)*/ t1.c2 + t2.d2 FROM t1, t2 - WHERE c2 = d2\G; -*************************** 1. row *************************** -Query Plan: -=========================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | -------------------------------------------- -|0 |NESTED-LOOP JOIN| |9782 |411238| -|1 | TABLE SCAN |T1 |999 |647 | -|2 | MATERIAL | |999 |1519 | -|3 | TABLE SCAN |T2 |999 |647 | -=========================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C2 + T2.D2]), filter(nil), - conds([T1.C2 = T2.D2]), nl_params_(nil) - 1 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) - 2 - output([T2.D2]), filter(nil) - 3 - output([T2.D2]), filter(nil), - access([T2.D2]), partitions(p0) -``` - - - -其中,MATERIAL 算子用于物化下层算子输出的数据,详细信息请参见 [MATERIAL](../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/10.MATERIAL-1-2.md)。 - -```javascript -Q2: -obclient>EXPLAIN SELECT /*+USE_NL(t1, t2)*/ t1.c2 + t2.d2 FROM t1, t2 - WHERE c1 = d1\G; -*************************** 1. row *************************** -Query Plan: -| ========================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ------------------------------------------- -|0 |NESTED-LOOP JOIN| |990 |37346| -|1 | TABLE SCAN |T1 |999 |669 | -|2 | TABLE GET |T2 |1 |36 | -========================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C2 + T2.D2]), filter(nil), - conds(nil), nl_params_([T1.C1]) - 1 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 2 - output([T2.D2]), filter(nil), - access([T2.D2]), partitions(p0) -``` - - - -上述示例中,执行计划展示中的 outputs \& filters 详细展示了 NESTED LOOP JOIN 算子的具体输出信息如下: - - -| **信息名称** | **含义** | -|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 NLJ 算子没有设置 filter,所以为 nil。 | -| conds | 联接条件。 例如 Q1 查询中 `t1.c2 = t2.d2` 联接条件。 | -| nl_params_ | 根据 NLJ 左表的数据产生的下推参数。 例如 Q2 查询中的 `t1.c1`。 NLJ 在迭代到左表的每一行时,都会根据 `nl_params` 构造一个参数,根据这个参数和原始的联接条件 `c1 = d1` ,构造一个右表上的过滤条件: `d1 = ?`。 这个过滤条件会下推到右表上,并抽取索引上的查询范围,即需要扫描索引哪个范围的数据。在 Q2 查询中,由于存在下推条件 `d1 = ?`,所以 2 号算子是 TABLE GET 算子。 | - - - -如下示例中,Q3 查询中没有指定任何的联接条件,0 号算子展示成了一个 `NESTED-LOOP JOIN CARTESIAN`,逻辑上它还是一个 NLJ 算子,代表一个没有任何联接条件的 NLJ。 - -```javascript -Q3: -obclient>EXPLAIN SELECT t1.c2 + t2.d2 FROM t1, t2\G; -*************************** 1. row *************************** -Query Plan: -| ===================================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ------------------------------------------------------ -|0 |NESTED-LOOP JOIN CARTESIAN| |998001 |747480| -|1 | TABLE SCAN |T1 |999 |647 | -|2 | MATERIAL | |999 |1519 | -|3 | TABLE SCAN |T2 |999 |647 | -===================================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C2 + T2.D2]), filter(nil), - conds(nil), nl_params_(nil) - 1 - output([T1.C2]), filter(nil), - access([T1.C2]), partitions(p0) - 2 - output([T2.D2]), filter(nil) - 3 - output([T2.D2]), filter(nil), - access([T2.D2]), partitions(p0) -``` - - - -MERGE JOIN (MJ) ------------------------------------- - -如下示例中,Q4 查询使用 `USE_MERGE` 的 HINT 指定了查询使用 MJ。其中,0 号算子是一个 MJ 算子,它有两个子节点,分别是 1 和 3 号算子。该算子会对左右子节点的数据进行归并联接,因此,要求左右子节点的数据相对于联接列是有序的。 - -以 Q4 查询为例,联接条件为 `t1.c2 = t2.d2`,它要求 t1 的数据是按照 c2 排序的,t2 的数据是按照 d2 排序的。在 Q4 查询中,2 号算子的输出是无序的;4 号算子的输出是按照 d2 排序的,均不满足 MERGE JOIN 对序的要求,因此,分配了 1 和 3 号算子进行排序。 - -```javascript -Q4: -obclient>EXPLAIN SELECT /*+USE_MERGE(t1, t2)*/ t1.c2 + t2.d2 FROM t1, t2 - WHERE c2 = d2 AND c1 + d1 > 10\G; -*************************** 1. row *************************** -Query Plan: -| ====================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | --------------------------------------- -|0 |MERGE JOIN | |3261 |14199| -|1 | SORT | |999 |4505 | -|2 | TABLE SCAN|T1 |999 |669 | -|3 | SORT | |999 |4483 | -|4 | TABLE SCAN|T2 |999 |647 | -====================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C2 + T2.D2]), filter(nil), - equal_conds([T1.C2 = T2.D2]), other_conds([T1.C1 + T2.D1 > 10]) - 1 - output([T1.C2], [T1.C1]), filter(nil), sort_keys([T1.C2, ASC]) - 2 - output([T1.C2], [T1.C1]), filter(nil), - access([T1.C2], [T1.C1]), partitions(p0) - 3 - output([T2.D2], [T2.D1]), filter(nil), sort_keys([T2.D2, ASC]) - 4 - output([T2.D2], [T2.D1]), filter(nil), - access([T2.D2], [T2.D1]), partitions(p0) -``` - - - -如下示例中,Q5 查询中联接条件是 `t1.c1 = t2.d1` ,它要求 t1 的数据是按照 c1 排序的,t2 的数据是按照 d1 排序的。在这个执行计划中,t2 选择了主表扫描,结果是按照 d1 有序的,因此不需要额外分配一个 SORT 算子。理想情况下,JOIN 的左右表选择了合适的索引,索引提供的数据顺序能够满足 MJ 的要求,此时不需要分配任何 SORT 算子。 - -```javascript -Q5: -obclient>EXPLAIN SELECT /*+USE_MERGE(t1, t2)*/ t1.c2 + t2.d2 FROM t1, t2 - WHERE c1 = d1\G; -*************************** 1. row *************************** -Query Plan: -| ===================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| -------------------------------------- -|0 |MERGE JOIN | |990 |6096| -|1 | SORT | |999 |4505| -|2 | TABLE SCAN|T1 |999 |669 | -|3 | TABLE SCAN |T2 |999 |647 | -===================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C2 + T2.D2]), filter(nil), - equal_conds([T1.C1 = T2.D1]), other_conds(nil) - 1 - output([T1.C2], [T1.C1]), filter(nil), sort_keys([T1.C1, ASC]) - 2 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 3 - output([T2.D1], [T2.D2]), filter(nil), - access([T2.D1], [T2.D2]), partitions(p0) -``` - - - -上述示例中,执行计划展示的 outputs \& filters 中详细展示了 MERGE JOIN 算子的具体输出信息如下: - - -| **信息名称** | **含义** | -|-------------|-----------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于 MJ 算子没有设置 filter,所以为 nil。 | -| equal_conds | 归并联接时使用的等值联接条件,左右子节点的结果集相对于联接列必须是有序的。 | -| other_conds | 其他联接条件。 例如 Q4 查询中的 `t1.c1 + t2.d1 > 10` 。 | - - - -HASH JOIN (HJ) ------------------------------------ - -如下示例中,Q6 查询使用 `USE_HASH` 的 HINT 指定了查询使用 HJ。其中,0 号算子是一个 HJ 算子,它有两个子节点,分别是 1 和 2 号算子。该算子的执行逻辑步骤如下: - -1. 读取左子节点的数据,根据联接列计算哈希值(例如 `t1.c1`),构建一张哈希表。 - - - -2. 读取右子节点的数据,根据联接列计算哈希值(例如 `t2.d1`),尝试与对应哈希表中 t1 的数据进行联接。 - - - - - - -```javascript -Q6: -obclient>EXPLAIN SELECT /*+USE_HASH(t1, t2)*/ t1.c2 + t2.d2 FROM t1, t2 - WHERE c1 = d1 AND c2 + d2 > 1\G; -*************************** 1. row *************************** -Query Plan: -| ==================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------- -|0 |HASH JOIN | |330 |4850| -|1 | TABLE SCAN|T1 |999 |669 | -|2 | TABLE SCAN|T2 |999 |647 | -==================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C2 + T2.D2]), filter(nil), - equal_conds([T1.C1 = T2.D1]), other_conds([T1.C2 + T2.D2 > 1]) - 1 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 2 - output([T2.D1], [T2.D2]), filter(nil), - access([T2.D1], [T2.D2]), partitions(p0) -``` - - - -上述示例中,执行计划展示中的 outputs \& filters 详细展示了 HASH JOIN 算子的输出信息如下: - - -| **信息名称** | **含义** | -|-------------|---------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于 HJ 算子没有设置 filter,所以为 nil。 | -| equal_conds | 等值联接,左右两侧的联接列会用于计算哈希值。 | -| other_conds | 其他联接条件。 例如 Q6 查询中的 `t1.c2 + t2.d2 > 1`。 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/4.COUNT-1-2-3-4.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/4.COUNT-1-2-3-4.md deleted file mode 100644 index cd1727eea..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/4.COUNT-1-2-3-4.md +++ /dev/null @@ -1,94 +0,0 @@ -COUNT -========================== - -COUNT 算子用于兼容 Oracle 的 ROWNUM 功能,实现 ROWNUM 表达式的自增操作。 - -在一般场景下,当 SQL 查询含有 ROWNUM 时,SQL 优化器就会在生成执行计划的时候分配一个 COUNT 算子。当然在一些情况下,SQL 优化器会将含有 ROWNUM 的 SQL 改写为 LIMIT 算子,这时就不会再分配 COUNT 算子。 - -正常分配 COUNT 算子的场景 -------------------------------------- - -示例 1:含有 ROWNUM 的 SQL 查询正常分配 COUNT 算子场景。 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(1, 1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(3, 3); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(5, 5); -Query OK, 1 rows affected (0.12 sec) - -Q1: -obclient>EXPLAIN SELECT c1,ROWNUM FROM t1\G; -*************************** 1. row *************************** -Query Plan: -| ==================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------- -|0 |COUNT | |1 |37 | -|1 | TABLE SCAN|T1 |1 |36 | -==================================== - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [rownum()]), filter(nil) - 1 - output([T1.C1]), filter(nil), - access([T1.C1]), partitions(p0) - -obclient>SELECT c1,ROWNUM FROM t1; -+------+--------+ -| C1 | ROWNUM | -+------+--------+ -| 1 | 1 | -| 3 | 2 | -| 5 | 3 | -+------+--------+ -3 rows in set (0.01 sec) -``` - - - -上述示例中,执行计划展示中的 outputs \& filters 详细展示了 COUNT 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|---------------------------------------------------------------| -| output | 该算子输出的表达式。 其中 rownum() 表示 ROWNUM 对应的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 COUNT 算子没有设置 filter,所以为 nil。 | - - - -从上述执行计划示例的输出结果可以发现,ROWNUM 对应的表达式的初始值为 1,每通过一次 COUNT 算子,COUNT 算子就会为 ROWNUM 对应的表达式的值加上 1,实现 ROWNUM 表达式的自增操作。 - -不分配 COUNT 算子的场景 ------------------------------------- - -示例 2:含有 rownum 的 SQL 改写为 LIMIT 后,不分配 COUNT 算子的场景。 - -```javascript -Q2: -obclient>EXPLAIN SELECT 1 FROM DUAL WHERE ROWNUM < 2\G; -*************************** 1. row *************************** -Query Plan: -| ==================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------- -|0 |LIMIT | |1 |1 | -|1 | EXPRESSION| |1 |1 | -==================================== - -Outputs & filters: -------------------------------------- - 0 - output([1]), filter(nil), limit(?), offset(nil) - 1 - output([1]), filter(nil) - values({1}) -``` - - - -从上述执行计划示例的输出结果可以发现,虽然 SQL 中含有 ROWNUM,但是经过 SQL 优化器改写之后,已经将涉及含有 ROWNUM 的表达式转换为了等价的 LIMIT 表达式,转换的好处在于可以做更多的优化,详细信息请参见 [LIMIT](../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/12.LIMIT-1-2.md)。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/5.group-by-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/5.group-by-2.md deleted file mode 100644 index 408ba7d6c..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/5.group-by-2.md +++ /dev/null @@ -1,140 +0,0 @@ -GROUP BY -============================= - -GROUP BY 算子主要用于在 SQL 中进行分组聚合计算操作。 - -用于对数据进行分组的算法有 HASH 算法和 MERGE 算法,因此根据算法可以将 GROUP BY 算子分为两种:HASH GROUP BY 和 MERGE GROUP BY。执行计划生成时根据 SQL 优化器对于两种算子的代价评估,来选择使用哪种 GROUP BY 算子。 - -对于普通的聚合函数(SUM/MAX/MIN/AVG/COUNT/STDDEV)也是通过分配 GROUP BY 算子来完成,而对于只有聚合函数而不含有 GROUP BY 的 SQL,分配的是 SCALAR GROUP BY 算子,因此 GROUP BY 算子又可以分为三种:SCALAR GROUP BY、HASH GROUP BY 和 MERGE GROUP BY。 - -SCALAR GROUP BY ------------------------------------- - -示例 1:含 SCALAR GROUP BY 算子的执行计划 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(1, 1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(2, 2); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(3, 3); -Query OK, 1 rows affected (0.12 sec) - -Q1: -obclient> EXPLAIN SELECT SUM(c1) FROM t1\G; -*************************** 1. row *************************** -Query Plan: -| ======================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ----------------------------------------- -|0 |SCALAR GROUP BY| |1 |37 | -|1 | TABLE SCAN |T1 |3 |37 | -======================================== - -Outputs & filters: -------------------------------------- - 0 - output([T_FUN_SUM(T1.C1)]), filter(nil), - group(nil), agg_func([T_FUN_SUM(T1.C1)]) - 1 - output([T1.C1]), filter(nil), - access([T1.C1]), partitions(p0) -``` - - - -上述示例中,Q1 查询的执行计划展示中的 outputs \& filters 中详细列出了 SCALAR GROUP BY 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|------------------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 SCALAR GROUP BY 算子未设置 filter,所以为 nil。 | -| group | 需要进行分组的列。 例如,Q1 查询中是 SCALAR GROUP BY 算子,所以为 nil。 | -| agg_func | 所涉及的聚合函数。 例如,Q1 查询是计算表 t1 的 c1 列数据之和,因此为 `T_FUN_SUM(t1.c1)`。 | - - - -HASH GROUP BY ----------------------------------- - -示例 2:含 HASH GROUP BY 算子的执行计划 - -```javascript -Q2: -obclient>EXPLAIN SELECT SUM(c2) FROM t1 GROUP BY c1 HAVING SUM(c2) > 2\G; -*************************** 1. row *************************** -Query Plan: -| ====================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| --------------------------------------- -|0 |HASH GROUP BY| |1 |40 | -|1 | TABLE SCAN |T1 |3 |37 | -====================================== - -Outputs & filters: -------------------------------------- - 0 - output([T_FUN_SUM(T1.C2)]), filter([T_FUN_SUM(T1.C2) > 2]), - group([T1.C1]), agg_func([T_FUN_SUM(T1.C2)]) - 1 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) -``` - - - -上述示例中,Q2 查询的执行计划展示中的 outputs \& filters 详细列出了 HASH GROUP BY 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|------------------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于设置要求分组后的 c2 列求和大于 2,因此为 `T_FUN_SUM(t1.c2) > 2`。 | -| group | 需要进行分组的列。 例如,Q2 查询是 HASH GROUP BY 算子,所以为 nil。 | -| agg_func | 所涉及的聚合函数。 例如,Q2 查询中计算表 t1 的 c1 列之和,因此为 `T_FUN_SUM(t1.c1)`。 | - - -**说明** - - - -HASH GROUP BY 算子将会保证在执行时采用 HASH 算法进行分组。 - -MERGE GROUP BY ------------------------------------ - -示例 3:含 MERGE GROUP BY 算子的执行计划 - -```javascript -Q3: -obclient>EXPLAIN SELECT /*+NO_USE_HASH_AGGREGATION*/SUM(c2) FROM - t1 GROUP BY c1 HAVING SUM(c2) > 2\G; -*************************** 1. row *************************** -Query Plan: -| ======================================= -|ID|OPERATOR |NAME|EST. ROWS|COST| ---------------------------------------- -|0 |MERGE GROUP BY| |1 |45 | -|1 | SORT | |3 |44 | -|2 | TABLE SCAN |T1 |3 |37 | -======================================= - -Outputs & filters: -------------------------------------- - 0 - output([T_FUN_SUM(T1.C2)]), filter([T_FUN_SUM(T1.C2) > 2]), - group([T1.C1]), agg_func([T_FUN_SUM(T1.C2)]) - 1 - output([T1.C1], [T1.C2]), filter(nil), sort_keys([T1.C1, ASC]) - 2 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) -``` - - - -上述示例中,Q3 查询的执行计划展示中的 outputs \& filters 中详细列出了 MERGE GROUP BY 算子的信息,可以看出相同的 SQL 生成执行计划时选择了 MERGE GROUP BY 算子,其算子基本信息都是相同的,最大的区别是在执行的时候选择的分组算法不一样。同时,这里的 2 号算子 TABLE SCAN 返回的结果是一个无序结果,而 GROUP BY 算法采用的是 MERGE GROUP BY,因此必须分配一个 SORT 算子。 -**注意** - - - -NO_USE_HASH_AGGREGATION 和 USE_HASH_AGGREGATION 的 HINT 可以用于控制 GROUP BY 算子选择何种算法进行分组。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/6.window-function-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/6.window-function-2.md deleted file mode 100644 index 6863fe53a..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/6.window-function-2.md +++ /dev/null @@ -1,63 +0,0 @@ -WINDOW FUNCTION -==================================== - -WINDOW FUNCTION 算子用于实现 SQL 中的分析函数(也叫窗口函数),计算窗口下的相关行的结果。 - -窗口函数与聚集函数不同的是,聚集函数一组只能返回一行,而窗口函数每组可以返回多行,组内每一行都是基于窗口的逻辑计算的结果。因此,在执行含有 WINDOW FUNCTION 的 SQL 时 (格式一般为 `OVER(...)`),都会在生成执行计划的时候分配一个 WINDOW FUNCTION 算子。 - -示例:含 WINDOW FUNCTION 算子的执行计划 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(1, 1); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(2, 2); -Query OK, 1 rows affected (0.12 sec) - -obclient>INSERT INTO t1 VALUES(3, 3); -Query OK, 1 rows affected (0.12 sec) - -Q1: -obclient>EXPLAIN SELECT MAX(c1) OVER(PARTITION BY c1 ORDER BY c2) FROM t1\G; -*************************** 1. row *************************** -Query Plan: -| ======================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ----------------------------------------- -|0 |WINDOW FUNCTION| |3 |45 | -|1 | SORT | |3 |44 | -|2 | TABLE SCAN |T1 |3 |37 | -======================================== - -Outputs & filters: -------------------------------------- - 0 - output([T_FUN_MAX(T1.C1)]), filter(nil), - win_expr(T_FUN_MAX(T1.C1)), partition_by([T1.C1]), order_by([T1.C2, ASC]), window_type(RANGE), upper(UNBOUNDED PRECEDING), lower(CURRENT ROW) - 1 - output([T1.C1], [T1.C2]), filter(nil), sort_keys([T1.C1, ASC], [T1.C2, ASC]) - 2 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) -``` - - - -其中,窗口函数中指定了一个 ORDER BY/PARTITION BY 的时候,会在下层分配一个 SORT 算子,将排序结果返回给窗口函数算子使用。 - -上述示例中,Q1 查询的执行计划展示中的 outputs \& filters 详细列出了 WINDOW FUNCTION 算子的输出信息如下: - - -| **信息名称** | **含义** | -|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| output | 该算子输出的表达式。 | -| filter | 该算子上的过滤条件。 由于示例中 WINDOW FUNCTION 算子没有设置 filter,所以为 nil。 | -| win_expr | 在窗口中使用何种聚合函数。 例如,Q1 查询为求 c1 列的最大值,因此为`T_FUN_MAX(t1.c1)`。 | -| partition_by | 在窗口中按照何种方式分组。 例如,Q1 查询为按照 c1 列分组,因此为 `t1.c1`。 | -| order_by | 在窗口中按照何种方式排序。 例如,Q1 查询为按照 c2 列排序,因此为 `t1.c2`。 | -| window_type | 窗口类型,包括 range 和 rows 两种: * range :按照逻辑位置偏移进行计算窗口上下界限,默认使用 range 方式。 * rows :按照实际物理位置偏移进行计算窗口上下界限。 例如,Q1 查询未设置窗口类型,因此选择了默认方式 range。 | -| upper | 设定窗口的上边界: * UNBOUNDED :无边界,选择最大的值(默认)。 * CURRENT ROW :从当前行开始,如果出现数字则表示移动的行数。 * PRECEDING :向前取边 * FOLLOWING:向后取边界。 例如,Q1 查询设置的上边界为向前无边界。 | -| lower | 设定窗口的下边界,边界属性设置同 upper。 例如,Q1 查询设置的下边界为当前行。 | - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/7.subplan-filter-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/7.subplan-filter-2.md deleted file mode 100644 index e7e0f67d9..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/7.subplan-filter-2.md +++ /dev/null @@ -1,136 +0,0 @@ -SUBPLAN FILTER -=================================== - -SUBPLAN FILTER 算子用于驱动表达式中的子查询执行。 - -OceanBase 数据库以 NESTED-LOOP 算法执行 SUBPLAN FILTER 算子,执行时左边取一行数据,然后执行右边的子计划。SUBPLAN FILTER 算子可以驱动相关子查询和非相关子查询计算,并且两种执行方式不同。 - -驱动非相关子查询计算 -------------------------------- - -示例 1:SUBPLAN FILTER 算子驱动非相关子查询计算 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.09 sec) - -obclient>CREATE TABLE t2(c1 INT, c2 INT); -Query OK, 0 rows affected (0.09 sec) - -obclient>EXPLAIN SELECT /*+NO_REWRITE*/c1 FROM t1 WHERE - c2 > (SELECT MAX(c2) FROM t2)\G; -*************************** 1. row *************************** -Query Plan: -| =========================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | -------------------------------------------- -|0 |SUBPLAN FILTER | |33334 |167652| -|1 | TABLE SCAN |T1 |100000 |68478 | -|2 | SCALAR GROUP BY| |1 |85373 | -|3 | TABLE SCAN |T2 |100000 |66272 | -=========================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C1]), filter(nil), - exec_params_(nil), onetime_exprs_([subquery(1)]), init_plan_idxs_(nil) - 1 - output([T1.C1]), filter([T1.C2 > ?]), - access([T1.C2], [T1.C1]), partitions(p0) - 2 - output([T_FUN_MAX(T2.C2)]), filter(nil), - group(nil), agg_func([T_FUN_MAX(T2.C2)]) - 3 - output([T2.C2]), filter(nil), - access([T2.C2]), partitions(p0) -``` - - - -上述示例中,执行计划展示中 0 号算子 SUBPLAN FILTER 驱动右边 SCALAR GROUP BY 子计划执行,outputs \& filters 详细列出了 SUBPLAN FILTER 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| output | 该算子输出的列。 | -| filter | 该算子上的过滤条件。 由于示例中的 SUBPLAN FILTER 算子没有设置 filter,所以为 nil。 | -| exec_params_ | 右子计划依赖左子计划的参数,执行期由SUBPLAN FILTER 从左子计划中获取,传递给右子计划执行。 由于示例中 SUBPLAN FILTER 算子驱动非相关子查询没有涉及该参数,所以为 nil。 | -| onetime_exprs_ | 计划中只计算一次的表达式,如果右子计划是非相关子查询,每次重复执行的结果都是一样的,所以执行一次后保存在参数集合中。 每次执行 SUBPLAN FILTER 时,可以直接从参数集获取右子计划的执行结果。参数 subquery(1) 表示 SUBPLAN FILTER 右边第一个子计划是 onetime expr。 | -| init_plan_ids_ | 该算子中只需要执行一次的子计划。 它与 onetime_exprs_ 的区别是,init_plan_返回多行多列,onetime_expr_ 返回单行单列。 由于示例中的 SQL 查询未设置此项,所以为 nil。 | - - - -SUBPLAN FILTER 算子驱动非相关子查询计算的一般执行流程如下: - -1. SUBPLAN FILTER 在启动时会执行 onetime_exprs_。 - - - -2. 从参数中拿到右边非相关子查询的结果,下推 filter 到左边计划,执行左边的查询。 - - - -3. 输出左边查询的行。 - - - - - - -驱动相关子查询计算 ------------------------------- - -示例 2:SUBPLAN FILTER 算子驱动相关子查询计算 - -```javascript -obclient>EXPLAIN SELECT /*+NO_REWRITE*/c1 FROM t1 WHERE c2 > (SELECT - MAX(c2) FROM t2 WHERE t1.c1=t2.c1)\G; -*************************** 1. row *************************** -Query Plan: -| =============================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ------------------------------------------------ -|0 |SUBPLAN FILTER | |33334 |8541203533| -|1 | TABLE SCAN |T1 |100000 |68478 | -|2 | SCALAR GROUP BY| |1 |85412 | -|3 | TABLE SCAN |T2 |990 |85222 | -=============================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C1]), filter([T1.C2 > subquery(1)]), - exec_params_([T1.C1]), onetime_exprs_(nil), init_plan_idxs_(nil) - 1 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 2 - output([T_FUN_MAX(T2.C2)]), filter(nil), - group(nil), agg_func([T_FUN_MAX(T2.C2)]) - 3 - output([T2.C2]), filter([? = T2.C1]), - access([T2.C1], [T2.C2]), partitions(p0) -``` - - - -上述示例中,执行计划展示中 0 号算子 SUBPLAN FILTER 驱动右边 SCALAR GROUP BY 子计划执行,outputs \& filters 详细列出了 SUBPLAN FILTER 算子的输出信息如下: - - -| **信息名称** | **含义** | -|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| output | 该算子输出的列。 | -| filter | 该算子上的过滤条件。 例如,示例 2 中的 SQL 查询过滤条件为 `t1.c2 > subquery(1)`。 | -| exec_params_ | 右子计划依赖左子计划的参数,执行期由SUBPLAN FILTER 从左子计划中获取,传递给右子计划执行。 左边输出一行数据后需要下推的参数,在非相关子查询中一般没有下推的参数。 | -| onetime_exprs_ | 计划中只计算一次的表达式,如果右子计划是非相关子查询,每次重复执行的结果都是一样的,所以执行一次后保存在参数集合中。 每次执行 SUBPLAN FILTER 时,可以直接从参数集获取右子计划的执行结果。参数 subquery(1) 表示 SUBPLAN FILTER 右边第一个子计划是 onetime expr。 由于示例中的 SQL 查询未设置此项,所以为 nil。 | -| init_plan_idxs_ | 该算子中只需要执行一次的子计划。 与 onetime_exprs_ 的区别是,init_plan_返回多行多列,onetime_expr_ 返回单行单列。 由于示例中的 SQL 查询未设置此项,所以为 nil。 | - - - -SUBPLAN FILTER 算子驱动相关子查询计算的一般执行流程如下: - -1. SUBPLAN FILTER 在启动时会执行 `onetime_exprs_`。 - - - -2. 执行左边的查询,输出一行后,计算相关参数,下推到右边,执行右边的子查询。 - - - -3. 执行 filter,输出符合条件的数据行。 - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/8.DISTINCT-1-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/8.DISTINCT-1-2.md deleted file mode 100644 index 7939f4a18..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/8.DISTINCT-1-2.md +++ /dev/null @@ -1,91 +0,0 @@ -DISTINCT -============================= - -DISTINCT 算子用于为对数据行去重,包括去除重复的 NULL 值。 - -DISTINCT 算子包括 HASH DISTINCT 和 MERGE DISTINCT。 - -HASH DISTINCT ----------------------------------- - -HASH DISTINCT 算子使用 HASH 算法执行 DISTINCT 运算。 - -示例 1:使用 HASH 算法执行 DISTINCT 运算,对 t1 表的 c1 列进行去重处理 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.09 sec) - -obclient>CREATE TABLE t2(c1 INT, c2 INT); -Query OK, 0 rows affected (0.09 sec) - -obclient>EXPLAIN SELECT /*+USE_HASH_AGGREGATION*/ DISTINCT c1 FROM t1\G; -*************************** 1. row *************************** -Query Plan: -|======================================= -|ID|OPERATOR |NAME|EST. ROWS|COST | ---------------------------------------- -|0 |HASH DISTINCT| |101 |99169| -|1 | TABLE SCAN |t1 |100000 |66272| -======================================= -Outputs & filters: -------------------------------------- - 0 - output([t1.c1]), filter(nil), - distinct([t1.c1]) - 1 - output([t1.c1]), filter(nil), - access([t1.c1]), partitions(p0) -``` - - - -上述示例中,执行计划展示中 0 号算子 HASH DISTINCT 执行去重运算,outputs \& filters 详细展示了 HASH DISTINCT 算子的具体输出信息如下: - - -| **信息名称** | **含义** | -|-----------|-------------------------------------------------------------------------------------------------| -| output | 该算子的输出列。 | -| filter | 该算子的过滤谓词。 由于示例中 HASH DISTINCT 算子没有设置 filter,所以为 nil。 | -| partition | 查询需要扫描的分区。 | -| distinct | 指定需要去重的列。 例如,`distinct([t1.c1])` 的参数 `t1.c1` 指定对 t1 表的 c1 列进行去重处理,并且采用 HASH 算法。 | - - - -MERGE DISTINCT ------------------------------------ - -MERGE DISTINCT 算子使用 MERGE 算法执行 DISTINCT 运算。 - -示例 2:使用 MERGE 算法执行 DISTINCT 运算 - -```javascript -obclient>EXPLAIN SELECT /*+NO_USE_HASH_AGGREGATION*/ DISTINCT c1 FROM t1\G; -*************************** 1. row *************************** -Query Plan: -|======================================= -|ID|OPERATOR |NAME|EST. ROWS|COST| ---------------------------------------- -|0 |MERGE DISTINCT| |3 |40 | -|1 | SORT | |3 |39 | -|2 | TABLE SCAN |t1 |3 |37 | -======================================= -Outputs & filters: -------------------------------------- - 0 - output([t1.c1]), filter(nil), - distinct([t1.c1]) - 1 - output([t1.c1]), filter(nil), sort_keys([t1.c1, ASC]) - 2 - output([t1.c1]), filter(nil), - access([t1.c1]), partitions(p0) -``` - - - -上述示例中,0 号算子 MERGE DISTINCT 执行去重运算,采用了 MERGE 算法,并且由于 2 号算子输出的数据是无序的,而 MERGE DISTINCT 算子需要输入的数据有序,所以在执行去重运算前需要使用 SORT 算子对数据排序。执行计划展示中的 outputs \& filters 详细展示了 MERGE DISTINCT 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|--------------------------------------------------------------------------------------------------| -| output | 该算子的输出列。 | -| filter | 该算子的过滤谓词。 由于示例中 MERGE DISTINCT 算子没有设置 filter,所以为 nil。 | -| distinct | 指定需要去重的列。 例如,`distinct([t1.c1])` 的参数 `t1.c1` 指定对 t1 表的 c1 列进行去重处理,并且采用 MERGE 算法。 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/9.SEQUENCE-1-2.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/9.SEQUENCE-1-2.md deleted file mode 100644 index b6223c0c4..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/9.SEQUENCE-1-2.md +++ /dev/null @@ -1,46 +0,0 @@ -SEQUENCE -============================= - -SEQUENCE 算子用于计算伪列 SEQUENCE 的值。 - -伪列 SEQUENCE 是由 `CREATE SEQUENCE` 创建的序列,下层算子每输出一行执行一次计算。 - -示例:计算伪列 SEQUENCE 的当前值与下一个值 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.09 sec) - -obclient>CREATE TABLE t2(c1 INT, c2 INT); -Query OK, 0 rows affected (0.09 sec) - -obclient>CREATE SEQUENCE seq INCREMENT BY 1 START WITH 1; -Query OK, 0 rows affected (0.09 sec) - -obclient>EXPLAIN SELECT seq.NEXTVAL, seq.CURRVAL FROM t1\G; -*************************** 1. row *************************** -Query Plan: -|===================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | -------------------------------------- -|0 |SEQUENCE | |100000 |77868| -|1 | TABLE SCAN|T1 |100000 |64066| -===================================== -Outputs & filters: -------------------------------------- - 0 - output([SEQ.NEXTVAL], [SEQ.CURRVAL]), filter(nil) - 1 - output([T1.__pk_increment]), filter(nil), - access([T1.__pk_increment]), partitions(p0) -``` - - - -上述示例中,执行计划展示中 0 号算子 SEQUENCE 用来计算序列的值,`output([SEQ.NEXTVAL],[SEQ.CURRVAL]` 指定了 SEQUENCE 需要计算序列的当前值与下一个值。t1 表每输出一行数据,SEQUENCE 就会计算一次序列的值。执行计划展示中 outputs \& filters 详细列出了 SEQUENCE 算子的输出信息如下: - - -| **信息名称** | **含义** | -|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| output | 该算子输出的列。 SEQUENCE 算子参数信息如下: * CURRVAl:计算序列的当前值。 * NEXTVAL:计算序列的下一个值。 | -| filter | 该算子上的过滤条件。 由于示例中的 SEQUENCE 算子没有设置 filter,所以为 nil。 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/3.execution-plan-cache-4.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/3.execution-plan-cache-4.md deleted file mode 100644 index eb743dabf..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/3.execution-plan-cache-4.md +++ /dev/null @@ -1,199 +0,0 @@ -执行计划缓存 -=========================== - -执行计划缓存(Plan Cache)用于减少执行计划的生成次数。 - -OceanBase 数据库会缓存之前生成的执行计划,以便在下次执行该 SQL 时直接使用,可以避免反复执行,从而优化执行过程,这种策略被称为"Optimize Once",即"一次优化"。 - -计划缓存是一个典型的 Key-Value 结构,Key 就是参数化后的 SQL 字符串,Value 就是该条 SQL 所对应的执行计划。 - -每个租户在每一台服务器上都有一个独立的计划缓存,用以缓存在此服务器上处理过的 SQL 计划。在 OceanBase 数据库的计划缓存中,SQL 的执行计划可以分为本地计划、远程计划和分布式计划三种类型。在计划缓存中,同一条 SQL 根据其需要访问的数据不同,可能同时具有三种执行计划。 - -对于一条 SQL 的一种执行计划,OceanBase 数据库默认只会保留第一次执行 SQL 时生成的计划;但在某些情况下,同一条 SQL 的参数值可能会影响到执行计划的选择,所以计划缓存会根据需要,为不同的参数值保留不同的执行计划,从而保证每次执行时可以使用最合适的计划。 - -计划缓存的淘汰 ----------------- - -计划缓存的淘汰是指将执行计划从计划缓存中删除,减少计划缓存对内存的使用。OceanBase 数据库支持自动淘汰和手动淘汰两种方式。 - -#### **自动淘汰** - -自动淘汰是指当计划缓存占用的内存达到了需要淘汰计划的内存上限(即淘汰计划的高水位线)时,对计划缓存中的计划执行自动淘汰。 - -* 触发执行计划淘汰的条件 - - 每隔一段时间(具体时间间隔由配置项 `plan_cache_evict_interval` 设置)系统会自动检查不同租户在不同服务器上的计划缓存,并判断是否需要执行计划淘汰。如果某个计划缓存占用的内存超过该租户设置的淘汰计划的高水位线,则会触发计划缓存淘汰。 - - - - - - - -* 执行计划淘汰策略 - - 当触发计划缓存淘汰后,优先淘汰最久没被使用的执行计划,淘汰一部分执行计划后,当计划缓存使用的内存为该租户设置的淘汰计划的低水位线时,停止淘汰。 - - - - - - - -* 与计划缓存淘汰相关配置 - - - - - - - - - - -例如,租户内存大小为 10 G,各参数值设置如下: - -* `ob_plan_cache_percentage`=10 - - - -* `ob_plan_cache_evict_high_percentage`=90 - - - -* `ob_plan_cache_evict_low_percentage`=50 - - - - - - -则计算得出: - -* 计划缓存内存上限绝对值 = 10G \* 10 / 100 = 1 G - - - -* 淘汰计划的高水位线 = 1G \* 90 / 100 = 0.9 G - - - -* 淘汰计划的低水位线 = 1G \* 50 / 100 = 0.5 G - - - - - - -由计算结果可知,当该租户在某个服务器上计划缓存使用超过 0.9 G 时,会触发淘汰,优先淘汰最久没执行的计划,当淘汰到使用内存只有 0.5 G 时,则停止淘汰。 如果淘汰速度没有新计划生成速度快,计划缓存使用内存达到内存上限绝对值 1 G 时,将不在往计划缓存中添加新计划,直到执行淘汰后所占内存小于 1 G 才会添加新计划到计划缓存中。 - -#### **手动淘汰** - -手动淘汰是指强制将计划缓存中计划进行删除。现在支持指定不同租户对应的当前服务器或全部服务器中计划缓存全部删除,具体命令如下: - -```javascript -obclient>ALTER SYSTEM FLUSH PLAN CACHE [tenant_list] [global] -/*其中 tenant_list 的格式为 tenant = 'tenant1, tenant2, tenant3....'*/ -``` - - - -其中 tenant_list 和 global 为可选字段,使用说明如下: - -* 如果没有指定 tenant_list,则清空所有租户的计划缓存。反之,则只清空特定租户的计划缓存。 - - - -* 如果没有指定 global,则清空本机的计划缓存。反之,则清空该租户所在的所有服务器上的计划缓存。 - - - - - - - - -计划缓存的刷新 ----------------- - -计划缓存中执行计划可能因为各种原因而失效,这时需要将计划缓存中失效计划进行刷新,即将该执行计划删除后重新优化生成计划再加入计划缓存。 - -如下场景会导致执行计划失效,需要对执行计划进行刷新: - -* SQL 中涉及表的 Schema 变更时(比如添加索引、删除或增加列等),该 SQL 在计划缓存中所对应的执行计划将被刷新。 - - - - - - - - -* SQL 中涉及重新收集表的统计信息时,该 SQL 在计划缓存中所对应的执行计划会被刷新。由于 OceanBase 数据库在数据合并时会统一进行统计信息的收集,因此在每次进行合并后,计划缓存中所有计划将被刷新。 - - - - - - - - -计划缓存的使用控制 ------------------- - -计划缓存可以使用系统变量及 HINT 实现使用控制。 - -* 系统变量控制 - - 当 `ob_enable_plan_cache` 设置为 TURE 时,表示 SQL 请求可以使用计划缓存;设置为 FALSE 时,表示 SQL 请求不使用计划缓存。默认为 TURE。此系统变量可被设置为 SESSION 级别或者 GLOBAL 级别。 - - -* HINT 控制 - - - - - - - - - - -计划缓存暂不支持的场景 --------------------- - -* 执行计划所占内存超过 20 M 时,不会加入计划缓存。 - - - -* 如果该计划为分布式执行计划且涉及多个表,不会加入计划缓存。 - - - - - - -计划缓存的视图 ----------------- - -执行计划相关视图包括: - -* `(g)v$plan_cache_stat` - - 记录每个计划缓存的状态,每个计划缓存在该视图中有一条记录。 - - -* `(g)v$plan_cache_plan_stat` - - 记录计划缓存中所有执行计划的具体信息及每个计划总的执行统计信息。 - - -* `(g)v$plan_cache_plan_explain` - - 记录某条 SQL 在计划缓存中的执行计划。 - - - - - -有关视图的详细参数信息,请参考 [计划缓存相关视图](../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md)。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/4.fast-parameterization-3.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/4.fast-parameterization-3.md deleted file mode 100644 index 76ab95887..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/4.fast-parameterization-3.md +++ /dev/null @@ -1,212 +0,0 @@ -快速参数化 -========================== - -参数化过程是指把 SQL 查询中的常量变成变量的过程。 - -同一条 SQL 语句在每次执行时可能会使用不同的参数,将这些参数做参数化处理,可以得到与具体参数无关的 SQL 字符串,并使用该字符串作为计划缓存的键值,用于在计划缓存中获取执行计划,从而达到参数不同的 SQL 能够共用相同的计划目的。 - -由于传统数据库在进行参数化时一般是对语法树进行参数化,然后使用参数化后的语法树作为键值在计划缓存中获取计划,而 OceanBase 数据库使用的词法分析对文本串直接参数化后作为计划缓存的键值,因此叫做快速参数化。 - -OceanBase 数据库支持自适应计划共享(Adaptive Cursor Sharing)功能以支持不同参数条件下的计划选择。 - -基于快速参数化而获取执行计划的流程如下图所示: - -![快速参数化](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/4447194061/p179646.jpg) - -**示例解析** - -```javascript -obclient>SELECT * FROM T1 WHERE c1 = 5 AND c2 ='oceanbase'; -``` - - - -上述示例中的 SQL 查询参数化后结果如下所示,常量 5 和 oceanbase 被参数化后变成了变量 @1 和 @2: - -```javascript -obclient>SELECT * FROM T1 WHERE c1 = @1 AND c2 = @2; -``` - - - -但在计划匹配中,不是所有常量都可以被参数化,例如 ORDER BY 后面的常量,表示按照 SELECT 投影列中第几列进行排序,所以不可以被参数化。 - -如下例所示,表 t1 中含 c1、c2 列,其中 c1 为主键列,SQL 查询的结果按照 c1 列进行排序,由于 c1 作为主键列是有序的,所以使用主键访问可以免去排序。 - -```javascript -obclient>CREATE TABLE t1(c1 INT PRIMARY KEY,c2 INT); -Query OK, 0 rows affected (0.06 sec) - -obclient>INSERT INTO t1 VALUES (1,2); -Query OK, 1 row affected (0.01 sec) - -obclient>INSERT INTO t1 VALUES (2,1); -Query OK, 1 row affected (0.01 sec) - -obclient>INSERT INTO t1 VALUES (3,1); -Query OK, 1 row affected (0.01 sec) - -obclient>SELECT c1, c2 FROM t1 ORDER BY 1; - -+----+------+ -| C1 | C2 | -+----+------+ -| 1 | 2 | -| 2 | 1 | -| 3 | 1 | -+----+------+ -3 rows in set (0.00 sec) - -obclient>EXPLAIN SELECT c1, c2 FROM t1 ORDER BY 1\G; -*************************** 1. row *************************** -Query Plan: -| =================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------ -|0 |TABLE SCAN|t1 |1000 |1381| -=================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) -``` - - - -但如果执行如下命令: - -```javascript -obclient>SELECT c1, c2 FROM t1 ORDER BY 2; - -+----+------+ -| C1 | C2 | -+----+------+ -| 2 | 1 | -| 3 | 1 | -| 1 | 2 | -+----+------+ -3 rows in set (0.00 sec) -``` - - - -则结果需要对 c2 排序,因此需要执行显示的排序操作,执行计划如下例所示: - -```javascript -obclient>EXPLAIN SELECT c1, c2 FROM t1 ORDER BY 2\G; -*************************** 1. row *************************** -Query Plan: -| ==================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------- -|0 |SORT | |1000 |1886| -|1 | TABLE SCAN|t1 |1000 |1381| -==================================== -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2]), filter(nil), sort_keys([T1.C2, ASC]) - 1 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) -``` - - - -因此,如果将 ORDER BY 后面的常量参数化,不同 ORDER BY 的值具有相同的参数化后的 SQL,从而导致命中错误的计划。除此之外,如下场景中的常量均不能参数化(即参数化的约束条件): - -* 所有 ORDER BY 后常量(例如 `ORDER BY 1,2;`) - - - -* 所有 GROUP BY 后常量(例如 `GROUP BY 1,2;`) - - - -* LIMIT 后常量(例如 `LIMIT 5;`) - - - -* 作为格式串的字符串常量(例如 `SELECT DATE_FORMAT('2006-06-00', '%d');` 里面的` %d`) - - - -* 函数输入参数中,影响函数结果并最终影响执行计划的常量(例如 `CAST(999.88 as NUMBER(2,1)) `中的 `NUMBER(2,1)`,或者 `SUBSTR('abcd', 1, 2) `中的 1 和 2) - - - -* 函数输入参数中,带有隐含信息并最终影响执行计划的常量(例如 `SELECT UNIX_TIMESTAMP('2015-11-13 10:20:19.012');` 里面的"2015-11-13 10:20:19.012",指定输入时间戳的同时,隐含指定了函数处理的精度值为毫秒) - - - - - - -为了解决上面这种可能存在的误匹配问题,在硬解析生成执行计划过程中会对 SQL 请求使用分析语法树的方法进行参数化,并获取相应的不一致的信息。例如,某语句对应的信息是"快速参数化参数数组的第 3 项必须为数字 3",可将其称为"约束条件"。 - -对于下例所示的 Q1 查询: - -```javascript -Q1: -obclient>SELECT c1, c2, c3 FROM t1 - WHERE c1 = 1 AND c2 LIKE 'senior%' ORDER BY 3; -``` - - - -经过词法分析,可以得到参数化后的 SQL 语句如下例所示: - -```javascript -obclient>SELECT c1, c2, c3 FROM t1 - WHERE c1 = @1 AND c2 LIKE @2 ORDER BY @3 ; -/*参数化数组为 {1,'senior%' ,3}*/ -``` - - - -当 ORDER BY 后面的常量不同时,不能共用相同的执行计划,因此在通过分析语法树进行参数化时会获得另一种参数化结果,如下例所示: - -```javascript -obclient>SELECT c1, c2, c3 FROM t1 - WHERE c1 = @1 AND c2 LIKE @2 ORDER BY 3 ; - -/*参数化数组为{1, 'senior'} -约束条件为"快速参数化参数数组的第 3 项必须为数字 3"*/ -``` - - - -Q1 请求新生成的参数化后的文本及约束条件和执行计划均会存入计划缓存中。 - -当用户再次发出如下 Q2 请求命令: - -```javascript -Q2: -obclient>SELECT c1, c2, c3 FROM t1 - WHERE c1 = 1 AND c2 LIKE 'senior%' ORDER BY 2; -``` - - - -经过快速参数化后结果如下例所示: - -```javascript -obclient>SELECT c1, c2, c3 FROM t1 - WHERE c1 = @1 and c2 like @2 ORDER BY @3; -/*参数化数组为 {1,'senior%' ,2}*/ -``` - - - -这与 Q1 请求快速参数化后 SQL 结果一样,但由于不满足"快速参数化参数数组的第 3 项必须为数字 3"这个约束条件,无法匹配该计划。此时 Q2 会通过硬解析生成新的执行计划及约束条件(即"快速参数化参数数组的第 3 项必须为数字 2"),并将新的计划和约束条件加入到缓存中,这样在下次执行 Q1 和 Q2 时均可命中对应正确的执行计划。 - -基于快速参数化的执行计划缓存优点如下: - -* 节省了语法分析过程。 - - - -* 查找 HASH MAP 时,可以将对参数化后语法树的 HASH 和比较操作,替换为对文本串进行 HASH 和 MEMCMP 操作,以提高执行效率。 - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/5.real-time-execution-plan-display-3.md b/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/5.real-time-execution-plan-display-3.md deleted file mode 100644 index b8cb81d05..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/2.sql-execution-plan-3/5.real-time-execution-plan-display-3.md +++ /dev/null @@ -1,109 +0,0 @@ -实时执行计划展示 -============================= - - - -使用 EXPLAIN 命令可以展示出当前优化器所生成的执行计划,但由于统计信息变化、用户 session 变量设置变化等,会造成该 SQL 在计划缓存中实际对应的计划可能与 EXPLAIN 的结果并不相同。为了确定该 SQL 在系统中实际使用的执行计划,需要进一步分析计划缓存中的物理执行计划。 - -用户可以通过查询 `(g)v$plan_cache_plan_explain` 视图来展示某条 SQL 在计划缓存中的执行计划。 - -如下例所示: - -```sql -obclient>VIEW_DEFINITION='SELECT * -FROM oceanbase.gv$plan_cache_plan_explain -WHERE IP =host_ip() AND PORT = rpc_port()' -``` - - - -参数解释如下表: - - -| **字段名称** | **类型** | **描述** | -|-----------|--------------|-----------------| -| TENANT_ID | bigint(20) | 租户 ID | -| IP | varchar(32) | IP 地址 | -| PORT | bigint(20) | 端口号 | -| PLAN_ID | bigint(20) | 执行计划的 ID | -| OPERATOR | varchar(128) | operator 的名称 | -| NAME | varchar(128) | 表的名称 | -| ROWS | bigint(20) | 预估的结果行数 | -| COST | bigint(20) | 预估的代价 | -| PROPERTY | varchar(256) | 对应 operator 的信息 | - - - - - -第一步 查询 SQL 在计划缓存中的 plan_id ------------------------------------ - -OceanBase 数据库每个服务器的计划缓存都是独立的。用户可以直接访问 `v$plan_cache_plan_stat` 视图查询本服务器上的计划缓存并提供 tenant_id 和需要查询的 SQL 字符串(可以使用模糊匹配),查询该条 SQL 在计划缓存中对应的 plan_id。 - -```javascript -obclient>SELECT * FROM v$plan_cache_plan_stat WHERE tenant_id= 1001 - AND STATEMENT LIKE 'INSERT INTO T1 VALUES%'\G - -***************************1. row *************************** - tenant_id: 1001 - svr_ip:100.81.152.44 - svr_port:15212 - plan_id: 7 - sql_id:0 - type: 1 - statement: insert into t1 values(1) - plan_hash:1 -last_active_time:2016-05-28 19:08:57.416670 - avg_exe_usec:0 -slowest_exe_time:1970-01-01 08:00:00.000000 -slowest_exe_usec:0 - slow_count:0 - hit_count:0 - mem_used:8192 -1 rowin set (0.01 sec) -``` - - - - - -第二步 使用 plan_id 展示对应执行计划 --------------------------------- - -获得 plan_id 后,用户可以使用 tenant_id 和 plan_id 访问 `v$plan_cache_plan_explain` 来展示该执行计划。 -**注意** - - - -这里展示的计划为物理执行计划,在算子命名上会与 EXPLAIN 所展示的逻辑执行计划有所不同。 - -```sql -obclient>SELECT * FROM v$plan_cache_plan_explain - WHERE tenant_id = 1001 AND plan_id = 7; - -+-----------+---------------+-------+---------+--------------------+------+------+------+ -| TENANT_ID | IP | PORT | PLAN_ID | OPERATOR | NAME | ROWS | COST | -+-----------+---------------+-------+---------+--------------------+------+------+------+ -| 1001 | 100.81.152.44 | 15212 | 7 | PHY_ROOT_TRANSMIT | NULL | 0 | 0 | -| 1001 | 100.81.152.44 | 15212 | 7 | PHY_INSERT | NULL | 0 | 0 | -| 1001 | 100.81.152.44 | 15212 | 7 | PHY_EXPR_VALUES | NULL | 0 | 0 | -+-----------+---------------+-------+---------+--------------------+------+------+------+ -3 rows in set (0.01 sec) -``` - - -**注意** - - - -* 如果访问 `gv$plan_cache_plan_explain`,必须给定 IP、port、tenant_id 和 plan_id 这四列的值。 - - - -* 如果访问 `v$plan_cache_plan_explain`,必须给定 tenant_id 和 plan_id 的值,否则系统将返回空集。 - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/1.distributed-execution-and-parallel-query-3.md b/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/1.distributed-execution-and-parallel-query-3.md deleted file mode 100644 index ac4a639c5..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/1.distributed-execution-and-parallel-query-3.md +++ /dev/null @@ -1,47 +0,0 @@ -分布式执行和并行查询 -=============================== - -本章节介绍分布式执行和并行查询。 - -分布式执行 --------------------------- - -对于 Shared-Nothing 的分布式系统,由于一个关系数据表的数据会以分区的方式存放在系统里面的各个节点上,所以对于跨分区的数据查询请求,必然会要求执行计划能够对多个节点的数据进行操作,因而 OceanBase 数据库具有分布式执行计划生成和执行能力。 - -对于分布式执行计划,分区可以提高查询性能。如果数据库关系表比较小,则不必要进行分区,如果关系表比较大,则需要根据上层业务需求谨慎选择分区键,以保证大多数查询能够使用分区键进行分区裁剪,从而减少数据访问量。 - -同时,对于有关联性的表,建议使用关联键作为分区键,并采用相同分区方式,使用 Table Group 将相同的分区配置在同样的节点上,以减少跨节点的数据交互。 - -OceanBase 数据库的优化器会自动根据查询和数据的物理分布生成分布式执行计划。 - -并行查询 -------------------------- - -并行查询是指通过对查询计划的改造,提升对每一个查询计划的 CPU 和 IO 处理能力,从而缩短单个查询的响应时间。并行查询技术可以用于分布式执行计划,也可以用于本地查询计划。 - -当单个查询的访问数据不在同一个节点上时,需要通过数据重分布的方式,将相关的数据分布到相同的节点进行计算。以每一次的数据重分布节点为上下界,OceanBase 数据库的执行计划在垂直方向上被划分为多个 DFO(Data Flow Object),而每一个 DFO 可以被切分为指定并行度的任务,通过并发执行以提高执行效率。 - -一般来说,当并行度提高时,查询的响应时间会缩短,更多的 CPU、IO 和内存资源会被用于执行查询命令。对于支持大数据量查询处理的 DSS(Decision Support Systems)系统或者数据仓库型应用来说,查询时间的提升尤为明显。 - -整体来说,并行查询的总体思路和分布式执行计划有相似之处,即将执行计划分解之后,将执行计划的每个部分由多个执行线程执行,通过一定的调度的方式,实现执行计划的 DFO 之间的并发执行和 DFO 内部的并发执行。并行查询特别适用于在线交易(OLTP)场景的批量更新操作、创建索引和维护索引等操作。 - -当系统满足以下条件时,并行查询可以有效提升系统处理性能: - -* 充足的 IO 带宽 - - - -* 系统 CPU 负载较低 - - - -* 充足的内存资源 - - - - - - -如果系统没有充足的资源进行额外的并行处理,使用并行查询或者提高并行度并不能提高执行性能。相反,在系统过载的情况下,操作系统会被迫进行更多的调度,例如,执行上下文切换或者页面交换,可能会导致性能的下降。 - -通常在 DSS 系统中,需要访问大量分区和数据仓库环境,这时并行执行能够提升执行响应时间。对于简单的 DML 操作或者分区内查询以及涉及分区数比较小的查询来说,使用并行查询并不能很明显的降低查询响应时间。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/2.generation-of-distributed-plans-3.md b/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/2.generation-of-distributed-plans-3.md deleted file mode 100644 index ad2b4b08c..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/2.generation-of-distributed-plans-3.md +++ /dev/null @@ -1,294 +0,0 @@ -分布式计划的生成 -============================= - - - -OceanBase 数据库的优化器会分为以下两大阶段来生成分布式的执行计划。 - -1. 第一阶段:不考虑数据的物理分布,生成所有基于本地关系优化的最优执行计划。在本地计划生成后,优化器会检查数据是否访问了多个分区,或者是否访问的是本地单分区表但是用户使用 HINT 强制采用了并行查询执行。 - -2. 第二阶段:生成分布式计划。根据执行计划树,在需要进行数据重分布的地方,插入 EXCHANGE 节点,从而将原先的本地计划树变成分布式执行计划。 - -分布式执行计划的算子 -------------------------------- - -生成分布式计划的过程就是在原始计划树上寻找恰当位置插入 EXCHANGE 算子的过程,在自顶向下遍历计划树的时候,需要根据相应算子的数据处理情况以及输入算子的数据分区情况,来决定是否需要插入 EXCHANGE 算子。 - -如下示例为最简单的单表扫描: - -```sql -obclient>CREATE TABLE t1 (v1 INT, v2 INT) PARTITION BY HASH(v1) PARTITIONS 5; -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT * FROM t1\G; -*************************** 1. row *************************** -Query Plan: -============================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | ------------------------------------------------------- -|0 |PX COORDINATOR | |500000 |545109| -|1 | EXCHANGE OUT DISTR |:EX10000|500000 |320292| -|2 | PX PARTITION ITERATOR| |500000 |320292| -|3 | TABLE SCAN |T1 |500000 |320292| -====================================================== - -Outputs & filters: -------------------------------------- - 0 - output([T1.V1], [T1.V2]), filter(nil) - 1 - output([T1.V1], [T1.V2]), filter(nil), dop=1 - 2 - output([T1.V1], [T1.V2]), filter(nil) - 3 - output([T1.V1], [T1.V2]), filter(nil), - access([T1.V1], [T1.V2]), partitions(p[0-4]) -``` - - - -当 t1 是一个分区表,可以在 TABLE SCAN 上插入配对的 EXCHANGE 算子,从而将 TABLE SCAN 和 EXCHANGE OUT 封装成一个 job,可以用于并行的执行。 - -**单输入可下压算子** - -单输入可下压算子主要包括 AGGREGATION、SORT、GROUP BY 和 LIMIT 算子等,除了 LIMIT 算子以外,其余所列举的算子都会有一个操作的键,如果操作的键和输入数据的数据分布是一致的,则可以做一阶段聚合操作,也即 Partition Wise Aggregation。如果操作的键和输入数据的数据分布是不一致的,则需要做两阶段聚合操作,聚合算子需要做下压操作。 - -一阶段聚合操作如下例所示: - -```sql -obclient>CREATE TABLE t2 (v1 INT, v2 INT) PARTITION BY HASH(v1) PARTITIONS 4; -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT SUM(v1) FROM t2 GROUP BY v1\G; -*************************** 1. row *************************** -Query Plan: -| ====================================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | ------------------------------------------------------- -|0 |PX COORDINATOR | |101 |357302| -|1 | EXCHANGE OUT DISTR |:EX10000|101 |357297| -|2 | PX PARTITION ITERATOR| |101 |357297| -|3 | MERGE GROUP BY | |101 |357297| -|4 | TABLE SCAN |t2 |400000 |247403| -====================================================== - -Outputs & filters: -------------------------------------- - 0 - output([T_FUN_SUM(t2.v1)]), filter(nil) - 1 - output([T_FUN_SUM(t2.v1)]), filter(nil), dop=1 - 2 - output([T_FUN_SUM(t2.v1)]), filter(nil) - 3 - output([T_FUN_SUM(t2.v1)]), filter(nil), - group([t2.v1]), agg_func([T_FUN_SUM(t2.v1)]) - 4 - output([t2.v1]), filter(nil), - access([t2.v1]), partitions(p[0-3]) -``` - - - -二阶段聚合操作如下例所示: - -```sql -| ============================================================ -|ID|OPERATOR |NAME |EST. ROWS|COST | ------------------------------------------------------------- -|0 |PX COORDINATOR | |101 |561383| -|1 | EXCHANGE OUT DISTR |:EX10001|101 |561374| -|2 | HASH GROUP BY | |101 |561374| -|3 | EXCHANGE IN DISTR | |101 |408805| -|4 | EXCHANGE OUT DISTR (HASH)|:EX10000|101 |408795| -|5 | HASH GROUP BY | |101 |408795| -|6 | PX PARTITION ITERATOR | |400000 |256226| -|7 | TABLE SCAN |t2 |400000 |256226| -============================================================ - -Outputs & filters: -------------------------------------- - 0 - output([T_FUN_SUM(T_FUN_SUM(t2.v1))]), filter(nil) - 1 - output([T_FUN_SUM(T_FUN_SUM(t2.v1))]), filter(nil), dop=1 - 2 - output([T_FUN_SUM(T_FUN_SUM(t2.v1))]), filter(nil), - group([t2.v2]), agg_func([T_FUN_SUM(T_FUN_SUM(t2.v1))]) - 3 - output([t2.v2], [T_FUN_SUM(t2.v1)]), filter(nil) - 4 - (#keys=1, [t2.v2]), output([t2.v2], [T_FUN_SUM(t2.v1)]), filter(nil), dop=1 - 5 - output([t2.v2], [T_FUN_SUM(t2.v1)]), filter(nil), - group([t2.v2]), agg_func([T_FUN_SUM(t2.v1)]) - 6 - output([t2.v1], [t2.v2]), filter(nil) - 7 - output([t2.v1], [t2.v2]), filter(nil), - access([t2.v1], [t2.v2]), partitions(p[0-3]) -``` - - - -**二元输入算子** - -二元输入算子主要考虑 JOIN 算子的情况。对于 JOIN 算子来说,主要基于规则来生成分布式执行计划和选择数据重分布方法。JOIN 算子主要有以下三种联接方式: - -* Partition-Wise Join - - 当左右表都是分区表且分区方式相同,物理分布一样,并且 JOIN 的联接条件为分区键时,可以使用以分区为单位的联接方法。如下例所示: - - ```javascript - obclient>CREATE TABLE t3 (v1 INT, v2 INT) PARTITION BY HASH(v1) PARTITIONS 4; - Query OK, 0 rows affected (0.12 sec) - - obclient>EXPLAIN SELECT * FROM t2, t3 WHERE t2.v1 = t3.v1\G; - *************************** 1. row *************************** - Query Plan: - =========================================================== - |ID|OPERATOR |NAME |EST. ROWS |COST | - |0 |PX COORDINATOR | |1568160000|1227554264| - |1 | EXCHANGE OUT DISTR |:EX10000|1568160000|930670004 | - |2 | PX PARTITION ITERATOR| |1568160000|930670004 | - |3 | MERGE JOIN | |1568160000|930670004 | - |4 | TABLE SCAN |t2 |400000 |256226 | - |5 | TABLE SCAN |t3 |400000 |256226 | - =========================================================== - - Outputs & filters: - ------------------------------------- - 0 - output([t2.v1], [t2.v2], [t3.v1], [t3.v2]), filter(nil) - 1 - output([t2.v1], [t2.v2], [t3.v1], [t3.v2]), filter(nil), dop=1 - 2 - output([t2.v1], [t2.v2], [t3.v1], [t3.v2]), filter(nil) - 3 - output([t2.v1], [t2.v2], [t3.v1], [t3.v2]), filter(nil), - equal_conds([t2.v1 = t3.v1]), other_conds(nil) - 4 - output([t2.v1], [t2.v2]), filter(nil), - access([t2.v1], [t2.v2]), partitions(p[0-3]) - 5 - output([t3.v1], [t3.v2]), filter(nil), - access([t3.v1], [t3.v2]), partitions(p[0-3]) - ``` - - - - - - - - -* Partial Partition-Wise Join - - 当左右表中一个表为分区表,另一个表为非分区表,或者两者皆为分区表但是联接键仅和其中一个分区表的分区键相同的情况下,会以该分区表的分区分布为基准,重新分布另一个表的数据。如下例所示: - - ```sql - obclient>CREATE TABLE t4 (v1 INT, v2 INT) PARTITION BY HASH(v1) PARTITIONS 3; - Query OK, 0 rows affected (0.12 sec) - - obclient>EXPLAIN SELECT * FROM t4, t2 WHERE t2.v1 = t4.v1\G; - *************************** 1. row *************************** - Query Plan: - =========================================================== - |ID|OPERATOR |NAME |EST. ROWS|COST | - ----------------------------------------------------------- - |0 |PX COORDINATOR | |11880 |17658| - |1 | EXCHANGE OUT DISTR |:EX10001|11880 |15409| - |2 | NESTED-LOOP JOIN | |11880 |15409| - |3 | EXCHANGE IN DISTR | |3 |37 | - |4 | EXCHANGE OUT DISTR (PKEY)|:EX10000|3 |37 | - |5 | PX PARTITION ITERATOR | |3 |37 | - |6 | TABLE SCAN |t4 |3 |37 | - |7 | PX PARTITION ITERATOR | |3960 |2561 | - |8 | TABLE SCAN |t2 |3960 |2561 | - =========================================================== - - Outputs & filters: - ------------------------------------- - 0 - output([t4.v1], [t4.v2], [t2.v1], [t2.v2]), filter(nil) - 1 - output([t4.v1], [t4.v2], [t2.v1], [t2.v2]), filter(nil), dop=1 - 2 - output([t4.v1], [t4.v2], [t2.v1], [t2.v2]), filter(nil), - conds(nil), nl_params_([t4.v1]) - 3 - output([t4.v1], [t4.v2]), filter(nil) - 4 - (#keys=1, [t4.v1]), output([t4.v1], [t4.v2]), filter(nil), dop=1 - 5 - output([t4.v1], [t4.v2]), filter(nil) - 6 - output([t4.v1], [t4.v2]), filter(nil), - access([t4.v1], [t4.v2]), partitions(p[0-2]) - 7 - output([t2.v1], [t2.v2]), filter(nil) - 8 - output([t2.v1], [t2.v2]), filter(nil), - access([t2.v1], [t2.v2]), partitions(p[0-3]) - ``` - - - - - - - - -* 数据重分布 - - 当联接键和左右表的分区键都没有关系的情况下,可以根据规则计算来选择使用 BROADCAST 还是 HASH HASH 的数据重分布方式,如下例所示: - **注意** - - - - 只有在并行度大于 1 时, 以下示例中两种数据重分发方式才有可能被选中。 - - ```sql - obclient>EXPLAIN SELECT /*+ PARALLEL(2)*/* FROM t4, t2 WHERE t2.v2 = t4.v2\G; - *************************** 1. row *************************** - Query Plan: - ================================================================= - |ID|OPERATOR |NAME |EST. ROWS|COST | - ----------------------------------------------------------------- - |0 |PX COORDINATOR | |11880 |396863| - |1 | EXCHANGE OUT DISTR |:EX10001|11880 |394614| - |2 | HASH JOIN | |11880 |394614| - |3 | EXCHANGE IN DISTR | |3 |37 | - |4 | EXCHANGE OUT DISTR (BROADCAST)|:EX10000|3 |37 | - |5 | PX BLOCK ITERATOR | |3 |37 | - |6 | TABLE SCAN |t4 |3 |37 | - |7 | PX PARTITION ITERATOR | |400000 |256226| - |8 | TABLE SCAN |t2 |400000 |256226| - ================================================================= - - Outputs & filters: - ------------------------------------- - 0 - output([t4.v1], [t4.v2], [t2.v1], [t2.v2]), filter(nil) - 1 - output([t4.v1], [t4.v2], [t2.v1], [t2.v2]), filter(nil), dop=2 - 2 - output([t4.v1], [t4.v2], [t2.v1], [t2.v2]), filter(nil), - equal_conds([t2.v2 = t4.v2]), other_conds(nil) - 3 - output([t4.v1], [t4.v2]), filter(nil) - 4 - output([t4.v1], [t4.v2]), filter(nil), dop=2 - 5 - output([t4.v1], [t4.v2]), filter(nil) - 6 - output([t4.v1], [t4.v2]), filter(nil), - access([t4.v1], [t4.v2]), partitions(p[0-2]) - 7 - output([t2.v1], [t2.v2]), filter(nil) - 8 - output([t2.v1], [t2.v2]), filter(nil), - access([t2.v1], [t2.v2]), partitions(p[0-3]) - - - obclient>EXPLAIN SELECT /*+ PQ_DISTRIBUTE(t2 HASH HASH) PARALLEL(2)*/* FROM t4, t2 - WHERE t2.v2 = t4.v2\G; - *************************** 1. row *************************** - Query Plan: - ============================================================ - |ID|OPERATOR |NAME |EST. ROWS|COST | - ------------------------------------------------------------ - |0 |PX COORDINATOR | |11880 |434727| - |1 | EXCHANGE OUT DISTR |:EX10002|11880 |432478| - |2 | HASH JOIN | |11880 |432478| - |3 | EXCHANGE IN DISTR | |3 |37 | - |4 | EXCHANGE OUT DISTR (HASH)|:EX10000|3 |37 | - |5 | PX BLOCK ITERATOR | |3 |37 | - |6 | TABLE SCAN |t4 |3 |37 | - |7 | EXCHANGE IN DISTR | |400000 |294090| - |8 | EXCHANGE OUT DISTR (HASH)|:EX10001|400000 |256226| - |9 | PX PARTITION ITERATOR | |400000 |256226| - |10| TABLE SCAN |t2 |400000 |256226| - ============================================================ - - Outputs & filters: - ------------------------------------- - 0 - output([t4.v1], [t4.v2], [t2.v1], [t2.v2]), filter(nil) - 1 - output([t4.v1], [t4.v2], [t2.v1], [t2.v2]), filter(nil), dop=2 - 2 - output([t4.v1], [t4.v2], [t2.v1], [t2.v2]), filter(nil), - equal_conds([t2.v2 = t4.v2]), other_conds(nil) - 3 - output([t4.v1], [t4.v2]), filter(nil) - 4 - (#keys=1, [t4.v2]), output([t4.v1], [t4.v2]), filter(nil), dop=2 - 5 - output([t4.v1], [t4.v2]), filter(nil) - 6 - output([t4.v1], [t4.v2]), filter(nil), - access([t4.v1], [t4.v2]), partitions(p[0-2]) - 7 - output([t2.v1], [t2.v2]), filter(nil) - 8 - (#keys=1, [t2.v2]), output([t2.v1], [t2.v2]), filter(nil), dop=2 - 9 - output([t2.v1], [t2.v2]), filter(nil) - 10 - output([t2.v1], [t2.v2]), filter(nil), - access([t2.v1], [t2.v2]), partitions(p[0-3]) - ``` - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/3.distributed-execution-plan-scheduling-3.md b/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/3.distributed-execution-plan-scheduling-3.md deleted file mode 100644 index 1ce5539e1..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/3.distributed-execution-plan-scheduling-3.md +++ /dev/null @@ -1,89 +0,0 @@ -分布式执行计划调度 -============================== - - - -分布式执行计划的简单调度模型如下: - -在执行计划生成的最后阶段,以 EXCHANGE 节点为界,拆分成多个子计划,每个子计划被封装成为一个 DFO,在并行度大于 1 的场景下,会一次调度两个 DFO,依次完成 DFO 树的遍历执行;在并行度等于 1 的场景下,每个 DFO 会将产生的数据存入中间结果管理器,按照后序遍历的形式完成整个 DFO 树的遍历执行。 - -单 DFO 调度 ------------------------------ - -示例:在并行度为 1 的场景下,对于查询计划执行单 DFO 调度。 - -```sql -====================================================================================== -|ID|OPERATOR |NAME |EST. ROWS |COST | --------------------------------------------------------------------------------------- -|0 |LIMIT | |10 |6956829987| -|1 | PX COORDINATOR MERGE SORT | |10 |6956829985| -|2 | EXCHANGE OUT DISTR |:EX10002 |10 |6956829976| -|3 | LIMIT | |10 |6956829976| -|4 | TOP-N SORT | |10 |6956829975| -|5 | HASH GROUP BY | |454381562 |5815592885| -|6 | HASH JOIN | |500918979 |5299414557| -|7 | EXCHANGE IN DISTR | |225943610 |2081426759| -|8 | EXCHANGE OUT DISTR (PKEY) |:EX10001 |225943610 |1958446695| -|9 | MATERIAL | |225943610 |1958446695| -|10| HASH JOIN | |225943610 |1480989849| -|11| JOIN FILTER CREATE | |30142669 |122441311 | -|12| PX PARTITION ITERATOR | |30142669 |122441311 | -|13| TABLE SCAN |CUSTOMER |30142669 |122441311 | -|14| EXCHANGE IN DISTR | |731011898 |900388059 | -|15| EXCHANGE OUT DISTR (PKEY)|:EX10000 |731011898 |614947815 | -|16| JOIN FILTER USE | |731011898 |614947815 | -|17| PX BLOCK ITERATOR | |731011898 |614947815 | -|18| TABLE SCAN |ORDERS |731011898 |614947815 | -|19| PX PARTITION ITERATOR | |3243094528|1040696710| -|20| TABLE SCAN |LINEITEM(I_L_Q06_001)|3243094528|1040696710| -====================================================================================== -``` - - - -如下图所示,DFO 树除 ROOT DFO 外,在垂直方向上被分别划分为 0、1、2 号 DFO, 从而后序遍历调度的顺序为 0-\>1-\>2,即可完成整个计划树的迭代。 - -![1](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/4765994061/p179917.jpg) - -两 DFO 调度 ------------------------------ - -示例:对于并行度大于 1 的计划, 对于查询计划执行两 DFO 调度。 - -```javascript -Query Plan -============================================================================= -|ID|OPERATOR |NAME |EST. ROWS|COST | ------------------------------------------------------------------------------ -|0 |PX COORDINATOR MERGE SORT | |9873917 |692436562| -|1 | EXCHANGE OUT DISTR |:EX10002|9873917 |689632565| -|2 | SORT | |9873917 |689632565| -|3 | SUBPLAN SCAN |VIEW5 |9873917 |636493382| -|4 | WINDOW FUNCTION | |29621749 |629924873| -|5 | HASH GROUP BY | |29621749 |624266752| -|6 | HASH JOIN | |31521003 |591048941| -|7 | JOIN FILTER CREATE | |407573 |7476793 | -|8 | EXCHANGE IN DISTR | |407573 |7476793 | -|9 | EXCHANGE OUT DISTR (BROADCAST) |:EX10001|407573 |7303180 | -|10| HASH JOIN | |407573 |7303180 | -|11| JOIN FILTER CREATE | |1 |53 | -|12| EXCHANGE IN DISTR | |1 |53 | -|13| EXCHANGE OUT DISTR (BROADCAST)|:EX10000|1 |53 | -|14| PX BLOCK ITERATOR | |1 |53 | -|15| TABLE SCAN |NATION |1 |53 | -|16| JOIN FILTER USE | |10189312 |3417602 | -|17| PX BLOCK ITERATOR | |10189312 |3417602 | -|18| TABLE SCAN |SUPPLIER|10189312 |3417602 | -|19| JOIN FILTER USE | |803481600|276540086| -|20| PX PARTITION ITERATOR | |803481600|276540086| -|21| TABLE SCAN |PARTSUPP|803481600|276540086| -============================================================================= -``` - - - -如下图所示,DFO 树除 ROOT DFO 外,被划分为 3 个 DFO,调度时会先调 0 和 1 对应的 DFO,待 0 号 DFO 执行完毕后,会再调度 1 号和 2 号 DFO,依次迭代完成执行。 - -![2](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/4765994061/p179918.jpg) - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/4.distributed-execution-plan-management-2.md b/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/4.distributed-execution-plan-management-2.md deleted file mode 100644 index 627f48719..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/4.distributed-execution-plan-management-2.md +++ /dev/null @@ -1,238 +0,0 @@ -分布式执行计划管理 -============================== - -分布式执行计划可以使用 HINT 管理,以提高 SQL 查询性能。 - -分布式执行框架支持的 HINT 包括 ORDERED、LEADING、USE_NL、USE_HASH 和 USE_MERGE 等。 - -NO_USE_PX ------------------------------- - -如果某个 query 确定不希望走并行执行框架,使用 NO_USE_PX 拉回数据并生成本地执行计划。 - -PARALLEL ------------------------------ - -指定分布式执行的并行度。启用 3 个 worker 并行执行扫描,如下例所示: - -```sql -obclient>SELECT /*+ PARALLEL(3) */ MAX(L_QUANTITY) FROM table_name; -``` - - -**注意** - - - -在复杂查询中,调度器可以调度 2 个 DFO 并行流水执行,此时,启用的 worker 数量为并行度的2倍,即 PARALLEL \* 2。 - -ORDERED ----------------------------- - -ORDERED HINT 指定并行查询计划中 JOIN 的顺序,严格按照 FROM 语句中的顺序生成。 - -如下例所示,强制要求 CUSTOMER 为左表,ORDERS 为右表,并且使用 NESTED LOOP JOIN: - -```javascript -obclient>CREATE TABLE lineitem( - l_orderkey NUMBER(20) NOT NULL , - - l_linenumber NUMBER(20) NOT NULL , - l_quantity NUMBER(20) NOT NULL , - l_extendedprice DECIMAL(10,2) NOT NULL , - l_discount DECIMAL(10,2) NOT NULL , - l_tax DECIMAL(10,2) NOT NULL , - - l_shipdate DATE NOT NULL, - - PRIMARY KEY(L_ORDERKEY, L_LINENUMBER)); -Query OK, 1 row affected (0.00 sec) - -obclient>CREATE TABLE customer( - c_custkey NUMBER(20) NOT NULL , - c_name VARCHAR(25) DEFAULT NULL, - c_address VARCHAR(40) DEFAULT NULL, - c_nationkey NUMBER(20) DEFAULT NULL, - c_phone CHAR(15) DEFAULT NULL, - c_acctbal DECIMAL(10,2) DEFAULT NULL, - c_mktsegment CHAR(10) DEFAULT NULL, - c_comment VARCHAR(117) DEFAULT NULL, - PRIMARY KEY(c_custkey)); -Query OK, 1 row affected (0.00 sec) - -obclient>CREATE TABLE orders( - o_orderkey NUMBER(20) NOT NULL , - o_custkey NUMBER(20) NOT NULL , - o_orderstatus CHAR(1) DEFAULT NULL, - o_totalprice DECIMAL(10,2) DEFAULT NULL, - o_orderdate DATE NOT NULL, - o_orderpriority CHAR(15) DEFAULT NULL, - o_clerk CHAR(15) DEFAULT NULL, - o_shippriority NUMBER(20) DEFAULT NULL, - o_comment VARCHAR(79) DEFAULT NULL, - PRIMARY KEY(o_orderkey,o_orderdate,o_custkey)); -Query OK, 1 row affected (0.00 sec) - -obclient> INSERT INTO lineitem VALUES(1,2,3,6.00,0.20,0.01,'01-JUN-02'); -Query OK, 1 row affected (0.01 sec) - -obclient> INSERT INTO customer VALUES(1,'Leo',null,null,'13700461258',null,'BUILDING',null); -Query OK, 1 row affected (0.01 sec) - -obclient> INSERT INTO orders VALUES(1,1,null,null,'01-JUN-20',10,null,8,null); -Query OK, 1 row affected (0.00 sec) - -obclient>SELECT /*+ ORDERED USE_NL(orders) */o_orderdate, o_shippriority - FROM customer, orders WHERE c_mktsegment = 'BUILDING' AND - c_custkey = o_custkey GROUP BY o_orderdate, o_shippriority; - -+-------------+----------------+ -| O_ORDERDATE | O_SHIPPRIORITY | -+-------------+----------------+ -| 01-JUN-20 | 8 | -+-------------+----------------+ -1 row in set (0.01 sec) -``` - - - -在手写 SQL 时,ORDERED 较为有用,用户知道 JOIN 的最佳顺序时,可以将表按照顺序写在 FROM 的后面,然后加上 ORDERED HINT。 - -LEADING ----------------------------- - -LEADING HINT 指定并行查询计划中最先 JOIN 哪些表,LEADING 中的表从左到右的顺序,也是 JOIN 的顺序。它比 ORDERED 有更大的灵活性。 -**注意** - - - -如果 ORDERED 和 LEADING 同时使用,仅 ORDERED 生效。 - -PQ_DISTRIBUTE ----------------------------------- - -PQ HINT 即 `PQ_DISTRIBUTE`,用于指定并行查询计划中的数据分布方式。PQ HINT 会改变分布式 JOIN 时的数据分发方式。 - -PQ HINT 的基本语法如下: - -```unknow -PQ_DISTRIBUTE(tablespec outer_distribution inner_distribution) -``` - - - -参数解释如下: - -* tablespec 指定关注的表,关注 JOIN 的右表。 - - - -* outer_distribution 指定左表的数据分发方式。 - - - -* inner_distribution 指定右表的数据分发方式。 - - - - - - -两表的数据分发方式共有以下六种: - -* HASH, HASH - - - -* BROADCAST, NONE - - - -* - NONE, BROADCAST - - - -* PARTITION, NONE - - - -* - NONE, PARTITION - - - -* - NONE, NONE - - - - - - -其中,带分区的两种分发方式要求左表或右表有分区,而且分区键就是 JOIN 的键。如果不满足要求的话,PQ HINT 不会生效。 - -```sql -obclient>CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT, c3 INT, c4 DATE); -Query OK, 0 rows affected (0.09 sec) - -obclient>CREATE INDEX i1 ON t1(c3); -Query OK, 0 rows affected (0.09 sec) - -obclient>CREATE TABLE t2(c1 INT(11) NOT NULL, c2 INT(11) NOT NULL, c3 INT(11) - NOT NULL, -PRIMARY KEY (c1, c2, c3)) PARTITION BY KEY(c2) PARTITIONS 4; -Query OK, 0 rows affected (0.09 sec) - -obclient>EXPLAIN BASIC SELECT /*+USE_PX PARALLEL(3) PQ_DISTRIBUTE - (t2 BROADCAST NONE) LEADING(t1 t2)*/ * FROM t1 JOIN t2 ON - t1.c2 = t2.c2\G; -*************************** 1. row *************************** -Query Plan: -================================================ -|ID|OPERATOR |NAME | ------------------------------------------------- -|0 |EXCHANGE IN DISTR | | -|1 | EXCHANGE OUT DISTR |:EX10001| -|2 | HASH JOIN | | -|3 | EXCHANGE IN DISTR | | -|4 | EXCHANGE OUT DISTR (BROADCAST)|:EX10000| -|5 | PX BLOCK ITERATOR | | -|6 | TABLE SCAN |t1 | -|7 | PX BLOCK ITERATOR | | -|8 | TABLE SCAN |t2 | -================================================ -``` - - - -USE_NL ---------------------------- - -USE_NL HINT 指定 JOIN 使用 NESTED LOOP JOIN,并且需要满足 USE_NL 中指定的表是 JOIN 的右表。 - -如下例所示,如果希望 join1 为 NESTED LOOP JOIN,则 HINT 写法为 `LEADING(a, (b,c)) USE_NL((b,c))`。 - -当 USE_NLJ 和 ORDERED、LEADING HINT 一起使用时,如果 USE_NLJ 中注明的表不是右表,则 USE_NLJ HINT 会被忽略。 - -![1](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/4765994061/p179945.png) - -USE_HASH ------------------------------ - -USE_HASH HINT 指定 JOIN 使用 HASH JOIN,并且需要满足 USE_HASH 中指定的表是 JOIN 的右表。 -**注意** - - - -如果没有使用 ORDERED 和 LEADING HINT,并且优化器生成的 JOIN 顺序中指定的表之间不是直接 JOIN 的关系,那么 USE_HASH HINT 会被忽略。 - -USE_MERGE ------------------------------- - -USE_MERGE HINT 指定 JOIN 使用 MERGE JOIN,并且需要满足 USE_MERGE 中指定的表是 JOIN 的右表。 -**注意** - - - -如果没有使用 ORDERED 和 LEADING HINT,并且优化器生成的 JOIN 顺序中指定的表之间不是直接 JOIN 的关系,那么 USE_MERGE HINT 会被忽略。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/5.execution-of-parallel-query-2.md b/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/5.execution-of-parallel-query-2.md deleted file mode 100644 index c1aab2221..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/5.execution-of-parallel-query-2.md +++ /dev/null @@ -1,334 +0,0 @@ -并行查询的执行 -============================ - -并行执行(Parallel Execution)是将一个较大的任务切分为多个较小的任务,启动多个线程或者进程来并行处理这些小任务,这样可以利用更多的 CPU 与 IO 资源来缩短操作的响应时间。 - -并行执行分为并行查询(Parallel Query)、并行 DDL(Parallel DDL)和并行 DML(Parallel DML)。目前 OceanBase 数据库仅支持并行查询,并行 DDL 与并行 DML 还未支持。 - -启动并行查询的方式有以下两种: - -* 通过 PARALLEL HINT 指定并行度(dop)的方式启动并行查询。 - - - -* 针对查询分区数大于 1 的分区表会自动启动并行查询。 - - - - - - -启用分区表并行查询 ------------------------------- - -针对分区表的查询,如果查询的目标分区数大于 1,系统会自动启用并行查询,dop 的值由系统默认指定为 1。 - -如下例所示,创建一个分区表 ptable,对 ptable 进行全表数据的扫描操作,通过 EXPLAIN 命令查看生成的执行计划。 - -```javascript -obclient>CREATE TABLE PTABLE(c1 INT , c2 INT) PARTITION BY HASH(c1) PARTITIONS 16; -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT * FROM ptable\G; -*************************** 1. row *************************** -Query Plan: -======================================================= -|ID|OPERATOR |NAME |EST. ROWS|COST | -------------------------------------------------------- -|0 |EXCHANGE IN DISTR | |1600000 |1246946| -|1 | EXCHANGE OUT DISTR |:EX10000|1600000 |1095490| -|2 | PX PARTITION ITERATOR| |1600000 |1095490| -|3 | TABLE SCAN |ptable |1600000 |1095490| -======================================================= - -Outputs & filters: -------------------------------------- - 0 - output([ptable.c1], [ptable.c2]), filter(nil) - 1 - output([ptable.c1], [ptable.c2]), filter(nil), dop=1 - 2 - output([ptable.c1], [ptable.c2]), filter(nil) - 3 - output([ptable.c1], [ptable.c2]), filter(nil), - access([ptable.c1], [ptable.c2]), partitions(p[0-15]) -``` - - - -通过执行计划可以看出,分区表默认的并行查询的 dop 为 1。如果 OceanBase 集群一共有 3 个 OBServer,表 ptable 的 16 个分区分散在 3 个 OBServer 中,那么每一个 OBServer 都会启动一个工作线程(Worker Thread)来执行分区数据的扫描工作,一共需要启动 3 个工作线程来执行表的扫描工作。 - -针对分区表,添加 PARALLEL HINT 启动并行查询,并指定 dop,通过 EXPLAIN 命令查看生成的执行计划。 - -```javascript -obclient>EXPLAIN SELECT /*+ PARALLEL(8) */ * FROM ptable\G; -*************************** 1. row *************************** -Query Plan: -======================================================= -|ID|OPERATOR |NAME |EST. ROWS|COST | -------------------------------------------------------- -|0 |EXCHANGE IN DISTR | |1600000 |1246946| -|1 | EXCHANGE OUT DISTR |:EX10000|1600000 |1095490| -|2 | PX PARTITION ITERATOR| |1600000 |1095490| -|3 | TABLE SCAN |ptable |1600000 |1095490| -======================================================= - -Outputs & filters: -------------------------------------- - 0 - output([ptable.c1], [ptable.c2]), filter(nil) - 1 - output([ptable.c1], [ptable.c2]), filter(nil), dop=8 - 2 - output([ptable.c1], [ptable.c2]), filter(nil) - 3 - output([ptable.c1], [ptable.c2]), filter(nil), - access([ptable.c1], [ptable.c2]), partitions(p[0-15]) -``` - - - -通过执行计划可以看出,并行查询的 dop 为 8。如果查询分区所在的 OBServer 的个数小于等于 dop,那么工作线程(总个数等于 dop)会按照一定的策略分配到涉及的 OBServer 上;如果查询分区所在的 OBServer 的个数大于 dop,那么每一个 OBServer 都会至少启动一个工作线程,一共需要启动的工作线程的数目会大于 dop。 - -例如,当 `dop=8`,如果 16 个分区均匀的分布在 4 台 OBServer 节点上,那么每一个 OBServer 上都会启动 2 个工作线程来扫描其对应的分区(一共启动 8 个工作线程);如果 16 个分区分布在 16 台 OBServer 节点上(每一个节点一个分区),那么每一台 OBServer 上都会启动 1 个工作线程来扫描其对应的分区(一共启动 16 个工作线程)。 - -如果针对分区表的查询,查询分区数目小于等于 1,系统不会启动并行查询。如下例所示,对 ptable 的查询添加一个过滤条件 `c1=1`。 - -```javascript -obclient>EXPLAIN SELECT * FROM ptable WHERE c1 = 1\G; -*************************** 1. row *************************** -Query Plan: -====================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | --------------------------------------- -|0 |TABLE SCAN|ptable|990 |85222| -====================================== - -Outputs & filters: -------------------------------------- - 0 - output([ptable.c1], [ptable.c2]), filter([ptable.c1 = 1]), - access([ptable.c1], [ptable.c2]), partitions(p1) -``` - - - -通过计划可以看出,查询的目标分区个数为 1,系统没有启动并行查询。如果希望针对一个分区的查询也能够进行并行执行,就只能通过添加 PARALLEL HINT 的方式进行分区内并行查询,通过 EXPLAIN 命令查看生成的执行计划。 - -```javascript -obclient>EXPLAIN SELECT /*+ PARALLEL(8) */ * FROM ptable WHERE c1 = 1\G; -*************************** 1. row *************************** -Query Plan: -================================================= -|ID|OPERATOR |NAME |EST. ROWS|COST | -------------------------------------------------- -|0 |EXCHANGE IN DISTR | |990 |85316| -|1 | EXCHANGE OUT DISTR|:EX10000|990 |85222| -|2 | PX BLOCK ITERATOR| |990 |85222| -|3 | TABLE SCAN |ptable |990 |85222| -================================================= - -Outputs & filters: -------------------------------------- - 0 - output([ptable.c1], [ptable.c2]), filter(nil) - 1 - output([ptable.c1], [ptable.c2]), filter(nil), dop=8 - 2 - output([ptable.c1], [ptable.c2]), filter(nil) - 3 - output([ptable.c1], [ptable.c2]), filter([ptable.c1 = 1]), - access([ptable.c1], [ptable.c2]), partitions(p1) -``` - - -**注意** - - - -* 如果希望在查询分区数等于 1 的情况下,能够采用 HINT 的方式进行分区内并行查询,需要对应的 dop 的值大于等于 2。 - - - -* 如果 dop 的值为空或者小于 2 将不启动并行查询。 - - - - - - -启用非分区表并行查询 -------------------------------- - -非分区表本质上是只有 1 个分区的分区表,因此针对非分区表的查询,只能通过添加 PARALLEL HINT 的方式启动分区内并行查询,否则不会启动并行查询。 - -如下例所示,创建一个非分区表 stable,对 stable 进行全表数据的扫描操作,通过 EXPLAIN 命令查看生成的执行计划。 - -```javascript -obclient>CREATE TABLE stable(c1 INT, c2 INT); -Query OK, 0 rows affected (0.12 sec) - -obclient>EXPLAIN SELECT * FROM stable\G; -*************************** 1. row *************************** -Query Plan: -====================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | --------------------------------------- -|0 |TABLE SCAN|stable|100000 |68478| -====================================== - -Outputs & filters: -------------------------------------- - 0 - output([stable.c1], [stable.c2]), filter(nil), - access([stable.c1], [stable.c2]), partitions(p0) -``` - - - -通过执行计划可以看出,非分区表不使用 HINT 的情况下,不会启动并行查询。 - -针对非分区表,添加 PARALLEL HINT 启动分区内并行查询,并指定 dop(大于等于 2),通过 EXPLAIN 命令查看生成的执行计划。 - -```javascript -obclient>EXPLAIN SELECT /*+ PARALLEL(4)*/ * FROM stable\G; -*************************** 1. row *************************** -Query Plan: -================================================= -|ID|OPERATOR |NAME |EST. ROWS|COST | -------------------------------------------------- -|0 |EXCHANGE IN DISTR | |100000 |77944| -|1 | EXCHANGE OUT DISTR|:EX10000|100000 |68478| -|2 | PX BLOCK ITERATOR| |100000 |68478| -|3 | TABLE SCAN |stable |100000 |68478| -================================================= - -Outputs & filters: -------------------------------------- - 0 - output([stable.c1], [stable.c2]), filter(nil) - 1 - output([stable.c1], [stable.c2]), filter(nil), dop=4 - 2 - output([stable.c1], [stable.c2]), filter(nil) - 3 - output([stable.c1], [stable.c2]), filter(nil), - access([stable.c1], [stable.c2]), partitions(p0) -``` - - - -启用多表并行查询 ------------------------------ - -在查询中,多表 JOIN 查询最为常见。 - -如下例所示,首先创建两张分区表 p1table 和 p2table: - -```javascript -obclient>CREATE TABLE p1table(c1 INT ,c2 INT) PARTITION BY HASH(c1) PARTITIONS 2; -Query OK, 0 rows affected (0.02 sec) - -obclient>CREATE TABLE p2table(c1 INT ,c2 INT) PARTITION BY HASH(c1) PARTITIONS 4; -Query OK, 0 rows affected (0.02 sec) -``` - - - -查询 p1table 与 p2table 的 JOIN 结果,JOIN 条件是 `p1table.c1=p2table.c2`,执行计划如下: - -```javascript -obclient>EXPLAIN SELECT * FROM p1table p1 JOIN p2table p2 ON p1.c1=p2.c2\G; -*************************** 1. row *************************** -Query Plan: -==================================================================== -|ID|OPERATOR |NAME |EST. ROWS|COST | --------------------------------------------------------------------- -|0 |EXCHANGE IN DISTR | |784080000|614282633| -|1 | EXCHANGE OUT DISTR |:EX10001|784080000|465840503| -|2 | HASH JOIN | |784080000|465840503| -|3 | EXCHANGE IN DISTR | |200000 |155887 | -|4 | EXCHANGE OUT DISTR (BROADCAST)|:EX10000|200000 |136955 | -|5 | PX PARTITION ITERATOR | |200000 |136955 | -|6 | TABLE SCAN |p1 |200000 |136955 | -|7 | PX PARTITION ITERATOR | |400000 |273873 | -|8 | TABLE SCAN |p2 |400000 |273873 | -==================================================================== - -Outputs & filters: -------------------------------------- - 0 - output([p1.c1], [p1.c2], [p2.c1], [p2.c2]), filter(nil) - 1 - output([p1.c1], [p1.c2], [p2.c1], [p2.c2]), filter(nil), dop=1 - 2 - output([p1.c1], [p1.c2], [p2.c1], [p2.c2]), filter(nil), - equal_conds([p1.c1 = p2.c2]), other_conds(nil) - 3 - output([p1.c1], [p1.c2]), filter(nil) - 4 - output([p1.c1], [p1.c2]), filter(nil), dop=1 - 5 - output([p1.c1], [p1.c2]), filter(nil) - 6 - output([p1.c1], [p1.c2]), filter(nil), - access([p1.c1], [p1.c2]), partitions(p[0-1]) - 7 - output([p2.c1], [p2.c2]), filter(nil) - 8 - output([p2.c1], [p2.c2]), filter(nil), - access([p2.c1], [p2.c2]), partitions(p[0-3]) -``` - - - -默认情况下针对 p1table 与 p2table(两张表需要查询的分区数都大于 1)都会采用并行查询,默认的 dop 为 1。同样,也可以通过使用 PARALLEL HINT 的方式来改变并行度。 - -如下例所示,改变 JOIN 的条件为 `p1table.c1=p2table.c2` 和 `p2table.c1=1`,这样针对 p2table 仅仅会选择单个分区,执行计划如下所示: - -```javascript -obclient>EXPLAIN SELECT * FROM p1table p1 JOIN p2table p2 ON p1.c1=p2.c2 AND p2.c1=1\G; -*************************** 1. row *************************** -Query Plan: -============================================================= -|ID|OPERATOR |NAME |EST. ROWS|COST | -------------------------------------------------------------- -|0 |EXCHANGE IN DISTR | |1940598 |1807515| -|1 | EXCHANGE OUT DISTR |:EX10001|1940598 |1440121| -|2 | HASH JOIN | |1940598 |1440121| -|3 | EXCHANGE IN DISTR | |990 |85316 | -|4 | EXCHANGE OUT DISTR (PKEY)|:EX10000|990 |85222 | -|5 | TABLE SCAN |p2 |990 |85222 | -|6 | PX PARTITION ITERATOR | |200000 |136955 | -|7 | TABLE SCAN |p1 |200000 |136955 | -============================================================= - -Outputs & filters: -------------------------------------- - 0 - output([p1.c1], [p1.c2], [p2.c1], [p2.c2]), filter(nil) - 1 - output([p1.c1], [p1.c2], [p2.c1], [p2.c2]), filter(nil), dop=1 - 2 - output([p1.c1], [p1.c2], [p2.c1], [p2.c2]), filter(nil), - equal_conds([p1.c1 = p2.c2]), other_conds(nil) - 3 - output([p2.c1], [p2.c2]), filter(nil) - 4 - (#keys=1, [p2.c2]), output([p2.c1], [p2.c2]), filter(nil), dop=1 - 5 - output([p2.c1], [p2.c2]), filter([p2.c1 = 1]), - access([p2.c1], [p2.c2]), partitions(p1) - 6 - output([p1.c1], [p1.c2]), filter(nil) - 7 - output([p1.c1], [p1.c2]), filter(nil), - access([p1.c1], [p1.c2]), partitions(p[0-1]) -``` - - - -通过计划可以看出,p2table 仅需要扫描一个分区,在默认情况下不进行并行查询;p1table 需要扫描两个分区,默认情况下进行并行查询。同样,也可以通过添加 PARALLEL HINT 的方式改变并行度,使 p2table 针对一个分区的查询变为分区内并行查询。 - -关闭并行查询 ---------------------------- - -分区表在查询的时候会自动启动并行查询(查询分区个数大于 1),如果不想启动并行查询,可以使用添加 HINT `/*+ NO_USE_PX */` 来关闭并行查询。 - -例如,针对分区表 ptable,添加 HINT `/*+ NO_USE_PX */` 来关闭并行查询,通过生成的执行计划可以看出对 ptable 表的扫描没有进行并行查询。 - -```javascript -obclient>EXPLAIN SELECT /*+ NO_USE_PX */ * FROM ptable\G; -*************************** 1. row *************************** -Query Plan: -================================================= -|ID|OPERATOR |NAME |EST. ROWS|COST | -------------------------------------------------- -|0 |EXCHANGE IN DISTR | |1600000 |1246946| -|1 | EXCHANGE OUT DISTR| |1600000 |1095490| -|2 | TABLE SCAN |ptable|1600000 |1095490| -================================================= - -Outputs & filters: -------------------------------------- - 0 - output([ptable.c1], [ptable.c2]), filter(nil) - 1 - output([ptable.c1], [ptable.c2]), filter(nil) - 2 - output([ptable.c1], [ptable.c2]), filter(nil), - access([ptable.c1], [ptable.c2]), partitions(p[0-15]) -``` - - - -并行执行相关的系统视图 --------------------------------- - -OceanBase 数据库提供了系统视图 `gv$sql_audit/v$sql_audit` 来查看并行执行的运行状态以及一些统计信息。 - -`gv$sql_audit/v$sql_audit` 包含字段较多,其中与并行执行相关的字段为:qc_id、dfo_id、sqc_id 和 worker_id。 - -详细信息请参考 [(g)v$sql_audit 介绍](../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/1.g-v-sql_audit-introduction.md)。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/6.optimize-the-parameters-for-parallel-query-2.md b/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/6.optimize-the-parameters-for-parallel-query-2.md deleted file mode 100644 index ebe6ac6a3..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/3.distributed-execution-plan-2/6.optimize-the-parameters-for-parallel-query-2.md +++ /dev/null @@ -1,69 +0,0 @@ -并行查询的参数调优 -============================== - -Oceanbase 数据库并行查询(PX)的参数决定了并行查询的速度,主要包括并行度和 EXCHANGE 相关参数 。 - -并行度参数 --------------------------- - -并行度相关参数主要决定每个 query 并发时的 worker 个数。 - - -| **参数名称** | **描述** | **取值范围** | **默认值** | **配置建议** | -|-------------------------|------------------------------------------------------------------------------------------|-------------|------------------------------|---------------------------------------------------------------------------| -| parallel_max_servers | 控制每个服务器最大的并行执行线程个数,所有PX worker 加起来不能超过该值。 | \[0, 1800\] | 10(目前会根据 CPU 个数计算得到,以实际大小为准) | 该参数主要是控制 PX 场景下所有 PX worker 总数,建议值为可用 CPU个数的倍数关系。 | -| parallel_servers_target | 当 query 准备排队之前,控制检查 query 要求的并行度和已统计的 worker 总和是否超过该值。如果超过该值,则 query 需要排队,否则 query 继续执行。 | \[0, 1800\] | 10(目前会根据 CPU 个数计算得到,以实际大小为准) | 该参数主要是控制 PX 场景下,当 query 准备进行并行查询时,如果没有足够 worker 处理该 query,决定是否继续进行还是排队等待。 | - - - -`parallel_max_servers` 参数用于控制最大的并发度,`parallel_servers_target` 参数用来决策 query 在并行查询时是否排队,两者需要协同工作。如果只使用 `parallel_max_servers` 设置最大并行度,当查询过多时,会导致所有 worker 都被调度起来,导致 CPU 等资源紧张,查询性能下降。在 CPU 等资源有限的情况下,使用 `parallel_servers_target` 控制 query 进行排队可以提高整个并发的吞吐量。 - -可以通过 `SHOW VARIABLES` 来查看这些参数的值,如下例所示: - -```javascript -obclient>SHOW VARIABLES LIKE '%paral%'; - -+-------------------------+-------+ -| Variable_name | Value | -+-------------------------+-------+ -| ob_max_parallel_degree | 32 | -| ob_stmt_parallel_degree | 1 | -| parallel_max_servers | 5 | -| parallel_servers_target | 4 | -+-------------------------+-------+ -4 rows in set (0.00 sec) -``` - - -**注意** - - - -`ob_stmt_parallel_degree` 参数不需要设置,对 PX 框架无效。 - -EXCHANGE(Shuffle)参数 ----------------------------------------- - -EXCHANGE(Shuffle)参数主要用来控制在每个 DFO 之间进行数据传输时的参数控制,也就是数据进行 shuffle 时的内存控制。Oceanbase 数据库将数据传输封装成了叫做 DTL(Data Transfer layer)的模块。 - - -| **参数名称** | **描述** | **取值范围** | **默认值** | **配置建议** | -|-----------------|----------------------------------------------------------------------------------------------|-------------|------------------------------|-------------------------------------------------------------------------------| -| dtl_buffer_size | 控制 EXCHANGE 算子之间(即transmit 和 receive 之间)发送数据时,每次发送数据的 buffer 的大小。即当数据达到了该值上限才进行发送,减少每行传输的代价。 | \[0, 1800\] | 10(目前会根据 CPU 个数计算得到,以实际大小为准) | PX 场景下,EXCHANGE 之间发送数据依赖于该参数大小,一般不需要调整该参数,如果是为了减少发送数据次数等可以尝试进行修改,一般不建议修改该值大小。 | - - - -可以通过 `SHOW PARAMETERS` 来查看参数的值,如下例所示: - -```javascript -obclient>SHOW PARAMETERS LIKE '%dtl%'; - -+-------+----------+----------------+----------+-----------------+-----------+-------+---------------+----------+---------+---------+-------------------+ -| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | -+-------+----------+----------------+----------+-----------------+-----------+-------+---------------+----------+---------+---------+-------------------+ -| zone1 | observer | 100.81.152.114 | 36500 | dtl_buffer_size | NULL | 64K | to be removed | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | -+-------+----------+----------------+----------+-----------------+-----------+-------+---------------+----------+---------+---------+-------------------+ -1 row in set (0.01 sec) -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/1.overview-of-sql-optimization.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/1.overview-of-sql-optimization.md deleted file mode 100644 index 10541bb15..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/1.overview-of-sql-optimization.md +++ /dev/null @@ -1,37 +0,0 @@ -SQL 调优概览 -============================= - -SQL 调优是指通过综合分析 SQL 的执行计划、执行监控信息、系统配置、系统负载等多方面因素,调整 SQL 的执行策略,以实现资源利用最大化。 - -SQL 调优方式一般可分为单条 SQL 调优和系统 SQL 调优。 - -单条 SQL 调优 ------------------------------- - -单一的 SQL 调优的优化主体是被调试的 SQL 执行本身,一般调优的目标包括该 SQL 的执行时间、试行期的资源消耗等。常见的调优手段包括调整访问路径、执行顺序、逻辑改写等。 - -针对单条 SQL 的执行计划性能调优又可以分为单表访问和多表访问两种场景。 - - -| **场景** | **SQL 调优的关注点** | -|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 单表访问 | * 访问路径是否开启索引扫描:使用索引扫描可以减小数据的访问量。 * 是否创建合适的索引:使用索引排序以减少排序或聚合等耗时操作。 * 分区裁剪是否正确:适当的分区条件可以减少不必要的分区访问。 * 是否提高查询的并行度:分区数目较多时,通过提高并行度以更多资源的代价获取单条 SQL 查询的性能提升。 | -| 多表访问 | 不仅要关注单表的 SQL 调优问题,还要关注多表间的联接问题: * 联接顺序 * 联接算法 * 跨机或并行联接的数据再分布方式 * 查询改写 | - - - -系统的 SQL 调优 -------------------------------- - -系统的 SQL 调优的目的是提高整个系统的吞吐量或者系统利用率等。系统的 SQL 调优过程往往需要结合多条 SQL 的执行计划,综合分析当前系统的负载特征,主要关注热点行竞争、buffer cache 命中率等全局性的调优点。 - -针对吞吐量的性能调优主要是考虑在一定资源(CPU、IO、网络等)情况下,将数据库系统处理请求量最大化。主要关注以下几个方面: - - -| **主要方法** | **说明** | -|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 优化慢 SQL | 找到具体的慢 SQL 后,针对单条 SQL 进行性能调优,请参见示例 [查询某段时间内执行时间排名 TOP N 的请求](../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/8.query-the-top-n-requests-with-the-most-execution-time-1.md)。 | -| 均衡 SQL 的请求流量资源 | 请参见示例 [查看集群 SQL 请求流量是否均衡](../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/6.check-whether-the-sql-request-traffic-is-balanced-1.md)。 影响均衡的因素主要有: * `ob_read_consistency` 如何设置 * Primary Zone 如何设置 * Proxy 或 Java 客户端路由策略相关设置 * 业务热点查询分区是否均衡 | -| 均衡子计划的 RPC 请求流量资源 | 请参见示例 [查看分布式子计划 RPC 执行数是否均衡](../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/12.check-whether-the-number-of-distributed-rpc-executions-is-balanced-1.md)。 影响子计划请求是否均匀的主要因素如下: * OBServer 内部路由策略相关设置 * 业务热点查询的分区是否均衡 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/2.optimize-sql-statements-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/2.optimize-sql-statements-1.md deleted file mode 100644 index a402c0bee..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/2.optimize-sql-statements-1.md +++ /dev/null @@ -1,27 +0,0 @@ -SQL 调优基本流程 -=============================== - - - -在 SQL 调优中,针对慢 SQL 的分析步骤如下: - -1. 通过全局 SQL 审计表 (g)v$sql_audit、 SQL Trace 和计划缓存视图查看 SQL 执行信息,初步查找 SQL 请求的流程中导致耗时或消耗资源(如内存、磁盘 IO 等)的 SQL。请参见示例 [查询某段时间内执行时间排名 TOP N 的请求](../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/8.query-the-top-n-requests-with-the-most-execution-time-1.md)。 - - - -2. 单条 SQL 的执行性能往往与该 SQL 的执行计划相关,因此,执行计划的分析是最重要的手段。通过执行 EXPALIN 命令查看优化器针对给定 SQL 生成的逻辑执行计划,确定可能的调优方向。请参见示例 [查看执行计划形状并做分析](../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/3.view-and-analyze-the-execution-plan-1.md)。 - - 关于执行计划的详细信息请参考 [SQL 执行计划简介](../../12.sql-optimization-guide-1/2.sql-execution-plan-3/1.introduction-to-sql-execution-plans-2.md)。 - - -3. 找到具体的慢 SQL,为了使某些 SQL 的执行时间或资源消耗符合预期,常见的优化方式如下: - - - - - - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/1.g-v-sql_audit-introduction.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/1.g-v-sql_audit-introduction.md deleted file mode 100644 index deb7ab740..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/1.g-v-sql_audit-introduction.md +++ /dev/null @@ -1,160 +0,0 @@ -(g)v$sql_audit 介绍 -====================================== - -(g)v$sql_audit 是全局 SQL 审计表,可以用来查看每次请求客户端来源、执行服务器信息、执行状态信息、等待事件以及执行各阶段耗时等。 - -sql_audit 相关设置 ------------------------ - -* 设置 sql_audit 使用开关。 - - ```javascript - obclient>ALTER SYSTEM SET enable_sql_audit = true; - /*开启 sql_audit*/ - - obclient>ALTER SYSTEM SET enable_sql_audit = false; - /*关闭 sql_audit*/ - ``` - - - - - - - - -* 设置 sql_audit 内存上限。默认内存上限为 3 G,可设置范围为 \[64M,+∞\]。 - - ```javascript - obclient>ALTER SYSTEM SET sql_audit_memory_limit = '3G'; - ``` - - - - - - -sql_audit 淘汰机制 ------------------------ - -* sql_audit 每隔 1s 会检测后台任务并根据以下标准决定是否淘汰: - - * sql_audit 内存最大可使用上限为 `avail_mem_limit = min (OBServer 可使用内存 *10%`,`sql_audit_memory_limit)`。 - - - - - - - - - - - * 当 sql_audit 记录数超过 900 万条时,触发淘汰。 - - - - - - - - - - - -* sql_audit 根据以下标准决定是否停止淘汰: - - * 如果是达到内存上限触发淘汰则: - - - - - - - - - - - * 如果是达到记录数上限触发的淘汰则淘汰到 800 万行记录时停止淘汰。 - - - - - - - - - - - -sql_audit 字段解释 ------------------------ - - - -| **字段名称** | **类型** | **描述** | -|-------------------------|---------------------|----------------------------------| -| SVR_IP | varchar(32) | IP 地址 | -| SVR_PORT | bigint(20) | 端口号 | -| REQUEST_ID | bigint(20) | 请求的 ID 号 | -| TRACE_ID | varchar(128) | 这条语句的 trace ID | -| CLIENT_IP | varchar(32) | 发送请求的 client IP | -| CLIENT_PORT | bigint(20) | 发送请求的 client port | -| TENANT_ID | bigint(20) | 发送请求的租户 ID | -| TENANT_NAME | varchar(64) | 发送请求的租户名称 | -| USER_ID | bigint(20) | 发送请求的用户 ID | -| USER_NAME | varchar(64) | 发送请求的用户名称 | -| SQL_ID | varchar(32) | 这条 SQL 的 ID | -| QUERY_SQL | varchar(32768) | 实际的 SQL 语句 | -| PLAN_ID | bigint(20) | 执行计划 ID | -| AFFECTED_ROWS | bigint(20) | 影响行数 | -| RETURN_ROWS | bigint(20) | 返回行数 | -| PARTITION_CNT | bigint(20) | 该请求涉及的分区数 | -| RET_CODE | bigint(20) | 执行结果返回码 | -| EVENT | varchar(64) | 最长等待事件名称 | -| P1TEXT | varchar(64) | 等待事件参数 1 | -| P1 | bigint(20) unsigned | 等待事件参数 1 的值 | -| P2TEXT | varchar(64) | 等待事件参数 2 | -| P2 | bigint(20) unsigned | 等待事件参数 2 的值 | -| P3TEXT | varchar(64) | 等待事件参数 3 | -| P3 | bigint(20) unsigned | 等待事件参数 3 的值 | -| LEVEL | bigint(20) | 等待事件的 level 级别 | -| WAIT_CLASS_ID | bigint(20) | 等待事件所属的 class ID | -| WAIT_CLASS# | bigint(20) | 等待事件所属的 class 的下标 | -| WAIT_CLASS | varchar(64) | 等待事件所属的 class 名称 | -| STATE | varchar(19) | 等待事件的状态 | -| WAIT_TIME_MICRO | bigint(20) | 该等待事件所等待的时间(微秒) | -| TOTAL_WAIT_TIME_MICRO | bigint(20) | 执行过程所有等待的总时间(微秒) | -| TOTAL_WAITS | bigint(20) | 执行过程总等待的次数 | -| RPC_COUNT | bigint(20) | 发送 RPC 个数 | -| PLAN_TYPE | bigint(20) | 执行计划类型(local/ remote/distribute) | -| IS_INNER_SQL | tinyint(4) | 是否为内部 SQL 请求 | -| IS_EXECUTOR_RPC | tinyint(4) | 当前请求是否为 RPC 请求 | -| IS_HIT_PLAN | tinyint(4) | 是否命中计划缓存 | -| REQUEST_TIME | bigint(20) | 开始执行时间点 | -| ELAPSED_TIME | bigint(20) | 接收到请求到执行结束消耗总时间 | -| NET_TIME | bigint(20) | 发送 RPC 到接收到请求时间 | -| NET_WAIT_TIME | bigint(20) | 接收到请求到进入队列时间 | -| QUEUE_TIME | bigint(20) | 请求在队列等待事件 | -| DECODE_TIME | bigint(20) | 出队列后 decode 时间 | -| GET_PLAN_TIME | bigint(20) | 开始执行到获得计划时间 | -| EXECUTE_TIME | bigint(20) | plan 执行消耗时间 | -| APPLICATION_WAIT_TIME | bigint(20) unsigned | 所有 application 类事件的总时间 | -| CONCURRENCY_WAIT_TIME | bigint(20) unsigned | 所有 concurrency 类事件的总时间 | -| USER_IO_WAIT_TIME | bigint(20) unsigned | 所有 user_io 类事件的总时间 | -| SCHEDULE_TIME | bigint(20) unsigned | 所有 schedule 类事件的时间 | -| ROW_CACHE_HIT | bigint(20) | 行缓存命中次数 | -| BLOOM_FILTER_CACHE_HIT | bigint(20) | bloom filter 缓存命中次数 | -| BLOCK_CACHE_HIT | bigint(20) | 块缓存命中次数 | -| BLOCK_INDEX_CACHE_HIT | bigint(20) | 块索引缓存命中次数 | -| DISK_READS | bigint(20) | 物理读次数 | -| EXECUTION_ID | bigint(20) | 执行 ID | -| SESSION_ID | bigint(20) | SESSION 的 ID | -| RETRY_CNT | bigint(20) | 重试次数 | -| TABLE_SCAN | tinyint(4) | 判断该请求是否含全表扫描 | -| CONSISTENCY_LEVEL | bigint(20) | 一致性级别 | -| MEMSTORE_READ_ROW_COUNT | bigint(20) | MEMSTORE 中读的行数 | -| SSSTORE_READ_ROW_COUNT | bigint(20) | SSSTORE 中读的行数 | -| REQUEST_MEMORY_USED | bigint(20) | 该请求消耗的内存 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/2.sql-trace-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/2.sql-trace-1.md deleted file mode 100644 index 1a4265940..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/2.sql-trace-1.md +++ /dev/null @@ -1,151 +0,0 @@ -SQL Trace -============================== - -SQL Trace 能够交互式的提供上一次执行的 SQL 请求执行过程信息及各阶段的耗时。 - -SQL Trace 开关 ---------------------- - -SQL Trace 功能默认是关闭的,可通过 session 变量来控制其打开和关闭。 - -* 打开 SQL Trace 功能的语句如下: - - ```unknow - obclient>SET ob_enable_trace_log = 1; - ``` - - - - - - - - -* 关闭 SQL Trace 功能的语句如下: - - ```unknow - obclient>SET ob_enable_trace_log = 0; - ``` - - - - - - - - -Show Trace -------------------- - -当 SQL Trace 功能打开后,执行需要诊断的 SQL,然后通过 `SHOW TRACE` 能够查看该 SQL 执行的信息。这些执行信息以表格方式输出,每列说明如下: - - -| **列名** | **说明** | -|----------|------------------------| -| Title | 记录执行过程某一个阶段点 | -| KeyValue | 记录某一个阶段点产生的一些执行信息 | -| Time | 记录上一个阶段点到这次阶段点执行耗时(us) | - - - -示例 ------------ - -1. 打开 SQL Trace: - - ```unknow - obclient> SET ob_enable_trace_log = 1; - ``` - - - - - - - - -2. 执行目标 SQL: - - ```unknow - obclient> CREATE TABLE t1(c1 INT,c2 INT,c3 INT); - Query OK, 0 rows affected (0.02 sec) - - obclient> INSERT INTO t1 VALUES(1,1,1); - Query OK, 1 rows affected (0.02 sec) - - obclient> INSERT INTO t1 VALUES(2,2,2); - Query OK, 1 rows affected (0.02 sec) - - obclient>SELECT * FROM t1 WHERE c1 = 1; - - +----+------+------+ - | c1 | c2 | c3 | - +----+------+------+ - | 1 | 1 | 1 | - +----+------+------+ - ``` - - - - - - - - -3. 显示 Trace: - - ```unknow - obclient> SHOW TRACE; - +------------------------------+---------------------------------------------------------------------------------------------------+ - - | TITLE | KEYVALUE | TIME | - +------------------------------+----------------------------------------------------------------------------+------+ - | process begin | in_queue_time:17, receive_ts:1612420489580707, enqueue_ts:1612420489580709 | 0 | - | query begin | trace_id:YB42AC1E87E6-0005B8AB2D57844F | 1 | - | parse begin | stmt:"set ob_enable_trace_log = 1", stmt_len:27 | 62 | - | pc get plan begin | NULL | 9 | - | pc get plan end | NULL | 19 | - | transform_with_outline begin | NULL | 1 | - | transform_with_outline end | NULL | 31 | - | resolve begin | NULL | 21 | - | resolve end | NULL | 33 | - | execution begin | arg1:false, end_trans_cb:false | 14 | - | start_auto_end_plan begin | NULL | 39 | - | start_auto_end_plan end | NULL | 1 | - | execution end | NULL | 11 | - | query end | NULL | 39 | - +------------------------------+---------------------------------------------------------------------------------------------+------+ - ``` - - - - 示例中 `SHOW TRACE` 结果说明如下: - * Title 列包含整个 SQL 执行经历的各个阶段的信息以及该 SQL 真实的执行路径。上述示例的结果中有经过 Resolve、Transform、Optimizer 和 Code Generate 四个流程,说明该 SQL 重新生成了计划,没有命中 plan cache。 - - - - - - - - * KeyValue 列包含一些执行信息,可以用于排查问题: - - - - - - - - - - - * Time 列显示上一个阶段点到这次阶段点执行耗时。 - - 例如,resolve end 对应的 206 us 表示的是 resolve begin 到 resolve 耗时。如果某个 SQL 执行很慢,则通过查看 time 列,能够快速定位出具体是哪个阶段执行较慢,然后再进行具体分析。此例中,执行耗时主要在生成计划过程中,因此只需要分析没有命中 plan cache 的原因,可能是计划淘汰后 第一次执行该 SQL,或是 plan cache 不支持的 SQL。 - - - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md deleted file mode 100644 index cefb1da8c..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md +++ /dev/null @@ -1,117 +0,0 @@ -计划缓存视图 -=========================== - -计划缓存视图包含记录执行计划的缓存状态、执行统计的相关信息以及计划信息。 - -(g)v$plan_cache_stat ------------------------------ - -(g)v$plan_cache_stat 视图用于记录每个计划缓存的状态,每个计划缓存在该视图中有一条记录。 - - -| **字段名称** | **类型** | **描述** | -|--------------|-------------|-----------------------------------| -| tenant_id | bigint(20) | 租户 ID | -| svr_ip | varchar(32) | IP 地址 | -| svr_port | bigint(20) | 端口号 | -| sql_num | bigint(20) | plan_cache 涉及 SQL 条数 | -| mem_used | bigint(20) | plan_cache 已经使用的内存 | -| access_count | bigint(20) | 进 plan_cache 的次数 | -| hit_count | bigint(20) | 命中 plan_cache 的次数 | -| hit_rate | bigint(20) | 命中 plan_cache 的次数 | -| plan_num | bigint(20) | plan 的个数 | -| mem_limit | bigint(20) | plan_cache 的内存上限 | -| hash_bucket | bigint(20) | plan_cache hash map 中的 bucket 的个数 | -| stmtkey_num | bigint(20) | plan_cache 中 stmt_key 的个数 | - - - -(g)v$plan_cache_plan_stat ----------------------------------- - -(g)v$plan_cache_plan_stat 用于记录计划缓存中所有 plan 的具体信息及每个计划总的执行统计信息,每个 plan 在该视图中有一条记录。 - - -| **字段名称** | **类型** | **描述** | -|-----------------------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| tenant_id | bigint(20) | 租户 ID | -| svr_ip | varchar(32) | 机器的 IP 地址 | -| svr_port | bigint(20) | 机器端口号 | -| plan_id | bigint(20) | 执行计划的 ID | -| sql_id | varchar(32) | 这条 SQL 的 ID | -| type | bigint(20) | 执行计划的类型: * 1 表示 local plan * 2 表示 remote plan * 3 表示 distribute plan | -| db_id | bigint(20) unsigned | database 的 ID | -| is_bind_sensitive | bigint(20) | 该计划是否需要打开 ACS | -| is_bind_aware | bigint(20) | 该计划已经打开了 ACS | -| statement | varchar(4096) | 参数化后的 SQL 语句 | -| query_sql | varchar(65536) | 第一次加载计划时查询的原始 SQL 语句 | -| sys_vars | varchar(4096) | 影响计划的系统变量的值 | -| plan_hash | bigint(20) | 执行计划的 hash 值 | -| first_load_time | timestamp(6) | 第一次被加载时间 | -| schema_version | bigint(20) | schema 版本号 | -| merged_version | bigint(20) | 当前缓存的 plan 对应的合并版本号 | -| last_active_time | timestamp(6) | 上一次被执行时间 | -| avg_exe_usec | bigint(20) | 平均执行时间 | -| slowest_exe_time | timestamp(6) | 最慢一次执行耗时 | -| slowest_exe_usec | bigint(20) | 最慢执行时间戳 | -| slow_count | bigint(20) | 当前 plan 成为慢查询次数 | -| hit_count | bigint(20) | 被命中次数 | -| plan_size | bigint(20) | 执行计划的大小 | -| executions | bigint(20) | 执行次数 | -| disk_reads | bigint(20) | 所有执行物理读次数 | -| direct_writes | bigint(20) | 所有执行写盘的次数 | -| buffer_gets | bigint(20) | 所有执行逻辑读次数 | -| application_wait_time | bigint(20) unsigned | 所有执行所有 application 类事件的总时间 | -| concurrency_wait_time | bigint(20) unsigned | 所有执行所有 concurrency 类事件的总时间 | -| user_io_wait_time | bigint(20) unsigned | 所有执行所有 user_io 类事件的总时间 | -| rows_processed | bigint(20) | 所有执行选择的结果行数或执行更改表中的行数 | -| elapsed_time | bigint(20) unsigned | 所有执行接收到请求到执行结束消耗时间 | -| cpu_time | bigint(20) unsigned | 所有执行消耗的 CPU 时间 | -| large_querys | bigint(20) | 被判断为大查询的次数 | -| delayed_large_querys | bigint(20) | 被判断为大查询且被丢入大查询队列的次数 | -| outline_version | bigint(20) | outline 版本号 | -| outline_id | bigint(20) | outline 的 ID。 如果为 -1 表示不是通过绑定 outline 生成的计划 | -| outline_data | varchar(65536) | 计划对应的 outline 信息 | -| acs_sel_info | varchar(65536) | 当前 ACS 计划对应的选择率空间 | -| table_scan | tinyint(4) | 表示该查询是否为主键扫描 | -| evolution | bool | 表示该执行计划是否在演进中 | -| evo_executions | bigint(20) | 演进次数 | -| evo_cpu_time | bigint(20) unsigned | 演进过程中总的执行 CPU 时间 | -| timeout_count | bigint(20) | 超时次数 | -| ps_stmt_id | bigint(20) | prepare statement 的 ID | - - - -(g)v$plan_cache_plan_explain -------------------------------------- - -(g)v$plan_cache_plan_explain 用于查询某条 SQL 在计划缓存中的执行计划。 -**注意** - - - -* 如果查询 `gv$plan_cache_plan_explain` 表, 则需要指定 IP、port、tenant_id、plan_id 等条件。 - - - -* 如果查询 `v$plan_cache_plan_explain` 表, 则需要指定 tenant_id、plan_id 等条件。 - - - - - - - -| **字段名称** | **类型** | **描述** | -|-----------|--------------|-----------------| -| TENANT_ID | bigint(20) | 租户 ID | -| IP | varchar(32) | IP 地址 | -| PORT | bigint(20) | 端口号 | -| PLAN_ID | bigint(20) | 执行计划的 ID | -| OPERATOR | varchar(128) | operator 的名称 | -| NAME | varchar(128) | 表的名称 | -| ROWS | bigint(20) | 预估的结果行数 | -| COST | bigint(20) | 预估的代价 | -| PROPERTY | varchar(256) | 对应 operator 的信息 | - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/1.analyze-events-waiting-in-a-query-using-sql-audit-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/1.analyze-events-waiting-in-a-query-using-sql-audit-1.md deleted file mode 100644 index cb957223d..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/1.analyze-events-waiting-in-a-query-using-sql-audit-1.md +++ /dev/null @@ -1,50 +0,0 @@ -通过 SQL Audit 分析查询中等待事件 -=========================================== - - - -SQL Audit 记录了关于等待事件的如下信息: - -* 记录了 4 大类等待事件分别的耗时(即 APPLICATION_WAIT_TIME、CONCURRENCY_WAIT_TIME、USER_IO_WAIT_TIME 和 SCHEDULE_TIME),每类等待事件都涉及很多具体的等待事件。 - - - -* 记录了耗时最多的等待事件名称(EVENT)及该等待事件耗时(WAIT_TIME_MICRO)。 - - - -* 记录了所有等待事件的发生的次数(TOTAL_WAITS)及所有等待事件总耗时(TOTAL_WAIT_TIME_MICRO)。 - - - - - - -一般情况下,如果等待事件总耗时较多,通过查看耗时最多的等待事件名称(EVENT)能够基本确定是什么原因导致较慢。 - -如下例所示,可分析出等待事件主要耗时在 IO 等待上。 - -```sql -obclient>SELECT SQL_ID, ELAPSED_TIME, QUEUE_TIME, GET_PLAN_TIME, EXECUTE_TIME, - APPLICATION_WAIT_TIME, CONCURRENCY_WAIT_TIME, USER_IO_WAIT_TIME, SCHEDULE_TIME, EVENT, - WAIT_CLASS, WAIT_TIME_MICRO, TOTAL_WAIT_TIME_MICRO - FROM v$sql_audit - WHERE TRACE_ID = 'YB42AC1E87E6-0005B8AB2D578471'\G; - -************************** 1. row *************************** - SQL_ID: CAFC81EE933820AEC5A86CBBAC1D0F6D - ELAPSED_TIME: 2168 - QUEUE_TIME: 33 - GET_PLAN_TIME: 276 - EXECUTE_TIME: 1826 -APPLICATION_WAIT_TIME: 0 -CONCURRENCY_WAIT_TIME: 0 - USER_IO_WAIT_TIME: 0 - SCHEDULE_TIME: 0 - EVENT: sync rpc - WAIT_CLASS: NETWORK - WAIT_TIME_MICRO: 1596 -TOTAL_WAIT_TIME_MICRO: 1596 -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/10.queries-the-sql-statements-that-are-used-for-full-table-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/10.queries-the-sql-statements-that-are-used-for-full-table-1.md deleted file mode 100644 index bdf339256..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/10.queries-the-sql-statements-that-are-used-for-full-table-1.md +++ /dev/null @@ -1,21 +0,0 @@ -查找某个租户中执行全表扫描的 SQL -======================================= - - - -运行如下语句可以查询某个租户中执行全表扫描的 SQL: - -```javascript -obclient>SELECT query_sql - FROM oceanbase.gv$sql_audit - WHERE table_scan = 1 AND tenant_id = 1001 - GROUP BY sql_id; - -+-------------------------------+ -| query_sql | -+-------------------------------+ -| SHOW VARIABLES LIKE 'version' | -+-------------------------------+ -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/11.analyze-query-problems-related-to-distributed-plans-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/11.analyze-query-problems-related-to-distributed-plans-1.md deleted file mode 100644 index 52eb7b27f..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/11.analyze-query-problems-related-to-distributed-plans-1.md +++ /dev/null @@ -1,43 +0,0 @@ -分析分布式计划相关的查询问题 -=================================== - - - -分布式计划根据以下步骤分析查询问题: - -1. 通过查看 `(g)v$plan_cache_plan_stat` 视图、`(g)v$sql_audit` 中对执行计划类型的记录,确定是否为分布式计划。 - - - -2. 分析该执行计划是否正确。 - - - -3. 通过 trace_id 关联查询 `gv$sql_audit`,查看所有执行的子计划耗时情况,每个子计划的 RPC 执行均对应一条 sql_audit 记录,分析该 sql_audit 记录来定位问题。 - - - - - - -如下例所示,`is_executor_rpc = 1` 表示子计划执行在 sql_audit 中记录,主要记录执行相关的信息。`is_executor_rpc = 0` 表示接受 SQL 请求的线程在 sql_audit 中的记录。该记录含有 SQL 执行过程的信息,包括 SQL 信息、获取执行计划信息等。 - -```sql -obclient>SELECT/*+ PARALLEL(15)*/sql_id, is_executor_rpc, elapsed_time - FROM oceanbase.gv$sql_audit WHERE trace_id = 'YB420AB74FC6-00056349D323483A'; - -+----------------------------------+-----------------+--------------+ -| sql_id | is_executor_rpc | elapsed_time | -+----------------------------------+-----------------+--------------+ -| | 1 | 124 | -| | 1 | 191 | -| | 1 | 123447 | -| | 1 | 125 | -| 20172B18BC9EE3F806D4149895754CE0 | 0 | 125192 | -| | 1 | 148 | -| | 1 | 149 | -| | 1 | 140 | -+----------------------------------+-----------------+--------------+ -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/12.check-whether-the-number-of-distributed-rpc-executions-is-balanced-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/12.check-whether-the-number-of-distributed-rpc-executions-is-balanced-1.md deleted file mode 100644 index 303be7cd2..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/12.check-whether-the-number-of-distributed-rpc-executions-is-balanced-1.md +++ /dev/null @@ -1,38 +0,0 @@ -查看分布式子计划 RPC 执行数是否均衡 -========================================= - - - -运行如下语句可以查看分布式计划 RPC 执行数是否均衡: - -```sql -obclient>SELECT/*+ PARALLEL(15)*/t2.zone, t1.svr_ip, COUNT(*) AS RPC_COUNT, - AVG(t1.elapsed_time),AVG(t1.queue_time) - FROM oceanbase.gv$sql_audit t1, __all_server t2 - WHERE t1.svr_ip = t2.svr_ip AND IS_EXECUTOR_RPC = 1 - AND tenant_id = 1001 - AND request_time > (time_to_usec(now()) - 1000000) - AND request_time < time_to_usec(now()) - GROUP BY t1.svr_ip ORDER BY t2.zone; - -+--------+----------------+-----------+----------------------+--------------------+ -| zone | svr_ip | RPC_COUNT | avg(t1.elapsed_time) | avg(t1.queue_time) | -+--------+----------------+-----------+----------------------+--------------------+ -| ET2_1 | 10.103.224.119 | 2517 | 514.2241 | 13.5515 | -| ET2_1 | 10.103.226.124 | 2786 | 1628.0948 | 13.2915 | -| ET2_1 | 10.103.228.177 | 3068 | 1984.0238 | 12.9029 | -| ET2_1 | 10.103.229.107 | 3216 | 538.7646 | 12.8629 | -| ET2_1 | 10.103.229.94 | 2228 | 802.8577 | 13.4138 | -| EU13_2 | 10.183.78.113 | 2000 | 805.0485 | 13.0610 | -| EU13_2 | 10.183.78.86 | 3296 | 1115.0725 | 13.2700 | -| EU13_2 | 10.183.79.56 | 2460 | 1129.4085 | 14.3293 | -| EU13_2 | 10.183.85.152 | 2533 | 891.0683 | 13.8602 | -| EU13_3 | 10.183.76.140 | 3045 | 677.6591 | 13.7209 | -| EU13_3 | 10.183.78.165 | 2202 | 821.9496 | 12.8247 | -| EU13_3 | 10.183.79.198 | 2825 | 1277.0375 | 13.3345 | -| EU13_3 | 10.183.86.65 | 2142 | 746.0808 | 13.0121 | -| EU13_3 | 11.180.113.7 | 2735 | 765.8731 | 12.4750 | -+--------+----------------+-----------+----------------------+--------------------+ -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/2.sql-statement-that-analyzes-sudden-jitter-of-rt-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/2.sql-statement-that-analyzes-sudden-jitter-of-rt-1.md deleted file mode 100644 index e5023a7cd..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/2.sql-statement-that-analyzes-sudden-jitter-of-rt-1.md +++ /dev/null @@ -1,40 +0,0 @@ -分析 RT 突然抖动的 SQL -==================================== - - - -推荐使用外部诊断工具 Tars 进行问题分析,或者使用 `(g)v$sql_audit` 视图进行问题排查。 - -使用 `(g)v$sql_audit` 进行问题排查方式如下: - -1. 在线上如果出现 RT 抖动,但 RT 并不是持续很高的情况,可以考虑在抖动出现后,立刻将 sql_audit 关闭 (`alter system set ob_enable_sql_audit = 0`),从而确保该抖动的 SQL 请求在 sql_audit 中存在。 - - - -2. 通过 SQL Audit 查询抖动附近那段时间 RT 的 TOP N 请求,分析有异常的 SQL。 - - - -3. 找到对应的 RT 异常请求,则可以分析该请求在 sql_audit 中的记录进行问题排查: - - - - - - - - -a. 查看是否有很长等待事件耗时。 - -b. 分析逻辑读次数是否异常多(突然有大账户时可能会出现)。 - -```sql -逻辑读次数 = 2 * ROW_CACHE_HIT -+ 2 * BLOOM_FILTER_CACHE_HIT -+ BLOCK_INDEX_CACHE_HIT -+ BLOCK_CACHE_HIT + DISK_READS -``` - - - -如果在 SQL Audit 中 RT 抖动的请求数据已被淘汰,则需要查看 OBServer 中抖动时间点是否有慢查询的 trace 日志,并分析对应的 trace 日志。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/3.view-and-analyze-the-execution-plan-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/3.view-and-analyze-the-execution-plan-1.md deleted file mode 100644 index 4b20ce007..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/3.view-and-analyze-the-execution-plan-1.md +++ /dev/null @@ -1,17 +0,0 @@ -查看执行计划形状并做分析 -================================= - - - -根据如下步骤查看执行计划形状并做分析: - -1. 通过 `EXPLAIN` 命令查看执行计划形状,或者通过实时执行计划展示查看缓存执行计划。详细信息请参见 [SQL 执行计划简介](../../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/1.introduction-to-sql-execution-plans-2.md)和 [实时执行计划展示](../../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/5.real-time-execution-plan-display-3.md)。 - - - -2. 获得执行计划形状后,可以分析索引、联接顺序、 联接算法等选择是否合理正确。详细信息请参见 [访问路径](../../../../12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/1.overview-16.md)、[联接顺序](../../../../12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/3.join-order-3.md)和 [联接算法](../../../../12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/2.join-algorithm-6.md)。 - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/4.analyze-slow-sql-queries-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/4.analyze-slow-sql-queries-1.md deleted file mode 100644 index 25cce3a4f..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/4.analyze-slow-sql-queries-1.md +++ /dev/null @@ -1,18 +0,0 @@ -分析慢 SQL 查询 -=============================== - - - -如果已知某条 SQL 查询一直比较慢,可以使用如下方式进行分析: - -* 使用 sql_audit 查看统计数据并分析该 SQL 的执行计划。详细步骤请参考示例 - - [分析 RT 突然抖动的 SQL](../../../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/2.sql-statement-that-analyzes-sudden-jitter-of-rt-1.md) 。 - - -* 分析下执行计划是否正确。详细步骤请参考示例 [查看执行计划形状并做分析](../../../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/3.view-and-analyze-the-execution-plan-1.md)。 - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/5.query-sql-traffic-and-query-the-qps-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/5.query-sql-traffic-and-query-the-qps-1.md deleted file mode 100644 index bbd106846..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/5.query-sql-traffic-and-query-the-qps-1.md +++ /dev/null @@ -1,21 +0,0 @@ -查询 SQL 流量分布情况及 QPS -======================================= - - - -运行如下语句可以查询 SQL 流量分布情况及 QPS: - -```sql -obclient>SELECT/*+ PARALLEL(15)*/t2.zone, t1.svr_ip, COUNT(*) AS RPC_COUNT, -AVG(t1.elapsed_time), AVG(t1.queue_time) -FROM oceanbase.gv$sql_audit t1, __all_server t2 -WHERE t1.svr_ip = t2.svr_ip -AND tenant_id = 1001 -AND SQL_ID = 'BF7AA13A28DF50BA5C33FF19F1DBD8A9' -AND IS_EXECUTOR_RPC = 0 -AND request_time > (time_to_usec(now()) - 1000000) -AND request_time < time_to_usec(now()) -GROUP BY t1.svr_ip; -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/6.check-whether-the-sql-request-traffic-is-balanced-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/6.check-whether-the-sql-request-traffic-is-balanced-1.md deleted file mode 100644 index bfcaeb35a..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/6.check-whether-the-sql-request-traffic-is-balanced-1.md +++ /dev/null @@ -1,37 +0,0 @@ -查看集群 SQL 请求流量是否均衡 -====================================== - - - -运行如下语句可以查看集群 SQL 请求流量是否均衡: - -```sql -obclient>SELECT/*+ PARALLEL(15)*/t2.zone, t1.svr_ip, COUNT(*) AS QPS, - AVG(t1.elapsed_time), AVG(t1.queue_time) - FROM oceanbase.gv$sql_audit t1, __all_server t2 - WHERE t1.svr_ip = t2.svr_ip AND IS_EXECUTOR_RPC = 0 - AND request_time > (time_to_usec(now()) - 1000000) - AND request_time < time_to_usec(now()) - GROUP BY t1.svr_ip ORDER BY t2.zone; - -+--------+----------------+------+----------------------+--------------------+ -| zone | svr_ip | QPS | avg(t1.elapsed_time) | avg(t1.queue_time) | -+--------+----------------+------+----------------------+--------------------+ -| ET2_1 | 10.103.224.119 | 379 | 5067.3034 | 33.7071 | -| ET2_1 | 10.103.226.124 | 507 | 5784.1538 | 12.5878 | -| ET2_1 | 10.103.228.177 | 370 | 5958.2162 | 10.9811 | -| ET2_1 | 10.103.229.107 | 356 | 5730.9972 | 39.4185 | -| ET2_1 | 10.103.229.94 | 369 | 5851.7886 | 64.9621 | -| EU13_2 | 10.183.78.113 | 354 | 6182.6384 | 11.3107 | -| EU13_2 | 10.183.78.86 | 349 | 5881.3209 | 10.7393 | -| EU13_2 | 10.183.79.56 | 347 | 5936.0144 | 11.9049 | -| EU13_2 | 10.183.85.152 | 390 | 5988.4846 | 12.0487 | -| EU13_3 | 10.183.76.140 | 284 | 5657.2218 | 11.7993 | -| EU13_3 | 10.183.78.165 | 372 | 5360.6989 | 11.6290 | -| EU13_3 | 10.183.79.198 | 416 | 4154.2861 | 12.2524 | -| EU13_3 | 10.183.86.65 | 446 | 6487.6009 | 24.5112 | -| EU13_3 | 11.180.113.7 | 364 | 5444.4203 | 12.3462 | -+--------+----------------+------+----------------------+--------------------+ -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/7.top-n-sql-statements-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/7.top-n-sql-statements-1.md deleted file mode 100644 index 34314b0d7..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/7.top-n-sql-statements-1.md +++ /dev/null @@ -1,99 +0,0 @@ -查询排名 TOP N 的 SQL -===================================== - - - -查询某段时间内请求次数排在 TOP N 的 SQL ----------------------------------------------- - -运行如下语句可以查询某段时间内请求次数排在 TOP N 的 SQL: - -```sql -obclient>SELECT/*+ PARALLEL(15)*/ SQL_ID, COUNT(*) AS QPS, AVG(t1.elapsed_time) RT - FROM oceanbase.gv$sql_audit t1 WHERE tenant_id = 1001 AND - IS_EXECUTOR_RPC = 0 AND request_time > (time_to_usec(now()) - 10000000) AND - request_time < time_to_usec (now()) - GROUP BY t1.sql_id ORDER BY QPS DESC LIMIT 10; - -+----------------------------------+------+------------+ -| SQL_ID | QPS | RT | -+----------------------------------+------+------------+ -| BF7AA13A28DF50BA5C33FF19F1DBD8A9 | 2523 | 4233.2085 | -| CE7208ADDE365D0AB5E68EE24E5FD730 | 1268 | 5935.8683 | -| E5C7494018989226E69AE7D08B3D0F15 | 1028 | 7275.7490 | -| D0E8D8C937E44BC3BB9A5379AE1064C5 | 1000 | 12999.1640 | -| 2D45D7BE4E459CFBEAE4803971F0C6F9 | 1000 | 8050.6360 | -| C81CE9AA555BE59B088B379CC7AE5B40 | 1000 | 6865.4940 | -| BDC4FE903B414203A04E41C7DDA6627D | 1000 | 12751.8960 | -| B1B136047D7C3B6B9125F095363A9D23 | 885 | 13293.2237 | -| 47993DD69888868E92A7CAB2FDE65380 | 880 | 7282.0557 | -| 05C6279D767C7F212619BF4B659D3BAB | 844 | 11474.5438 | -+----------------------------------+------+------------+ -``` - - - -查询某段时间内平均 RT 排在 TOP N 的 SQL ------------------------------------------------- - -运行如下语句可以查询某段时间内平均 RT 排在 TOP N 的 SQL: - -```sql -obclient>SELECT/*+ PARALLEL(15)*/ SQL_ID, COUNT(*) AS QPS, AVG(t1.elapsed_time) RT - FROM oceanbase.gv$sql_audit t1 - WHERE tenant_id = 1001 AND IS_EXECUTOR_RPC = 0 - AND request_time > (time_to_usec(now()) - 10000000) - AND request_time < time_to_usec(now()) - GROUP BY t1.sql_id ORDER BY RT DESC LIMIT 10; - - -+----------------------------------+------+------------+ -| SQL_ID | QPS | RT | -+----------------------------------+------+------------+ -| 0A3D3DCB3343BBBB10E4B4B9777B77FC | 1 | 53618.0000 | -| A3831961C337545AF5BD1219BE29867A | 1 | 50764.0000 | -| F3DC5EF627DA63AE52044FCE7732267C | 1 | 48497.0000 | -| 39C63F143FDDACAEC090F480789DBCA5 | 1 | 47035.0000 | -| A3BF306B02FF86E76C96C9CEFADBDB7E | 1 | 45553.0000 | -| 7942E8D29BAFBF23EF3E3D29D55F428A | 1 | 45285.0000 | -| 20989A74CC1703664BDE9D6EA7830C24 | 1 | 39143.0000 | -| 80F40791E76C79D3DCD46FEEFFAB338E | 1 | 37654.0000 | -| 07E2FE351E3DD82843E81930B84D3DDE | 1 | 37231.0000 | -| 11B19DB5A1393590ABBE08005C155B2E | 1 | 37139.0000 | -+----------------------------------+------+------------+ -``` - - - -查询所有 SQL 中平均执行时间排在 TOP N 的 SQL ---------------------------------------------------- - -运行如下语句可以查询所有 SQL 中平均执行时间排在 TOP N 的 SQL: - -```sql -obclient>SELECT/*+ PARALLEL(15)*/avg_exe_usec, svr_ip, svr_port, sql_id, plan_id - FROM oceanbase.gv$plan_cache_plan_stat - WHERE tenant_id = 1001 - ORDER BY avg_exe_usec DESC LIMIT 3\G; - -*************************** 1. row *************************** -avg_exe_usec: 9795912 - svr_ip: 10.183.76.140 - svr_port: 2882 - sql_id: C5D91E6C772D1B87C32BB3C9ED1435E1 - plan_id: 4668689 -*************************** 2. row *************************** -avg_exe_usec: 9435052 - svr_ip: 10.103.229.107 - svr_port: 2882 - sql_id: 3B6EFEEC8332EB2A0822A3EA7B769500 - plan_id: 4692858 -*************************** 3. row *************************** -avg_exe_usec: 9335002 - svr_ip: 11.180.113.7 - svr_port: 2882 - sql_id: 3B6EFEEC8332EB2A0822A3EA7B769500 - plan_id: 4683085 -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/8.query-the-top-n-requests-with-the-most-execution-time-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/8.query-the-top-n-requests-with-the-most-execution-time-1.md deleted file mode 100644 index 22436d754..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/8.query-the-top-n-requests-with-the-most-execution-time-1.md +++ /dev/null @@ -1,33 +0,0 @@ -查询某段时间内执行时间排名 TOP N 的请求 -============================================ - - - -运行如下语句可以查询某段时间内执行时间排名 TOP N 的请求: - -```javascript -obclient>SELECT/*+ PARALLEL(15)*/ sql_id, elapsed_time , trace_id - FROM oceanbase.gv$sql_audit - WHERE tenant_id = 1001 - and IS_EXECUTOR_RPC = 0 - and request_time > (time_to_usec(now()) - 10000000) - AND request_time < time_to_usec(now()) - ORDER BY elapsed_time DESC LIMIT 10; - -+----------------------------------+--------------+-------------------------------+ -| sql_id | elapsed_time | trace_id | -+----------------------------------+--------------+-------------------------------+ -| CFA269275E3BB270408747C01F64D837 | 87381 | YB420AB75598-0005634FBED5C5E8 | -| 1979A5B4A27D5C3DBE08F80383FD6EB6 | 83465 | YB420AB74E56-0005634B4B87353B | -| 51248E6C3BB5EF1FC4E8E79CA685723E | 82767 | YB420AB74E56-0005634B4B82E7E1 | -| 249C40E669DFCCE80E3D11446272FA11 | 79919 | YB420A67E27C-00056349549A79D3 | -| BEFAD568C3858D2C2E35F01558CBEC06 | 77210 | YB420A67E4B1-00056345B0F2E97E | -| FB1A6A8BC4125C324A38F91B3808D364 | 75870 | YB420AB74E71-00056347074261E6 | -| 0343A519C0C5BF31C68CB68F63721990 | 75666 | YB420BB47107-00056346A5A631FB | -| B140BB0C671D9B8616FB048544F3B85B | 73902 | YB420A67E56B-00056342A5A4683E | -| 4F9B1D0A3822A3E0DF69DB11ABFBE0EA | 72963 | YB420BB47107-00056346A5AAC5F5 | -| 9963E8D252E6CBA72FBA45AC5790BA11 | 72354 | YB420A67E56B-00056342A5A66089 | -+----------------------------------+--------------+-------------------------------+ -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/9.analyze-whether-the-execution-of-the-system-or-an-sql-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/9.analyze-whether-the-execution-of-the-system-or-an-sql-1.md deleted file mode 100644 index 323a51281..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/4.sql-performance-analysis-example-1/9.analyze-whether-the-execution-of-the-system-or-an-sql-1.md +++ /dev/null @@ -1,18 +0,0 @@ -分析系统或某个 SQL 的执行是否出现大量不合理远程执行请求 -=================================================== - - - -运行如下 SQL 语句能够分析出某段时间内不同类型的计划的执行次数: - -```javascript -obclient>SELECT COUNT(*),plan_type FROM oceanbase.gv$sql_audit WHERE tenant_id = 1001 -AND IS_EXECUTOR_RPC = 0 -AND request_time > (time_to_usec(now()) - 10000000) -AND request_time < time_to_usec(now()) -GROUP BY plan_type ; -``` - - - -一般情况下,如果出现远程执行请求比较多时,可能是由于出现切主或 Proxy 客户端路由不准确。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/4.query-rewrite-3/1.overview-15.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/4.query-rewrite-3/1.overview-15.md deleted file mode 100644 index c3e5305df..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/4.query-rewrite-3/1.overview-15.md +++ /dev/null @@ -1,14 +0,0 @@ -概述 -======================= - -数据库中的查询改写(Query Rewrite)是指将一个 SQL 改写成另外一个更加容易优化的 SQL。 - -OceanBase 数据库所支持的查询改写规则分为基于规则的查询改写和基于代价的查询改写。 - -基于规则的查询改写总是会把 SQL 往"好"的方向进行改写,从而增加该 SQL 的优化空间。一个典型的基于规则的改写是把子查询改写成联接。如果不改写,子查询的执行方式只能是 Nested Loop Join,改写之后,优化器就也可以考虑 Hash Join 和 Merge Join 的执行方式。 - -基于代价的查询改写并不能总是把 SQL 往"好"的方向进行改写,需要使用代价模型来判断。一个典型的基于代价的改写就是 Or-Expansion。 - -在数据库中,一个改写规则通常需要满足特定的条件才能够实现,而且很多规则的改写可以互相作用(一个规则的改写会触发另外一个规则的改写)。OceanBase 数据库把所有基于规则的查询改写分成若干个规则集合。对于每个规则集合,OceanBase 数据库采用迭代的方式进行改写,一直到 SQL 不能被改写为止或者迭代次数达到预先设定的阈值。类似地,对于基于代价的改写规则也是采用这种方式处理。 - -这里需要注意的是,基于代价的改写之后可能又会重新触发基于规则的改写,所以整体上的基于代价的改写和基于规则的改写也会采用这种迭代的方式进行改写。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/4.query-rewrite-3/2.rule-based-query-rewriting-3.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/4.query-rewrite-3/2.rule-based-query-rewriting-3.md deleted file mode 100644 index 5d7ead287..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/4.query-rewrite-3/2.rule-based-query-rewriting-3.md +++ /dev/null @@ -1,700 +0,0 @@ -基于规则的查询改写 -============================== - -基于规则的查询改写方式主要包括子查询相关改写、外联接消除、 -简化条件改写和 -非 SPJ(SELECT PROJECT JOIN)的改写等。 - -子查询相关改写 ----------------- - -优化器对于子查询一般使用嵌套执行的方式,也就是父查询每生成一行数据后,都需要执行一次子查询。使用这种方式需要多次执行子查询,执行效率很低。对于子查询的优化方式,一般会将其改写为联接操作,可大大提高执行效率,主要优点如下: - -* 可避免子查询多次执行。 - - - -* 优化器可根据统计信息选择更优的联接顺序和联接方法。 - - - -* 子查询的联接条件、过滤条件改写为父查询的条件后,优化器可以进行进一步优化,比如条件下压等。 - - - - - - -子查询改写的方式主要包括视图合并、子查询展开和将 ANY/ALL 使用 MAX/MIN 改写等。 - -#### **视图合并** - -视图合并是指将代表一个视图的子查询合并到包含该视图的查询中,视图合并后,有助于优化器增加联接顺序的选择、访问路径的选择以及进一步做其他改写操作,从而选择更优的执行计划。 - -OceanBase 数据库支持对 SPJ 视图进行合并。如下示例为 Q1 改写为 Q2: - -```javascript -obclient>CREATE TABLE t1 (c1 INT, c2 INT); -Query OK, 0 rows affected (0.00 sec) - -obclient>CREATE TABLE t2 (c1 INT PRIMARY KEY, c2 INT); -Query OK, 0 rows affected (0.00 sec) - -obclient>CREATE TABLE t3 (c1 INT PRIMARY KEY, c2 INT); -Query OK, 0 rows affected (0.00 sec) - -Q1: -obclient>SELECT t1.c1, v.c1 - FROM t1, (SELECT t2.c1, t3.c2 - FROM t2, t3 - WHERE t2.c1 = t3.c1) v - WHERE t1.c2 = v.c2; -<==> -Q2: -obclient>SELECT t1.c1, t2.c1 - FROM t1, t2, t3 - WHERE t2.c1 = t3.c1 AND t1.c2 = t3.c2; -``` - - - -如果 Q1 不进行改写,则其联接顺序有以下几种: - -* t1, v(t2,t3) - - - -* t1, v(t3,t2) - - - -* v(t2,t3), t1 - - - -* v(t3,t2), t1 - - - - - - -进行视图合并改写后,可选择的联接顺序有: - -* t1, t2, t3 - - - -* t1, t3, t2 - - - -* t2, t1, t3 - - - -* t2, t3, t1 - - - -* t3, t1, t2 - - - -* t3, t2, t1 - - - - - - -可以看出,进行视图合并后,联接顺序可选择空间增加。对于复杂查询,视图合并后,对路径的选择和可改写的空间均会增大,从而使得优化器可生成更优的计划。 - -#### **子查询展开** - -子查询展开是指将 WHERE 条件中子查询提升到父查询中,并作为联接条件与父查询并列进行展开。转换后子查询将不存在,外层父查询中会变成多表联接。 - -这样改写的好处是优化器在进行路径选择、联接方法和联接排序时都会考虑到子查询中的表,从而可以获得更优的执行计划。涉及的子查询表达式一般有 NOT IN、IN、NOT EXIST、EXIST、ANY、ALL。 - -子查询展开的方式如下: - -* 改写条件使生成的联接语句能够返回与原始语句相同的行。 - - - -* 展开为半联接(SEMI JOIN / ANTI JOIN) - - 如下例所示,t2.c2 不具有唯一性,改为 SEMI JOIN,该语句改写后执行计划为: - - ```javascript - obclient>CREATE TABLE t1 (c1 INT, c2 INT); - Query OK, 0 rows affected (0.17 sec) - - obclient>CREATE TABLE t2 (c1 INT PRIMARY KEY, c2 INT); - Query OK, 0 rows affected (0.01 sec) - - obclient>EXPLAIN SELECT * FROM t1 WHERE t1.c1 IN (SELECT t2.c2 FROM t2)\G; - *************************** 1. row *************************** - Query Plan: - ======================================= - |ID|OPERATOR |NAME|EST. ROWS|COST| - --------------------------------------- - |0 |HASH SEMI JOIN| |495 |3931| - |1 | TABLE SCAN |t1 |1000 |499 | - |2 | TABLE SCAN |t2 |1000 |433 | - ======================================= - - Outputs & filters: - ------------------------------------- - 0 - output([t1.c1], [t1.c2]), filter(nil), - equal_conds([t1.c1 = t2.c2]), other_conds(nil) - 1 - output([t1.c1], [t1.c2]), filter(nil), - access([t1.c1], [t1.c2]), partitions(p0) - 2 - output([t2.c2]), filter(nil), - access([t2.c2]), partitions(p0) - ``` - - - - 将查询前面操作符改为 NOT IN 后,可改写为 ANTI JOIN,具体计划如下例所示: - - ```javascript - obclient>EXPLAIN SELECT * FROM t1 WHERE t1.c1 NOT IN (SELECT t2.c2 FROM t2)\G; - *************************** 1. row *************************** - Query Plan: - ================================================ - |ID|OPERATOR |NAME|EST. ROWS|COST | - ------------------------------------------------ - |0 |NESTED-LOOP ANTI JOIN| |0 |520245| - |1 | TABLE SCAN |t1 |1000 |499 | - |2 | TABLE SCAN |t2 |22 |517 | - ================================================ - - Outputs & filters: - ------------------------------------- - 0 - output([t1.c1], [t1.c2]), filter(nil), - conds(nil), nl_params_([t1.c1], [(T_OP_IS, t1.c1, NULL, 0)]) - 1 - output([t1.c1], [t1.c2], [(T_OP_IS, t1.c1, NULL, 0)]), filter(nil), - access([t1.c1], [t1.c2]), partitions(p0) - 2 - output([t2.c2]), filter([(T_OP_OR, ? = t2.c2, ?, (T_OP_IS, t2.c2, NULL, 0))]), - access([t2.c2]), partitions(p0) - ``` - - - - - - - - -* 子查询展开为内联接 - - 上面示例的 Q1 中如果将 t2.c2 改为 t2.c1,由于 t2.c1 为主键,子查询输出具有唯一性,此时可以直接转换为内联接,如下例所示: - - ```javascript - Q1: - obclient>SELECT * FROM t1 WHERE t1.c1 IN (SELECT t2.c1 FROM t2)\G; - <==> - Q2: - obclient>SELECT t1.* FROM t1, t2 WHERE t1.c1 = t2.c1; - ``` - - - - Q1 改写后的计划如下例所示: - - ```javascript - obclient>EXPLAIN SELECT * FROM t1 WHERE t1.c1 IN (SELECT t2.c1 FROM t2)\G; - *************************** 1. row *************************** - Query Plan: - ==================================== - |ID|OPERATOR |NAME|EST. ROWS|COST| - ------------------------------------ - |0 |HASH JOIN | |1980 |3725| - |1 | TABLE SCAN|t2 |1000 |411 | - |2 | TABLE SCAN|t1 |1000 |499 | - ==================================== - - Outputs & filters: - ------------------------------------- - 0 - output([t1.c1], [t1.c2]), filter(nil), - equal_conds([t1.c1 = t2.c1]), other_conds(nil) - 1 - output([t2.c1]), filter(nil), - access([t2.c1]), partitions(p0) - 2 - output([t1.c1], [t1.c2]), filter(nil), - access([t1.c1], [t1.c2]), partitions(p0) - ``` - - - - 对于 NOT IN、IN、NOT EXIST、EXIST、ANY、ALL 子查询表达式都可以对应做类似的改写操作。 - - - - - -#### **ANY/ALL 使用 MAX/MIN 改写** - -对于 ANY/ALL 的子查询,如果子查询中没有 GROUP BY 子句、聚集函数以及 HAVING 时,以下表达式可以使用聚集函数 MIN/MAX 进行等价转换,其中 `col_item` 为单独列且有非 NULL 属性: - -```sql -val > ALL(SELECT col_item ...) <==> val > ALL(SELECT MAX(col_item) ...); -val >= ALL(SELECT col_item ...) <==> val >= ALL(SELECT MAX(col_item) ...); -val < ALL(SELECT col_item ...) <==> val < ALL(SELECT MIN(col_item) ...); -val <= ALL(SELECT col_item ...) <==> val <= ALL(SELECT MIN(col_item) ...); -val > ANY(SELECT col_item ...) <==> val > ANY(SELECT MIN(col_item) ...); -val >= ANY(SELECT col_item ...) <==> val >= ANY(SELECT MIN(col_item) ...); -val < ANY(SELECT col_item ...) <==> val < ANY(SELECT MAX(col_item) ...); -val <= ANY(SELECT col_item ...) <==> val <= ANY(SELECT MAX(col_item) ...); -``` - - - -将子查询更改为含有 MAX/MIN 的子查询后,再结合使用 MAX/MIN 的改写,可减少改写前对内表的多次扫描,如下例所示: - -```javascript -obclient>SELECT c1 FROM t1 WHERE c1 > ANY(SELECT c1 FROM t2); -<==> -obclient>SELECT c1 FROM t1 WHERE c1 > ANY(SELECT MIN(c1) FROM t2); -``` - - - -结合 MAX/MIN 的改写后,可利用 t2.c1 的主键序将 LIMIT 1 直接下压到 TABLE SCAN,将 MIN 值输出,执行计划如下: - -```javascript -obclient>EXPLAIN SELECT c1 FROM t1 WHERE c1 > ANY(SELECT c1 FROM t2)\G; -*************************** 1. row *************************** -Query Plan: - =================================================== -|ID|OPERATOR |NAME |EST. ROWS|COST| ---------------------------------------------------- -|0 |SUBPLAN FILTER | |1 |73 | -|1 | TABLE SCAN |t1 |1 |37 | -|2 | SCALAR GROUP BY| |1 |37 | -|3 | SUBPLAN SCAN |subquery_table|1 |37 | -|4 | TABLE SCAN |t2 |1 |36 | -=================================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1]), filter([t1.c1 > ANY(subquery(1))]), - exec_params_(nil), onetime_exprs_(nil), init_plan_idxs_([1]) - 1 - output([t1.c1]), filter(nil), - access([t1.c1]), partitions(p0) - 2 - output([T_FUN_MIN(subquery_table.c1)]), filter(nil), - group(nil), agg_func([T_FUN_MIN(subquery_table.c1)]) - 3 - output([subquery_table.c1]), filter(nil), - access([subquery_table.c1]) - 4 - output([t2.c1]), filter(nil), - access([t2.c1]), partitions(p0), - limit(1), offset(nil) -``` - - - - - -外联接消除 --------------- - -外联接操作可分为左外联接、右外联接和全外联接。在联接过程中,由于外联接左右顺序不能变换,优化器对联接顺序的选择会受到限制。外联接消除是指将外联接转换成内联接,从而可以提供更多可选择的联接路径,供优化器考虑。 - -如果进行外联接消除,需要存在"空值拒绝条件",即在 WHERE 条件中存在,当内表生成的值为 NULL 时,输出为 FALSE 的条件。 - -如下例所示: - -```javascript -obclient>SELECT t1.c1, t2.c2 FROM t1 LEFT JOIN t2 ON t1.c2 = t2.c2; -``` - - - -这是一个外联接,在其输出行中 t2.c2 可能为 NULL。如果加上一个条件 ` t2.c2 > 5`,则通过该条件过滤后,t2.c1 输出不可能为 NULL, 从而可以将外联接转换为内联接。 - -```javascript -obclient>SELECT t1.c1, t2.c2 FROM t1 LEFT JOIN t2 ON t1.c2 = t2.c2 WHERE t2.c2 > 5; -<==> -obclient>SELECT t1.c1, t2.c2 FROM t1 LEFT INNER JOIN t2 ON t1.c2 = t2.c2 - WHERE t2.c2 > 5; -``` - - - - - -简化条件改写 ---------------- - -#### HAVING 条件消除 - -如果查询中没有聚集操作及 GROUP BY,则 HAVING 可以合并到 WHERE 条件中,并将 HAVING 条件删除, 从而可以将 HAVING 条件在 WHERE 条件中统一管理,并进行进一步相关优化。 - -```javascript -obclient>SELECT * FROM t1, t2 WHERE t1.c1 = t2.c1 HAVING t1.c2 > 1; -<==> -obclient>SELECT * FROM t1, t2 WHERE t1.c1 = t2.c1 AND t1.c2 > 1; -``` - - - -改写后计划如下例所示, `t1.c2 > 1` 条件被下压到了 TABLE SCAN 层。 - -```javascript -obclient>EXPLAIN SELECT * FROM t1, t2 WHERE t1.c1 = t2.c1 HAVING t1.c2 > 1\G; -*************************** 1. row *************************** -Query Plan: -========================================= -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------------ -|0 |NESTED-LOOP JOIN| |1 |59 | -|1 | TABLE SCAN |t1 |1 |37 | -|2 | TABLE GET |t2 |1 |36 | -========================================= - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil), - conds(nil), nl_params_([t1.c1]) - 1 - output([t1.c1], [t1.c2]), filter([t1.c2 > 1]), - access([t1.c1], [t1.c2]), partitions(p0) - 2 - output([t2.c1], [t2.c2]), filter(nil), - access([t2.c1], [t2.c2]), partitions(p0) -``` - - - -#### **等价关系推导** - -等价关系推导是指利用比较操作符的传递性,推倒出新的条件表达式,从而减少需要处理的行数或者选择到更有效的索引。 - -OceanBase 数据库可对等值联接进行推导,比如 `a = b AND a > 1` 可以推导出 `a = b AND a > 1 AND b > 1`, 如果 b 上有索引,且 `b > 1` 在该索引选择率很低,则可以大大提升访问 b 列所在表的性能。 - -如下例所示,条件 `t1.c1 = t2.c2 AND t1.c1 > 2`,等价推导后为 `t1.c1 = t2.c2 AND t1.c1 > 2 AND t2.c2 > 2`,从计划中可以看到 t2.c2 已下压到 TABLE SCAN,并且使用 t2.c2 对应的索引。 - -```sql -obclient>CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT); -Query OK, 0 rows affected (0.15 sec) - -obclient>CREATE TABLE t2(c1 INT PRIMARY KEY, c2 INT, c3 INT, KEY IDX_c2(c2)); -Query OK, 0 rows affected (0.10 sec) -/*此命令需运行于 MySQL 模式下*/ - -obclient>EXPLAIN EXTENDED_NOADDR SELECT t1.c1, t2.c2 FROM t1, t2 - WHERE t1.c1 = t2.c2 AND t1.c1 > 2\G; -*************************** 1. row *************************** -Query Plan: -========================================== -|ID|OPERATOR |NAME |EST. ROWS|COST| ------------------------------------------- -|0 |MERGE JOIN | |5 |78 | -|1 | TABLE SCAN|t2(IDX_c2)|5 |37 | -|2 | TABLE SCAN|t1 |3 |37 | -========================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t2.c2]), filter(nil), - equal_conds([t1.c1 = t2.c2]), other_conds(nil) - 1 - output([t2.c2]), filter(nil), - access([t2.c2]), partitions(p0), - is_index_back=false, - range_key([t2.c2], [t2.c1]), range(2,MAX ; MAX,MAX), - range_cond([t2.c2 > 2]) - 2 - output([t1.c1]), filter(nil), - access([t1.c1]), partitions(p0), - is_index_back=false, - range_key([t1.c1]), range(2 ; MAX), - range_cond([t1.c1 > 2]) -``` - - - -#### **恒真/假消除** - -对于如下恒真恒假条件可以进行消除: - -* false and expr = 恒 false - - - -* true or expr = 恒 true - - - - - - -如下例所示,对于 `WHERE 0 > 1 AND c1 = 3`,由于 `0 > 1` 使得 AND 恒假, 所以该 SQL 不用执行,可直接返回,从而加快查询的执行。 - -```javascript -obclient>EXPLAIN EXTENDED_NOADDR SELECT * FROM t1 WHERE 0 > 1 AND c1 = 3\G; -*************************** 1. row *************************** -Query Plan: -=================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------ -|0 |TABLE SCAN|t1 |0 |38 | -=================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2]), filter([0], [t1.c1 = 3]), startup_filter([0]), - access([t1.c1], [t1.c2]), partitions(p0), - is_index_back=false, filter_before_indexback[false,false], - range_key([t1.__pk_increment], [t1.__pk_cluster_id], [t1.__pk_partition_id]), - range(MAX,MAX,MAX ; MIN,MIN,MIN)always false -``` - - - - - -非 SPJ 的改写 ------------------- - -#### **冗余排序消除** - -冗余排序消除是指删除 order item 中不需要的项,减少排序开销。以下三种情况可进行排序消除: - -* ORDER BY 表达式列表中有重复列,可进行去重后排序。 - - ```javascript - obclient>SELECT * FROM t1 WHERE c2 = 5 ORDER BY c1, c1, c2, c3 ; - <==> - obclient>SELECT * FROM t1 WHERE c2 = 5 ORDER BY c1, c2, c3; - ``` - - - - - - - - -* ORDER BY 列中存在 where 中有单值条件的列,该列排序可删除。 - - ```javascript - obclient>SELECT * FROM t1 WHERE c2 = 5 ORDER BY c1, c2, c3; - <==> - obclient>SELECT * FROM t1 WHERE c2 = 5 ORDER BY c1, c3; - ``` - - - - - - - - -* 如果本层查询有 ORDER BY 但是没有 LIMIT,且本层查询位于父查询的集合操作中,则 ORDER BY 可消除。因为对两个有序的集合做 UNION 操作,其结果是乱序的。但是如果 ORDER BY 中有 LIMIT,则语义是取最大/最小的 N 个,此时不能消除 ORDER BY,否则有语义错误。 - - ```javascript - obclient>(SELECT c1,c2 FROM t1 ORDER BY c1) UNION (SELECT c3,c4 FROM t2 ORDER BY c3); - <==> - obclient>(SELECT c1,c2 FROM t1) UNION (SELECT c3,c4 FROM t2); - ``` - - - - - - -#### **LIMIT 下压** - -LIMIT 下压改写是指将 LIMIT 下降到子查询中,OceanBase 数据库现在支持在不改变语义的情况下,将 LIMIT 下压到视图(示例 1)及 UNION 对应子查询(示例 2)中。 - -示例 1: - -```sql -obclient>SELECT * FROM (SELECT * FROM t1 ORDER BY c1) a LIMIT 1; -<==> -obclient>SELECT * FROM (SELECT * FROM t1 ORDER BY c1 LIMIT 1) a LIMIT 1; -``` - - - -示例 2: - -```sql -obclient>(SELECT c1,c2 FROM t1) UNION ALL (SELECT c3,c4 FROM t2) LIMIT 5; -<==> -obclient>(SELECT c1,c2 FROM t1 LIMIT 5) UNION ALL (SELECT c3,c4 FROM t2 limit 5) LIMIT 5; -``` - - - -#### **DISTINCT 消除** - -* 如果 select item 中只包含常量,则可以消除 DISTINCT,并加上 LIMIT 1。 - - ```sql - obclient>SELECT DISTINCT 1,2 FROM t1 ; - <==> - obclient>SELECT DISTINCT 1,2 FROM t1 LIMIT 1; - - obclient>CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT); - Query OK, 0 rows affected (0.17 sec) - - obclient>EXPLAIN EXTENDED_NOADDR SELECT DISTINCT 1,2 FROM t1\G; - *************************** 1. row *************************** - Query Plan: - =================================== - |ID|OPERATOR |NAME|EST. ROWS|COST| - ----------------------------------- - |0 |TABLE SCAN|t1 |1 |36 | - =================================== - - Outputs & filters: - ------------------------------------- - 0 - output([1], [2]), filter(nil), - access([t1.c1]), partitions(p0), - limit(1), offset(nil), - is_index_back=false, - range_key([t1.c1]), range(MIN ; MAX)always true - ``` - - - - - - - - -* 如果 select item 中包含确保唯一性约束的列,则 DISTINCT 能够消除,如下示例中 (c1, c2)为主键,可确保 c1、c2 和 c3 唯一性, 从而 DISTINCT 可消除。 - - ```javascript - obclient>CREATE TABLE t2(c1 INT, c2 INT, c3 INT, PRIMARY KEY(c1, c2)); - Query OK, 0 rows affected (0.17 sec) - - obclient>SELECT DISTINCT c1, c2, c3 FROM t2; - <==> - obclient>SELECT c1, c2 c3 FROM t2; - - obclient>EXPLAIN SELECT DISTINCT c1, c2, c3 FROM t2\G; - *************************** 1. row *************************** - Query Plan: - =================================== - |ID|OPERATOR |NAME|EST. ROWS|COST| - ----------------------------------- - |0 |TABLE SCAN|t2 |1000 |455 | - =================================== - - Outputs & filters: - ------------------------------------- - 0 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil), - access([t2.c1], [t2.c2], [t2.c3]), partitions(p0) - ``` - - - - - - -#### **MIN/MAX 改写** - -* 当 MIN/MAX 函数中参数为索引前缀列,且不含 GROUP BY 时,可将该 scalar aggregate 转换为走索引扫描 1 行的情况,如下例所示: - - ```javascript - obclient>CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT, c3 INT, KEY IDX_c2_c3(c2,c3)); - Query OK, 0 rows affected (0.17 sec) - - obclient>SELECT MIN(c2) FROM t1; - <==> - obclient>SELECT MIN(c2) FROM (SELECT c2 FROM t2 ORDER BY c2 LIMIT 1) AS t; - - obclient>EXPLAIN SELECT MIN(c2) FROM t1\G; - *************************** 1. row *************************** - Query Plan: - ================================================== - |ID|OPERATOR |NAME |EST. ROWS|COST| - -------------------------------------------------- - |0 |SCALAR GROUP BY| |1 |37 | - |1 | SUBPLAN SCAN |subquery_table|1 |37 | - |2 | TABLE SCAN |t1(idx_c2_c3) |1 |36 | - ================================================== - - Outputs & filters: - ------------------------------------- - 0 - output([T_FUN_MIN(subquery_table.c2)]), filter(nil), - group(nil), agg_func([T_FUN_MIN(subquery_table.c2)]) - 1 - output([subquery_table.c2]), filter(nil), - access([subquery_table.c2]) - 2 - output([t1.c2]), filter([(T_OP_IS_NOT, t1.c2, NULL, 0)]), - access([t1.c2]), partitions(p0), - limit(1), offset(nil) - ``` - - - - - - - - -* 如果 `SELECT MIN/MAX` 的参数为常量,而且包含 GROUP BY,可以将 MIN/MAX 改为常量,从而减少 MIN/MAX 的计算开销。 - - ```javascript - obclient>SELECT MAX(1) FROM t1 GROUP BY c1; - <==> - obclient>SELECT 1 FROM t1 GROUP BY c1; - - obclient>EXPLAIN EXTENDED_NOADDR SELECT MAX(1) FROM t1 GROUP BY c1\G; - *************************** 1. row *************************** - Query Plan: - =================================== - |ID|OPERATOR |NAME|EST. ROWS|COST| - ----------------------------------- - |0 |TABLE SCAN|t1 |1000 |411 | - =================================== - - Outputs & filters: - ------------------------------------- - 0 - output([1]), filter(nil), - access([t1.c1]), partitions(p0), - is_index_back=false, - range_key([t1.c1]), range(MIN ; MAX)always true - ``` - - - - - - - - -* 如果 `SELECT MIN/MAX` 的参数为常量,而且不含 GROUP BY,可以按照如下示例进行改写,从而走索引只需扫描 1 行。 - - ```javascript - obclient>SELECT MAX(1) FROM t1; - <==> - obclient>SELECT MAX(t.a) FROM (SELECT 1 AS a FROM t1 LIMIT 1) t; - - obclient>EXPLAIN EXTENDED_NOADDR SELECT MAX(1) FROM t1\G; - *************************** 1. row *************************** - Query Plan: - ================================================== - |ID|OPERATOR |NAME |EST. ROWS|COST| - -------------------------------------------------- - |0 |SCALAR GROUP BY| |1 |37 | - |1 | SUBPLAN SCAN |subquery_table|1 |37 | - |2 | TABLE SCAN |t1 |1 |36 | - ================================================== - - Outputs & filters: - ------------------------------------- - 0 - output([T_FUN_MAX(subquery_table.subquery_col_alias)]), filter(nil), - group(nil), agg_func([T_FUN_MAX(subquery_table.subquery_col_alias)]) - 1 - output([subquery_table.subquery_col_alias]), filter(nil), - access([subquery_table.subquery_col_alias]) - 2 - output([1]), filter(nil), - access([t1.c1]), partitions(p0), - limit(1), offset(nil), - is_index_back=false, - range_key([t1.c1]), range(MIN ; MAX)always true - ``` - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/4.query-rewrite-3/3.cost-based-query-rewriting-3.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/4.query-rewrite-3/3.cost-based-query-rewriting-3.md deleted file mode 100644 index ac9e52ca4..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/4.query-rewrite-3/3.cost-based-query-rewriting-3.md +++ /dev/null @@ -1,244 +0,0 @@ -基于代价的查询改写 -============================== - -OceanBase 数据库目前只支持一种基于代价的查询改写------或展开(OR-EXPANSION)。 - -数据库中很多高级的改写规则(例如 complex view merge 和窗口函数改写)都需要基于代价进行改写,OceanBase 数据库后续版本会支持这些复杂的改写规则。 - -或展开(OR-EXPANSION) --------------------------- - -OR-EXPANSION 是将一个查询改写成若干个用 UNION 组成的子查询,可以为每个子查询提供更优的优化空间,但是也会导致多个子查询的执行,所以这个改写需要基于代价去判断。 - -OR-EXPANSION 的改写主要有如下三个作用: - -* 允许每个分支使用不同的索引来加速查询。 - - 如下例所示,Q1 会被改写成 Q2 的形式,其中 Q2 中的谓词 `LNNVL(t1.a = 1)` 保证了这两个子查询不会生成重复的结果。如果不进行改写,Q1 一般来说会选择主表作为访问路径,对于 Q2 来说,如果 t1 上存在索引(a)和索引(b),那么该改写可能会让 Q2 中的每一个子查询选择索引作为访问路径。 - - ```javascript - Q1: - obclient>SELECT * FROM t1 WHERE t1.a = 1 OR t1.b = 1; - Q2: - obclient>SELECT * FROM t1 WHERE t1.a = 1 UNION ALL SELECT * FROM t1.b = 1 - AND LNNVL(t1.a = 1); - ``` - - - - 完整示例如下: - - ```javascript - obclient>CREATE TABLE t1(a INT, b INT, c INT, d INT, e INT, INDEX IDX_a(a), - INDEX IDX_b(b)); - Query OK, 0 rows affected (0.17 sec) - - /*如果不进行 OR-EXPANSION 的改写,该查询只能使用主表访问路径*/ - obclient> EXPLAIN SELECT/*+NO_REWRITE()*/ * FROM t1 WHERE t1.a = 1 OR t1.b = 1; - +--------------------------------------------------------------+ - | Query Plan | - +--------------------------------------------------------------+ - | =================================== - |ID|OPERATOR |NAME|EST. ROWS|COST| - ----------------------------------- - |0 |TABLE SCAN|t1 |4 |649 | - =================================== - - Outputs & filters: - ------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c], [t1.d], [t1.e]), filter([t1.a = 1 OR t1.b = 1]), - access([t1.a], [t1.b], [t1.c], [t1.d], [t1.e]), partitions(p0) - - /*改写之后,每个子查询能使用不同的索引访问路径*/ - obclient>EXPLAIN SELECT * FROM t1 WHERE t1.a = 1 OR t1.b = 1; - +------------------------------------------------------------------------+ - | Query Plan | - +------------------------------------------------------------------------+ - | ========================================= - |ID|OPERATOR |NAME |EST. ROWS|COST| - ----------------------------------------- - |0 |UNION ALL | |3 |190 | - |1 | TABLE SCAN|t1(idx_a)|2 |94 | - |2 | TABLE SCAN|t1(idx_b)|1 |95 | - ========================================= - - Outputs & filters: - ------------------------------------- - 0 - output([UNION(t1.a, t1.a)], [UNION(t1.b, t1.b)], [UNION(t1.c, t1.c)], [UNION(t1.d, t1.d)], [UNION(t1.e, t1.e)]), filter(nil) - 1 - output([t1.a], [t1.b], [t1.c], [t1.d], [t1.e]), filter(nil), - access([t1.a], [t1.b], [t1.c], [t1.d], [t1.e]), partitions(p0) - 2 - output([t1.a], [t1.b], [t1.c], [t1.d], [t1.e]), filter([lnnvl(t1.a = 1)]), - access([t1.a], [t1.b], [t1.c], [t1.d], [t1.e]), partitions(p02 - ``` - - - - - - - - -* 允许每个分支使用不同的连接算法来加速查询,避免使用笛卡尔联接。 - - 如下例所示,Q1 会被改写成 Q2 的形式。对于 Q1 来说,它的联接方式只能是 NESTED LOOP JOIN (笛卡尔乘积), 但是被改写之后,每个子查询都可以选择 NESTED LOOP JOIN、HASH JOIN 或者 MERGE JOIN,这样会有更多的优化空间。 - - ```javascript - Q1: - obclient>SELECT * FROM t1, t2 WHERE t1.a = t2.a OR t1.b = t2.b; - - Q2: - obclient>SELECT * FROM t1, t2 WHERE t1.a = t2.a UNION ALL - SELECT * FROM t1, t2 WHERE t1.b = t2.b AND LNNVL(t1.a = t2.a); - ``` - - - - 完整示例如下: - - ```javascript - obclient> CREATE TABLE t1(a INT, b INT); - Query OK, 0 rows affected (0.17 sec) - - obclient> CREATE TABLE t2(a INT, b INT); - Query OK, 0 rows affected (0.13 sec) - - /*如果不进行改写,只能使用 NESTED LOOP JOIN*/ - obclient> EXPLAIN SELECT/*+NO_REWRITE()*/ * FROM t1, t2 - WHERE t1.a = t2.a OR t1.b = t2.b; - +--------------------------------------------------------------------------+ - | Query Plan | - +--------------------------------------------------------------------------+ - | =========================================== - |ID|OPERATOR |NAME|EST. ROWS|COST | - ------------------------------------------- - |0 |NESTED-LOOP JOIN| |3957 |585457| - |1 | TABLE SCAN |t1 |1000 |499 | - |2 | TABLE SCAN |t2 |4 |583 | - =========================================== - - Outputs & filters: - ------------------------------------- - 0 - output([t1.a], [t1.b], [t2.a], [t2.b]), filter(nil), - conds(nil), nl_params_([t1.a], [t1.b]) - 1 - output([t1.a], [t1.b]), filter(nil), - access([t1.a], [t1.b]), partitions(p0) - 2 - output([t2.a], [t2.b]), filter([? = t2.a OR ? = t2.b]), - access([t2.a], [t2.b]), partitions(p0) - - /*被改写之后,每个子查询都使用了 HASH JOIN*/ - obclient> EXPLAIN SELECT * FROM t1, t2 WHERE t1.a = t2.a OR t1.b = t2.b; - +--------------------------------------------------------------------------+ - | Query Plan | - +--------------------------------------------------------------------------+ - |ID|OPERATOR |NAME|EST. ROWS|COST| - ------------------------------------- - |0 |UNION ALL | |2970 |9105| - |1 | HASH JOIN | |1980 |3997| - |2 | TABLE SCAN|t1 |1000 |499 | - |3 | TABLE SCAN|t2 |1000 |499 | - |4 | HASH JOIN | |990 |3659| - |5 | TABLE SCAN|t1 |1000 |499 | - |6 | TABLE SCAN|t2 |1000 |499 | - ===================================== - - Outputs & filters: - ------------------------------------- - 0 - output([UNION(t1.a, t1.a)], [UNION(t1.b, t1.b)], [UNION(t2.a, t2.a)], [UNION(t2.b, t2.b)]), filter(nil) - 1 - output([t1.a], [t1.b], [t2.a], [t2.b]), filter(nil), - equal_conds([t1.a = t2.a]), other_conds(nil) - 2 - output([t1.a], [t1.b]), filter(nil), - access([t1.a], [t1.b]), partitions(p0) - 3 - output([t2.a], [t2.b]), filter(nil), - access([t2.a], [t2.b]), partitions(p0) - 4 - output([t1.a], [t1.b], [t2.a], [t2.b]), filter(nil), - equal_conds([t1.b = t2.b]), other_conds([lnnvl(t1.a = t2.a)]) - 5 - output([t1.a], [t1.b]), filter(nil), - access([t1.a], [t1.b]), partitions(p0) - 6 - output([t2.a], [t2.b]), filter(nil), - access([t2.a], [t2.b]), partitions(p0) - ``` - - - - - - - - -* 允许每个分支分别消除排序,更加快速的获取 TOP-K 结果。 - - 如下例所示,Q1 会被改写成 Q2。对于 Q1 来说,执行方式是只能把满足条件的行数找出来,然后进行排序,最终取 TOP-10 结果。对于 Q2 来说,如果存在索引(a,b), 那么 Q2 中的两个子查询都可以使用索引把排序消除,每个子查询取 TOP-10 结果,然后最终对这 20 行数据排序一下取出最终的 TOP-10 行。 - - ```javascript - Q1: - obclient>SELECT * FROM t1 WHERE t1.a = 1 OR t1.a = 2 ORDER BY b LIMIT 10; - - Q2: - obclient>SELECT * FROM - (SELECT * FROM t1 WHERE t1.a = 1 ORDER BY b LIMIT 10 UNION ALL - SELECT * FROM t1 WHERE t1.a = 2 ORDER BY b LIMIT 10) AS TEMP - ORDER BY temp.b LIMIT 10; - ``` - - - - 完整示例如下: - - ```javascript - obclient> CREATE TABLE t1(a INT, b INT, INDEX IDX_a(a, b)); - Query OK, 0 rows affected (0.20 sec) - - /*不改写的话,需要排序最终获取 TOP-K 结果*/ - obclient> EXPLAIN SELECT/*+NO_REWRITE()*/ * FROM t1 WHERE t1.a = 1 OR t1.a = 2 - ORDER BY b LIMIT 10; - +-------------------------------------------------------------------------+ - | Query Plan | - +-------------------------------------------------------------------------+ - | ========================================== - |ID|OPERATOR |NAME |EST. ROWS|COST| - ------------------------------------------ - |0 |LIMIT | |4 |77 | - |1 | TOP-N SORT | |4 |76 | - |2 | TABLE SCAN|t1(idx_a)|4 |73 | - ========================================== - - Outputs & filters: - ------------------------------------- - 0 - output([t1.a], [t1.b]), filter(nil), limit(10), offset(nil) - 1 - output([t1.a], [t1.b]), filter(nil), sort_keys([t1.b, ASC]), topn(10) - 2 - output([t1.a], [t1.b]), filter(nil), - access([t1.a], [t1.b]), partitions(p0) - - /* 进行改写的话,排序算子可以被消除,最终获取 TOP-K 结果*/ - obclient>EXPLAIN SELECT * FROM t1 WHERE t1.a = 1 OR t1.a = 2 - ORDER BY b LIMIT 10; - +-------------------------------------------------------------------------+ - | Query Plan | - +-------------------------------------------------------------------------+ - | =========================================== - |ID|OPERATOR |NAME |EST. ROWS|COST| - ------------------------------------------- - |0 |LIMIT | |3 |76 | - |1 | TOP-N SORT | |3 |76 | - |2 | UNION ALL | |3 |74 | - |3 | TABLE SCAN|t1(idx_a)|2 |37 | - |4 | TABLE SCAN|t1(idx_a)|1 |37 | - =========================================== - - Outputs & filters: - ------------------------------------- - 0 - output([UNION(t1.a, t1.a)], [UNION(t1.b, t1.b)]), filter(nil), limit(10), offset(nil) - 1 - output([UNION(t1.a, t1.a)], [UNION(t1.b, t1.b)]), filter(nil), sort_keys([UNION(t1.b, t1.b), ASC]), topn(10) - 2 - output([UNION(t1.a, t1.a)], [UNION(t1.b, t1.b)]), filter(nil) - 3 - output([t1.a], [t1.b]), filter(nil), - access([t1.a], [t1.b]), partitions(p0), - limit(10), offset(nil) - 4 - output([t1.a], [t1.b]), filter([lnnvl(t1.a = 1)]), - access([t1.a], [t1.b]), partitions(p0), - limit(10), offset(nil) - ``` - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/1.overview-16.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/1.overview-16.md deleted file mode 100644 index c112921d1..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/1.overview-16.md +++ /dev/null @@ -1,47 +0,0 @@ -概述 -======================= - -访问路径是指数据库中访问表的方法,即使用哪个索引来访问表。 - -访问路径的分析是单表查询的最重要的问题之一,对于使用主表扫描的访问路径来说,执行时间一般与需要扫描的数据量(范围)成正比。一般来说,可以使用 `EXPLAIN EXTENDED` 命令,将表扫描的范围段展示出来。对于有合适索引的查询,使用索引可以大大减小数据的访问量,因此对于使用主表扫描的查询,要分析没有选中索引扫描的原因,是由于不存在可用的索引,还是索引扫描范围过大以至于代价过高。 - -OceanBase 数据库的路径选择方法融合了基于规则的路径选择方法和基于代价的路径选择方法。OceanBase 数据库首先会使用基于规则的路径选择方法,如果基于规则的路径选择方法之后只有一个可选择的路径,那么就直接使用该路径,否则就再使用基于代价的路径选择方法选择一个代价最小的路径。 - -在 OceanBase 数据库中,用户可以通过 HINT 来指定访问路径。访问路径的 HINT 形式如下: `/+INDEX(table_name index_name)/` - -其中 `table_name` 表示表的名字,`index_name` 表示索引的名字。如果 `index_name` 是 PRIMARY,代表选择主表扫描路径。 - -如下为用 HINT 来指定访问路径的示例: - -```javascript -obclient>CREATE TABLE t1(a INT PRIMARY KEY, b INT, c INT, d INT, INDEX k1(b,c)); -Query OK, 0 rows affected (0.10 sec) - -obclient>EXPLAIN SELECT/*+INDEX(t1 PRIMARY)*/ * FROM t1; -| =================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------ -|0 |TABLE SCAN|t1 |1000 |476 | -=================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c], [t1.d]), filter(nil), - access([t1.a], [t1.b], [t1.c], [t1.d]), partitions(p0) - - -obclient>EXPLAIN SELECT/*+INDEX(t1 k1)*/ * FROM t1; -| ===================================== -|ID|OPERATOR |NAME |EST. ROWS|COST| -------------------------------------- -|0 |TABLE SCAN|t1(k1)|1000 |5656| -===================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c], [t1.d]), filter(nil), - access([t1.a], [t1.b], [t1.c], [t1.d]), partitions(p0) -``` - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/2.rule-based-path-selection-3.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/2.rule-based-path-selection-3.md deleted file mode 100644 index 42850af49..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/2.rule-based-path-selection-3.md +++ /dev/null @@ -1,325 +0,0 @@ -基于规则的路径选择 -============================== - -本文主要介绍 OceanBase 数据库路径选择的规则体系。 - -目前 OceanBase 数据库路径选择的规则体系分为前置规则(正向规则)和 Skyline 剪枝规则(反向规则)。前置规则直接决定了一个查询使用什么样的索引,是一个强匹配的规则体系。 - -Skyline 剪枝规则会比较两个索引,如果一个索引在一些定义的维度上优于(dominate)另外一个索引,那么不优的索引会被剪掉,最后没有被剪掉的索引会进行代价比较,从而选出最优的计划。 - -目前 OceanBase 数据库的优化器会优先使用前置规则选择索引,如果没有匹配的索引,那么 Skyline 剪枝规则会剪掉一些不优的索引,最后代价模型会在没有被剪掉的索引中选择代价最低的路径。 - -如下例所示,OceanBase 数据库的计划展示中会输出相应的路径选择的规则信息。 - -```javascript -obclient>CREATE TABLE t1(a INT PRIMARY KEY, b INT, c INT, d INT, e INT, - UNIQUE INDEX k1(b), INDEX k2(b,c), INDEX k3(c,d)); -Query OK, 0 rows affected (0.38 sec) - -obclient> EXPLAIN EXTENDED SELECT * FROM t1 WHERE b = 1; -+-----------------------------------------------------------------+ -| Query Plan | -+-----------------------------------------------------------------+ -| ===================================== -|ID|OPERATOR |NAME |EST. ROWS|COST| -------------------------------------- -|0 |TABLE SCAN|t1(k1)|2 |94 | -===================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.a(0x7f3178058bf0)], [t1.b(0x7f3178058860)], [t1.c(0x7f3178058f80)], [t1.d(0x7f3178059310)], [t1.e(0x7f31780596a0)]), filter(nil), - access([t1.b(0x7f3178058860)], [t1.a(0x7f3178058bf0)], [t1.c(0x7f3178058f80)], [t1.d(0x7f3178059310)], [t1.e(0x7f31780596a0)]), partitions(p0), - is_index_back=true, - range_key([t1.b(0x7f3178058860)], [t1.shadow_pk_0(0x7f31780784b8)]), range(1,MIN ; 1,MAX), - range_cond([t1.b(0x7f3178058860) = 1(0x7f31780581d8)]) -Optimization Info: -------------------------------------- -t1:optimization_method=rule_based, heuristic_rule=unique_index_with_indexback - - -obclient> EXPLAIN EXTENDED SELECT * FROM t1 WHERE c < 5 ORDER BY c; -+-----------------------------------------------------------------+ -| Query Plan | -+-----------------------------------------------------------------+ -| ==================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------- -|0 |SORT | |200 |1054| -|1 | TABLE SCAN|t1 |200 |666 | -==================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.a(0x7f3178059220)], [t1.b(0x7f31780595b0)], [t1.c(0x7f3178058e90)], [t1.d(0x7f3178059940)], [t1.e(0x7f3178059cd0)]), filter(nil), sort_keys([t1.c(0x7f3178058e90), ASC]) - 1 - output([t1.c(0x7f3178058e90)], [t1.a(0x7f3178059220)], [t1.b(0x7f31780595b0)], [t1.d(0x7f3178059940)], [t1.e(0x7f3178059cd0)]), filter([t1.c(0x7f3178058e90) < 5(0x7f3178058808)]), - access([t1.c(0x7f3178058e90)], [t1.a(0x7f3178059220)], [t1.b(0x7f31780595b0)], [t1.d(0x7f3178059940)], [t1.e(0x7f3178059cd0)]), partitions(p0), - is_index_back=false, filter_before_indexback[false], - range_key([t1.a(0x7f3178059220)]), range(MIN ; MAX)always true -t1:optimization_method=cost_based, avaiable_index_name[t1,k3], pruned_index_name[k1,k2] -``` - - - -其中 optimization_method 展示了具体的规则信息,它有以下两种形式: - -* 如果 `optimization_method=rule_based`, 那么就是命中了前置规则,同时会展示出具体命中的规则名称,unique_index_with_indexback 表示命中了前置规则的第三条规则(唯一性索引全匹配+回表+回表数量少于一定的阈值)。 - - - -* 如果 `optimization_method=cost_based`, 那么就是基于代价选择出来的,同时会展示出来 Skyline 剪枝规则剪掉了那些访问路径(pruned_index_name)以及剩下了那些访问路径(avaiable_index_name)。 - - - - - - -前置规则 -------------- - -目前 OceanBase 数据库的前置规则只用于简单的单表扫描。因为前置规则是一个强匹配的规则体系,一旦命中,就直接选择命中的索引,所以要限制它的使用场景,以防选错计划。 - -目前 OceanBase 数据库根据"查询条件是否能覆盖所有索引键"和"使用该索引是否需要回表"这两个信息,将前置规则按照优先级划分成如下三种匹配类型: - -* 匹配"唯一性索引全匹配+不需要回表(主键被当成唯一性索引来处理)",则选择该索引。如果存在多个这样的索引,选择索引列数最小的一个。 - - - - - - - - -* 匹配"普通索引全匹配+不需要回表",则选择该索引。如果存在多个这样的索引,选择索引列数最小的一个。 - - - -* 匹配"唯一性索引全匹配+回表+回表数量少于一定的阈值",则选择该索引。如果存在多个这样的索引,选择回表数量最小的一个。 - - - - - - -这里需要注意的是,索引全匹配是指在索引键上都存在等值条件(对应于 get 或者 multi-get)。 - -如下示例中,查询 Q1 命中了索引 uk1(唯一性索引全匹配+不需要回表);查询 Q2 命中了索引 uk2(唯一性索引全匹配+回表+回表行数最多 4 行)。 - -```javascript -obclient>CREATE TABLE test(a INT PRIMARY KEY, b INT, c INT, d INT, e INT, - UNIQUE KEY UK1(b,c), UNIQUE KEY UK2(c,d) ); -Query OK, 0 rows affected (0.38 sec) - -Q1: -obclient>SELECT b,c FROM test WHERE (b = 1 OR b = 2) AND (c = 1 OR c =2); - -Q2: -obclient>SELECT * FROM test WHERE (c = 1 OR c =2) OR (d = 1 OR d = 2); -``` - - - -Skyline 剪枝规则 ---------------------- - -Skyline 算子是学术界在 2001 年提出的一个新的数据库算子(它并不是标准的 SQL 算子)。自此之后,学术界对 Skyline 算子有大量的研究(包括语法、语义和执行等)。 - -Skyline 从字面上的理解是指天空中的一些边际点,这些点组成搜索空间中最优解的集合。例如要寻找价格最低并且路途最短的一家旅馆,想象一个二维空间,有两个维度,横轴表示价格,纵轴表示距离,二维空间上的每个点表示一个旅馆。 - -如下图所示,不论最后的选择如何,最优解肯定是在这一条天空的边际线上。假设点 A 不在 Skyline 上,那么肯定能够在 Skyline 上找到在两个维度上都比 A 更优的点 B,在这个场景中就是距离更近,价格更便宜的旅馆,称为点 B dominate A。所以 Skyline 一个重要应用场景就是用户没办法去衡量多个维度的比重,或者多个维度不能综合量化(如果可以综合量化,使用 "SQL 函数+ ORDER BY "就可以解决了)。 - -![image](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/1248744061/p167291.png "image") - -Skyline 操作是在给定对象集 O 中找出不被别的对象所 dominate 的对象集合。若一个对象 A 在所有维度都不被另一个对象 B 所 dominate,并且 A 至少在一个维度上 dominate B,则称 A dominate B。所以在 Skyline 操作中比较重要的是维度的选择以及在每个维度上的 dominate 的关系定义。假设有 N 个索引的路径 `` 可以供优化器选择,如果对于查询 Q,索引 idx_x 在定义的维度上 dominate 索引 idx_y,那就可以提前把索引 idx_y 剪掉,不让它参与最终代价的运算。 - -维度的定义 --------------- - -针对 Skyline 剪枝,对每个索引(主键也是一种索引)定义了如下三个维度: - -* 是否回表 - - - -* 是否存在 intersting order - - - -* 索引前缀能否抽取 query range - - - - - - -通过如下示例进行分析: - -```javascript - obclient> CREATE TABLE skyline( - pk INT PRIMARY KEY, a INT, b INT, c INT, - KEY idx_a_b(a, b), - KEY idx_b_c(b, c), - KEY idx_c_a(c, a)); -Query OK, 0 rows affected (0.09 sec) -``` - - - -* 回表:该查询是否需要需要回查主表。 - - ```javascript - /* 走索引 idx_a_b 的话就需要回查主表,因为索引 idx_a_b 没有 c 列*/ - obclient>SELECT /*+INDEX(skyline idx_a_b)*/ * FROM skyline; - ``` - - - - - - - - -* interesting order: 考虑是否有合适的序可以利用。 - - ```javascript - /* 索引 idx_b_c 可以把 ORDER BY 语句消除*/ - obclient>SELECT pk, b FROM skyline ORDER BY b; - ``` - - - - - - - - -* 索引前缀能否抽取 query range。 - - ```javascript - /*可以看到走索引 idx_c_a 就可以快速定位到需要的行的范围,不用全表扫描*/ - obclient>SELECT pk, b FROM skyline WHERE c > 100 AND c < 2000; - ``` - - - - - - -基于这三个维度,定义了索引之间的 dominate 关系,如果索引 A 在三个维度上都不比索引 B 差,并且其中至少有一个维度比 B 好,那么就可以直接把 B 索引剪掉,因为基于索引 B 最后生成的计划肯定不会比索引 A 好。 - -* 如果索引 idx_A 不需要回表,而索引 idx_B 需要回表,那么在这个维度上索引 idx_A dominate idx_B。 - - - -* 如果在索引 idx_A上抽取出来的 intersting order 是向量 `Va`, 在索引 idx_B 上抽出来的interesting order 是向量 `Vb`, 如果 `n > m` , 并且对于`ai = bi (i=1..m`), 那么在这个维度上索引 idx_A dominate idx_B。 - - - -* 如果在索引 idx_A 能用来抽取的 query range 的列集合是 `Sa`,在索引 idx_B 上能用来抽取 query range 的列集合是 `Sb `, 如果 Sa 是 Sb 的 super set, 那么在这个维度上索引 idx_A dominate idx_B。 - - - - - - -#### **回表** - -这个维度初看比较简单,就是查询所需列是否在索引中。其中,一些案例需要特殊考虑,例如当主表和索引表都没有 interesting order 和抽取不了 query range 的情况下,直接走主表不一定是最优解。 - -```javascript -obclient>CREATE TABLE t1( - pk INT PRIMARY KEY, a INT, b INT, c INT, v1 VARCHAR(1000), - v2 VARCHAR(1000), v3 VARCHAR(1000), v4 VARCHAR(1000),INDEX idx_a_b(a, b)); -Query OK, 0 rows affected (0.09 sec) - -obclient>SELECT a, b,c FROM t1 WHERE b = 100; -``` - - - - -| **索引** | **Index Back** | **Interesting Order** | **Query Range** | -|---------|----------------|-----------------------|-----------------| -| primary | no | no | no | -| idx_a_b | yes | no | no | - - - -主表很宽,而索引表很窄,虽然从维度上主表 dominate 索引 idx_a_b,然而,索引扫描加回表的代价不一定会比主表全表扫描来的慢。简单来说,索引表可能只需要读一个宏块,而主表可能需要十个宏块。这种情况下,需要对规则做一些放宽,考虑具体的过滤条件。 - -#### **Interesting Order** - -优化器通过 Interesting Order 利用底层的序,就不需要对底层扫描的行做排序,还可以消除 ORDER BY,进行 MERGE GROUP BY,提高 Pipeline(不需要进行物化)等。 - -```javascript -obclient>CREATE TABLE skyline( - pk INT PRIMARY KEY, v1 INT, v2 INT, v3 INT, v4 INT, v5 INT, - KEY idx_v1_v3_v5(v1, v3, v5), - KEY idx_v3_v4(v3, v4)); -Query OK, 0 rows affected (0.10 sec) - -obclient>CREATE TABLE tmp (c1 INT PRIMARY KEY, c2 INT, c3 INT); -Query OK, 0 rows affected (0.06 sec) - -obclient>(SELECT DISTINCT v1, v3 FROM skyline JOIN tmp WHERE skyline.v1 = tmp.c1 - ORDER BY v1, v3) UNION (SELECT c1, c2 FROM tmp); -``` - - - - - -![image](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/1248744061/p167292.png "image") - -从执行计划可以看到,ORDER BY 被消除了,同时使用了 MERGE DISTINCT,UNION 也没有做 SORT。可以看到,从底层 TABLE SCAN 吐出来的序,可以被上层的算子使用。换句话说,保留 idx_v1_v3_v5 吐出来的行的顺序,可以让后面的算子在保序的情况下执行更优的操作。优化器在识别这些序的情况下,才能生成更优的执行计划。 - -所以 Skyline 剪枝对 interesting order 的判断,需要充分考虑各个索引能够最大利用的序。例如上述最大的序其实是 `v1,v3` 而不仅仅是 v1,它从 MERGE JOIN 吐出来的序(v1, v3) 可以到 MERGE DISINCT 算子, 再到最后的 UNISON DISTINCT 算子。 - -#### **Query Range** - -Query range 的抽取可以方便底层直接根据抽取出来的 range 定位到具体的宏块,而从减少存储层的 IO。 - -例如 `SELECT * FROM t1 WHERE pk < 100 AND pk > 0 `就可以直接根据一级索引的信息定位到具体的宏块,加速查询,越精确的 query range 能够让数据库扫描更少的行。 - -```javascript -obclient> CREATE TABLE t1 ( - pk INT PRIMARY KEY, a INT, b INT,c INT, - KEY idx_b_c(b, c), - KEY idx_a_b(a, b)); -Query OK, 0 rows affected (0.12 sec) - -obclient>SELECT b FROM t1 WHERE a = 100 AND b > 2000; -``` - - - -对于索引 idx_b_c 它能抽出 query range 的索引前缀是 (b),对于索引 idx_a_b 它能抽出 query range 的索引前缀是 (a, b),所以在这个维度上,索引 idx_a_b dominate idx_b_c。 - -综合举例 -------------- - -```javascript -obclient>CREATE TABLE skyline( - pk INT PRIMARY KEY, v1 INT, v2 INT, v3 INT, v4 INT, v5 INT, - KEY idx_v1_v3_v5(v1, v3, v5), - KEY idx_v3_v4(v3, v4)); -Query OK, 0 rows affected (0.10 sec) - -obclient>CREATE TABLE tmp (c1 INT PRIMARY KEY, c2 INT, c3 INT); -Query OK, 0 rows affected (0.06 sec) - -obclient>SELECT MAX(v5) FROM skyline WHERE v1 = 100 AND v3 > 200 GROUP BY v1; -``` - - - - -| **索引** | **Index Back** | **Interesting order** | **Query range** | -|--------------|----------------|-----------------------|-----------------| -| primary | Not need | No | No | -| idx_v1_v3_v5 | Not need | (v1) | (v1, v3) | -| idx_v3_v4 | Need | No | (v3) | - - - -可以看到索引 idx_v1_v3_v5 在三个维度上都不比主键索引或索引 idx_v3_v4 差。所以在规则系统下,会直接剪掉主键索引和索引 idx_v3_v4。维度的合理定义,决定了 Skyline 剪枝是否合理。错误的维度,将会导致该索引提前被剪掉,从而导致永远生成不了最优的计划。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/3.cost-based-path-selection-3.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/3.cost-based-path-selection-3.md deleted file mode 100644 index 8739470ff..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/3.cost-based-path-selection-3.md +++ /dev/null @@ -1,114 +0,0 @@ -基于代价的路径选择 -============================== - -在基于规则的路径选择之后,如果存在多个可以选择的路径,那么 OceanBase 数据库会计算每个路径的代价,并从中选择代价最小的路径作为最终选择的路径。 - -OceanBase 数据库的代价模型考虑了 CPU 代价(比如处理一个谓词的 CPU 开销)和 IO 代价(比如顺序、随机读取宏块和微块的代价),CPU 代价和 IO 代价最终相加得到一个总的代价。 - -在 OceanBase 数据库中,每个访问路径的代价会在执行计划中都会展示出来。如下例所示: - -```javascript -obclient>CREATE TABLE t1(a INT PRIMARY KEY, b INT, c INT, INDEX k1(b)); -Query OK, 0 rows affected (0.35 sec) - -/*主表路径的代价*/ -obclient>EXPLAIN SELECT/*+INDEX(t1 PRIMARY)*/ * FROM t1 WHERE b < 10; -+-----------------------------------------------------------------+ -| Query Plan | -+-----------------------------------------------------------------+ -| =================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------ -|0 |TABLE SCAN|t1 |200 |622 | -=================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c]), filter([t1.b < 10]), - access([t1.b], [t1.a], [t1.c]), partitions(p0) - -/* k1 路径的代价*/ -obclient> EXPLAIN SELECT/*+INDEX(t1 k1)*/ * FROM t1 WHERE b < 10; -+--------------------------------------------------------------------+ -| Query Plan | -+--------------------------------------------------------------------+ -| ===================================== -|ID|OPERATOR |NAME |EST. ROWS|COST| -------------------------------------- -|0 |TABLE SCAN|t1(k1)|200 |1114| -===================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c]), filter(nil), - access([t1.b], [t1.a], [t1.c]), partitions(p0) -``` - - - -对于一个访问路径,它的代价主要由扫描访问路径的代价和回表的代价两部分组成。如果一个访问路径不需要回表,那么就没有回表的代价。 - -在 OceanBase 数据库中,访问路径的代价取决于很多因素,比如扫描的行数、回表的行数、投影的列数和谓词的个数等。但是对于访问路径来说,代价在很大程度上取决于行数,所以在下面的示例分析中,从行数这个维度来介绍这两部分的代价。 - -* 扫描访问路径的代价 - - 扫描访问路径的代价跟扫描的行数成正比,理论上来说扫描的行数越多,执行时间就会越久。对于一个访问路径,query range 决定了需要扫描的范围,从而决定了需要扫描的行数。Query range 的扫描是顺序 IO。 - - -* 回表的代价 - - 回表的代价跟回表的行数也也是正相关的,回表的行数越多(回表的行数是指满足所有能在索引上执行的谓词的行数),执行时间就会越长。回表的扫描是随机 IO,所以回表一行的代价会比 query range 扫描一行的代价高很多。 - - - - - -当分析一个访问路径的性能的时候,可以从上面两个因素入手,获取通过 query range 扫描的行数以及回表的行数。这两个行数通常可以通过执行 SQL 语句来获取。 - -如下例所示,对于查询 `SELECT * FROM t1 WHERE c2 > 20 AND c2 < 800 AND c3 < 200`,索引 k1 的访问路径是,首先通常计划展示来获取用来抽取 query range 的谓词,谓词 `c2 > 20 AND c2 < 800` 用来抽取 query range,谓词 `c3 < 200` 被当成回表前的谓词。那么可以使用如下两个查询来检查 query range 抽取的行数以及回表之后的行数。 - -```javascript -obclient>CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT, c3 INT, c4 INT, c5 INT, INDEX k1(c2,c3)); -Query OK, 0 rows affected (0.26 sec) - -obclient>EXPLAIN EXTENDED_NOADDR SELECT/*+INDEX(t1 k1)*/ * FROM t1 WHERE - c2 > 20 AND c2 < 800 AND c3 < 200; -+--------------------------------------------------------------+ -| Query Plan | -+--------------------------------------------------------------+ -| ===================================== -|ID|OPERATOR |NAME |EST. ROWS|COST| -------------------------------------- -|0 |TABLE SCAN|t1(k1)|156 |1216| -===================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2], [t1.c3], [t1.c4], [t1.c5]), filter([t1.c3 < 200]), - access([t1.c2], [t1.c3], [t1.c1], [t1.c4], [t1.c5]), partitions(p0), - is_index_back=true, filter_before_indexback[true], - range_key([t1.c2], [t1.c3], [t1.c1]), range(20,MAX,MAX ; 800,MIN,MIN), - range_cond([t1.c2 > 20], [t1.c2 < 800]) - -/*query range 扫描的行数*/ -obclient>SELECT/*+INDEX(t1 k1)*/ COUNT(*) FROM t1 WHERE c2 > 20 AND c2 < 800; -+----------+ -| count(*) | -+----------+ -| 779 | -+----------+ -1 row in set (0.02 sec) - -/* 回表的行数*/ -obclient> SELECT/*+INDEX(t1 k1)*/ COUNT(*) FROM t1 WHERE c2 > 20 AND c2 < 800 - AND c3 < 200; -+----------+ -| count(*) | -+----------+ -| 179 | -+----------+ -1 row in set (0.01 sec) -``` - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/1.overview-17.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/1.overview-17.md deleted file mode 100644 index 5b3141b21..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/1.overview-17.md +++ /dev/null @@ -1,13 +0,0 @@ -概述 -======================= - - - -数据库中的联接语句用于将数据库中的两个或多个表根据联接条件,把表的属性通过它们的值组合在一起。由"联接"生成的集合,可以被保存为表,或者当成表来使用。 - -不同方式的联接算法为 SQL 调优提供了更多的选择,可以使得 SQL 调优时能够根据表的数据特性选择合适的联接算法,从而让多表联接组合起来变得更加高效。 - -联接语句在数据中由联接算法实现,主要的联接算法有 NESTED LOOP JOIN、HASH JOIN 和 MERGE JOIN。由于三种算法在不同的场景下各有优劣,优化器会自动选择联接算法。关于各算法的原理,请参见 [联接算法](../../../../12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/2.join-algorithm-6.md)。 - -针对联接顺序及联接算法的选择,OceanBase 数据库也提供了相关 HINT 机制进行控制,以方便用户根据自身的实际需求去选择何种联接顺序及联接算法以进行多表的联接。 - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/2.join-algorithm-6.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/2.join-algorithm-6.md deleted file mode 100644 index 49e7d4d2f..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/2.join-algorithm-6.md +++ /dev/null @@ -1,446 +0,0 @@ -联接算法 -========================= - -OceanBase 数据库当前版本支持 NESTED LOOP JOIN、 HASH JOIN 和 MERGE JOIN 三种不同的联接算法。 - -HASH JOIN 和 MERGE JOIN 只适用于等值的联接条件,NESTED LOOP JOIN 可用于任意的联接条件。 - -NESTED LOOP JOIN -------------------------- - -NESTED LOOP JOIN 就是扫描一个表(外表),每读到该表中的一条记录,就去"扫描"另一张表(内表)找到满足条件的数据。 - -这里的"扫描"可以是利用索引快速定位扫描,也可以是全表扫描。通常来说,全表扫描的性能是很差的,所以如果联接条件的列上没有索引,优化器一般就不会选择 NESTED LOOP JOIN。在 OceanBase 数据库中,执行计划中展示了是否能够利用索引快速定位扫描。 - -如下例所示,第一个计划对于内表的扫描是全表扫描,因为联接条件是 `t1.c = t2.c`,而 t2 没有在 c 上面的索引。第二个计划对于内表的扫描能够使用索引快速找到匹配的行,主要原因是联接条件为 `t1.b = t2.b`,而且 t2 选择了创建在 b 列上的索引 k1 作为访问路径,这样对于 t1 中的每一行的每个 b 值,t2 都可以根据索引快速找到满足条件的匹配行。 - -```javascript -obclient>CREATE TABLE t1(a INT PRIMARY KEY, b INT, c INT, KEY k1(b)); -Query OK, 0 rows affected (0.24 sec) - -obclient>>CREATE TABLE t2(a INT PRIMARY KEY, b INT, c INT, KEY k1(b)); -Query OK, 0 rows affected (0.29 sec) - -obclient> EXPLAIN EXTENDED_NOADDR SELECT/*+USE_NL(t1 t2)*/ * FROM t1, t2 - WHERE t1.c = t2.c; -+-----------------------------------------------------------------+ -| Query Plan | -+-----------------------------------------------------------------+ -| =========================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | -------------------------------------------- -|0 |NESTED-LOOP JOIN| |1980 |623742| -|1 | TABLE SCAN |t1 |1000 |455 | -|2 | TABLE SCAN |t2 |2 |622 | -=========================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c], [t2.a], [t2.b], [t2.c]), filter(nil), - conds(nil), nl_params_([t1.c]) - 1 - output([t1.c], [t1.a], [t1.b]), filter(nil), - access([t1.c], [t1.a], [t1.b]), partitions(p0), - is_index_back=false, - range_key([t1.a]), range(MIN ; MAX)always true - 2 - output([t2.c], [t2.a], [t2.b]), filter([? = t2.c]), - access([t2.c], [t2.a], [t2.b]), partitions(p0), - is_index_back=false, filter_before_indexback[false], - range_key([t2.a]), range(MIN ; MAX) - -obclient> EXPLAIN EXTENDED_NOADDR SELECT/*+USE_NL(t1 t2)*/ * FROM t1, t2 - WHERE t1.b = t2.b; -+-----------------------------------------------------------------+ -| Query Plan | -+-----------------------------------------------------------------+ -| ============================================ -|ID|OPERATOR |NAME |EST. ROWS|COST | --------------------------------------------- -|0 |NESTED-LOOP JOIN| |1980 |94876| -|1 | TABLE SCAN |t1 |1000 |455 | -|2 | TABLE SCAN |t2(k1)|2 |94 | -============================================ - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c], [t2.a], [t2.b], [t2.c]), filter(nil), - conds(nil), nl_params_([t1.b]) - 1 - output([t1.b], [t1.a], [t1.c]), filter(nil), - access([t1.b], [t1.a], [t1.c]), partitions(p0), - is_index_back=false, - range_key([t1.a]), range(MIN ; MAX)always true - 2 - output([t2.b], [t2.a], [t2.c]), filter(nil), - access([t2.b], [t2.a], [t2.c]), partitions(p0), - is_index_back=true, - range_key([t2.b], [t2.a]), range(MIN ; MAX), - range_cond([? = t2.b]) -``` - - - -NESTED LOOP JOIN 可能会对内表进行多次全表扫描,因为每次扫描都需要从存储层重新迭代一次,这个代价相对是比较高的,所以 OceanBase 数据库支持对内表进行一次扫描并把结果物化在内存中,这样在下一次执行扫描时就可以直接在内存中扫描相关的数据,而不需要从存储层进行多次扫描。但是物化在内存中是有代价的,所以 OceanBase 数据库的优化器基于代价去判断是否需要物化内表。 - -NESTED LOOP JOIN 的一个优化变种是 BLOCKED NESTED LOOP JOIN,它每次从外表中读取一个 block 大小的行,然后再去扫描内表找到满足条件的数据,这样可以减少内表的读取次数。 - -NESTED LOOP JOIN 通常用在内表行数比较少,而且外表在联接条件的列上有索引的场景,因为内表中的每一行都可以快速的使用索引定位到相对应的匹配的数据。 - -同时,OceanBase 数据库也提供了 HINT 机制 `/*+ USE_NL(table_name_list) */` 去控制多表联接的时候选择 NESTED LOOP JOIN。例如下述场景联接算法选择的是 HASH JOIN,而用户希望使用 NESTED LOOP JOIN,就可以使用上述 HINT 进行控制。 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.97 sec) - -obclient>CREATE TABLE t2(c1 INT, c2 INT); -Query OK, 0 rows affected (0.29 sec) - -obclient>EXPLAIN SELECT * FROM t1,t2 WHERE t1.c1 = t2.c1; -+-----------------------------------------------------------------+ -| Query Plan | -+-----------------------------------------------------------------+ -| ======================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ----------------------------------------- -|0 |HASH JOIN | |98010000 |66774608| -|1 | TABLE SCAN|T1 |100000 |68478 | -|2 | TABLE SCAN|T2 |100000 |68478 | -======================================== - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil), - equal_conds([T1.C1 = T2.C1]), other_conds(nil) - 1 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 2 - output([T2.C1], [T2.C2]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p0) - -obclient>EXPLAIN SELECT /*+USE_NL(t1, c2)*/* FROM t1, t2 WHERE t1.c1 = t2.c1; -+-----------------------------------------------------------------+ -| Query Plan | -+-----------------------------------------------------------------+ -| =============================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ------------------------------------------------ -|0 |NESTED-LOOP JOIN| |98010000 |4595346207| -|1 | TABLE SCAN |T1 |100000 |68478 | -|2 | MATERIAL | |100000 |243044 | -|3 | TABLE SCAN |T2 |100000 |68478 | -=============================================== - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil), - conds([T1.C1 = T2.C1]), nl_params_(nil) - 1 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 2 - output([T2.C1], [T2.C2]), filter(nil) - 3 - output([T2.C1], [T2.C2]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p0) -``` - - - -NESTED LOOP JOIN 还有以下两种实现的算法: - -* 缓存块嵌套循环联接(BLOCKED NESTED LOOP JOIN) - - BLOCKED NESTED LOOP JOIN 在 OceanBase 数据库中的实现方式是 BATCH NESTED LOOP JOIN,通过从外表中批量读取数据行(默认是 1000 行),然后再去扫描内表找到满足条件的数据。这样将批量的数据与内层表的数据进行匹配,减少了内表的读取次数和内层循环的次数。 - - 如下示例中,`batch_join=true` 字段表示本次查询使用了 BATCH NESTED LOOP JOIN。 - - ```javascript - obclient>CREATE TABLE t1(c1 INT PRIMARY KEY); - Query OK, 0 rows affected (0.97 sec) - - obclient>CREATE TABLE t2(c1 INT PRIMARY KEY); - Query OK, 0 rows affected (0.97 sec) - - obclient>EXPLAIN EXTENDED_NOADDR SELECT /*+USE_NL(t1,t2)*/* FROM t1,t2 - WHERE t1.c1=t2.c1\G; - *************************** 1. row *************************** - Query Plan: - ============================================ - |ID|OPERATOR |NAME|EST. ROWS|COST | - -------------------------------------------- - |0 |NESTED-LOOP JOIN| |100001 |3728786| - |1 | TABLE SCAN |t1 |100000 |59654 | - |2 | TABLE GET |t2 |1 |36 | - ============================================ - - Outputs & filters: - ------------------------------------- - 0 - output([t1.c1], [t2.c1]), filter(nil), - conds(nil), nl_params_([t1.c1]), inner_get=false, self_join=false, batch_join=true - 1 - output([t1.c1]), filter(nil), - access([t1.c1]), partitions(p0), - is_index_back=false, - range_key([t1.c1]), range(MIN ; MAX)always true - 2 - output([t2.c1]), filter(nil), - access([t2.c1]), partitions(p0), - is_index_back=false, - range_key([t2.c1]), range(MIN ; MAX), - range_cond([? = t2.c1]) - ``` - - - - - - - - -* 索引嵌套循环联接(INDEX NESTED LOOP JOIN) - - INDEX NESTED LOOP JOIN 是基于索引进行联接的算法,通过外层表匹配条件直接与内层表索引进行匹配,避免和内层表的每条记录进行比较,减少了对内层表的匹配次数。 - - 如下示例中存在联接条件 `t1.c1 = t2.c1`,则在 t2 表的 c1 列上有索引或 t1 表的 c1 列上有索引的时候,会使用 INDEX NESTED LOOP JOIN。 - - ```javascript - obclient>CREATE TABLE t1(c1 INT PRIMARY KEY); - Query OK, 0 rows affected (0.97 sec) - - obclient>CREATE TABLE t2(c1 INT ,c2 INT); - Query OK, 0 rows affected (0.97 sec) - - obclient>EXPLAIN SELECT /*+ORDERED USE_NL(t2,t1)*/ * FROM t2, - (SELECT /*+NO_MERGE*/ * FROM t1)t1 - WHERE t1.c1 = t2.c1 AND t2.c2 = 1\G; - *************************** 1. row *************************** - Query Plan: - =========================================== - |ID|OPERATOR |NAME|EST. ROWS|COST | - ------------------------------------------- - |0 |NESTED-LOOP JOIN| |981 |117272| - |1 | TABLE SCAN |t2 |990 |80811 | - |2 | SUBPLAN SCAN |t1 |1 |37 | - |3 | TABLE GET |t1 |1 |36 | - =========================================== - Outputs & filters: - ------------------------------------- - 0 - output([t2.c1], [t2.c2], [t1.c1]), filter(nil), conds(nil), nl_params_([t2.c1]) - 1 - output([t2.c1], [t2.c2]), filter([t2.c2 = 1]), access([t2.c1], [t2.c2]), partitions(p0) - 2 - output([t1.c1]), filter(nil), access([t1.c1]) - 3 - output([t1.c1]), filter(nil), access([t1.c1]), partitions(p0) - ``` - - - - 在 outputs \& filters 的输出结果中 `nl_param` 出现参数 `[t2.c1]`,说明执行了条件下压优化。详细信息请参考 [JOIN](../../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/3.JOIN-1-2.md)。 - - 一般地,在进行查询优化时,OceanBase 数据库优化器会优先选择 INDEX NESTED LOOP JOIN,然后检查是否可以使用 BATCH NESTED LOOP JOIN,这两种优化方式可以一起使用,最后才会选择 NESTED LOOP JOIN。 - - - - - -MERGE JOIN -------------------- - -MERGE JOIN 首先会按照联接的字段对两个表进行排序(如果内存空间不够,就需要进行外排),然后开始扫描两张表进行合并。 - -合并的过程会从每个表取一条记录开始匹配,如果符合关联条件,则放入结果集中;否则,将关联字段值较小的记录抛弃,从这条记录对应的表中取下一条记录继续进行匹配,直到整个循环结束。 - -在多对多的两张表上进行合并时,通常需要使用临时空间进行操作。例如 A JOIN B 使用 MERGE JOIN 时,如果对于关联字段的某一组值,在 A 和 B 中都存在多条记录 A1、A2...An 和 B1、B2...Bn,则为 A 中每一条记录 A1、A2...An,都必须对 B 中对所有相等的记录 B1、B2...Bn 进行一次匹配。这样,指针需要多次从 B1 移动到 Bn,每一次都需要读取相应的 B1...Bn 记录。将 B1...Bn 的记录预先读出来放入内存临时表中,比从原数据页或磁盘读取要快。在一些场景中,如果联接字段上有可用的索引,并且排序一致,那么可以直接跳过排序操作。 - -通常来说,MERGE JOIN 比较适合两个输入表已经有序的情况,否则 HASH JOIN 会更加好。如下示例,展示了两个 MERGE JOIN 的计划,其中第一个是需要排序的,第二个是不需要排序的(因为两个表都选择了 k1 这两个索引访问路径,这两个索引本身就是按照 b 排序的)。 - -```javascript -obclient> CREATE TABLE t1(a INT PRIMARY KEY, b INT, c INT, KEY k1(b)); -Query OK, 0 rows affected (0.24 sec) - -obclient> CREATE TABLE t2(a INT PRIMARY KEY, b INT, c INT, KEY k1(b)); -Query OK, 0 rows affected (0.29 sec) - -obclient> EXPLAIN SELECT/*+USE_MERGE(t1 t2)*/ * FROM t1, t2 WHERE t1.c = t2.c; -*************************** 1. row *************************** -Query Plan: -| ===================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| -------------------------------------- -|0 |MERGE JOIN | |1980 |6011| -|1 | SORT | |1000 |2198| -|2 | TABLE SCAN|t1 |1000 |455 | -|3 | SORT | |1000 |2198| -|4 | TABLE SCAN|t2 |1000 |455 | -===================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c], [t2.a], [t2.b], [t2.c]), filter(nil), - equal_conds([t1.c = t2.c]), other_conds(nil) - 1 - output([t1.a], [t1.b], [t1.c]), filter(nil), sort_keys([t1.c, ASC]) - 2 - output([t1.c], [t1.a], [t1.b]), filter(nil), - access([t1.c], [t1.a], [t1.b]), partitions(p0) - 3 - output([t2.a], [t2.b], [t2.c]), filter(nil), sort_keys([t2.c, ASC]) - 4 - output([t2.c], [t2.a], [t2.b]), filter(nil), - access([t2.c], [t2.a], [t2.b]), partitions(p0) - - -obclient>EXPLAIN SELECT/*+USE_MERGE(t1 t2),INDEX(t1 k1),INDEX(t2 k1)*/ * - FROM t1, t2 WHERE t1.b = t2.b; -*************************** 1. row *************************** -Query Plan: -| ======================================= -|ID|OPERATOR |NAME |EST. ROWS|COST | ---------------------------------------- -|0 |MERGE JOIN | |1980 |12748| -|1 | TABLE SCAN|t1(k1)|1000 |5566 | -|2 | TABLE SCAN|t2(k1)|1000 |5566 | -======================================= - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c], [t2.a], [t2.b], [t2.c]), filter(nil), - equal_conds([t1.b = t2.b]), other_conds(nil) - 1 - output([t1.b], [t1.a], [t1.c]), filter(nil), - access([t1.b], [t1.a], [t1.c]), partitions(p0) - 2 - output([t2.b], [t2.a], [t2.c]), filter(nil), - access([t2.b], [t2.a], [t2.c]), partitions(p0) -``` - - - -同时,OceanBase 数据库也提供了 HINT 机制 `/*+ USE_MERGE(table_name_list) */` 去控制多表联接的时候选择 MERGE JOIN 联接算法。例如下述场景中联接算法选择的是 HASH JOIN,而用户希望使用 MERGE JOIN,则可以使用上述 HINT 进行控制。 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT); -Query OK, 0 rows affected (0.97 sec) - -obclient>CREATE TABLE t2(c1 INT, c2 INT); -Query OK, 0 rows affected (0.29 sec) - -obclient>EXPLAIN SELECT * FROM t1,t2 WHERE t1.c1 = t2.c1; -*************************** 1. row *************************** -Query Plan: -| ======================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ----------------------------------------- -|0 |HASH JOIN | |98010000 |66774608| -|1 | TABLE SCAN|T1 |100000 |68478 | -|2 | TABLE SCAN|T2 |100000 |68478 | -======================================== - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil), - equal_conds([T1.C1 = T2.C1]), other_conds(nil) - 1 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 2 - output([T2.C1], [T2.C2]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p0) - - obclient>EXPLAIN SELECT /*+USE_MERGE(t1,t2)*/* FROM t1, t2 WHERE t1.c1 = t2.c1; -*************************** 1. row *************************** -Query Plan: - | ========================================= -|ID|OPERATOR |NAME|EST. ROWS|COST | ------------------------------------------ -|0 |MERGE JOIN | |98010000 |67488837| -|1 | SORT | |100000 |563680 | -|2 | TABLE SCAN|T1 |100000 |68478 | -|3 | SORT | |100000 |563680 | -|4 | TABLE SCAN|T2 |100000 |68478 | -========================================= - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil), - equal_conds([T1.C1 = T2.C1]), other_conds(nil) - 1 - output([T1.C1], [T1.C2]), filter(nil), sort_keys([T1.C1, ASC]) - 2 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 3 - output([T2.C1], [T2.C2]), filter(nil), sort_keys([T2.C1, ASC]) - 4 - output([T2.C1], [T2.C2]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p0) -``` - - - -HASH JOIN ------------------- - -HASH JOIN 就是用两个表中相对较小的表(通常称为 build table)根据联接条件创建 hash table,然后逐行扫描较大的表(通常称为 probe table)并通过探测 hash table 找到匹配的行。 如果 build table 非常大,构建的 hash table 无法在内存中容纳时,Oceanbase 数据库会分别将 build table 和 probe table 按照联接条件切分成多个分区(partition),每个 partition 都包括一个独立的、成对匹配的 build table 和 probe table,这样就将一个大的 HASH JOIN 切分成多个独立、互相不影响的 HASH JOIN,每一个分区的 HASH JOIN 都能够在内存中完成。在绝大多数情况下,HASH JOIN 效率比其他 JOIN 方式效率更高。 - -如下是 HASH JOIN 计划的示例。 - -```javascript -obclient> CREATE TABLE t1(a INT PRIMARY KEY, b INT, c INT, KEY k1(b)); -Query OK, 0 rows affected (0.24 sec) - -obclient>CREATE TABLE t2(a INT PRIMARY KEY, b INT, c INT, KEY k1(b)); -Query OK, 0 rows affected (0.29 sec) - -obclient> EXPLAIN SELECT/*+USE_HASH(t1 t2)*/ * FROM t1, t2 WHERE t1.c = t2.c; -*************************** 1. row *************************** -Query Plan: -| ==================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------- -|0 |HASH JOIN | |1980 |4093| -|1 | TABLE SCAN|t1 |1000 |455 | -|2 | TABLE SCAN|t2 |1000 |455 | -==================================== - -Outputs & filters: -------------------------------------- - 0 - output([t1.a], [t1.b], [t1.c], [t2.a], [t2.b], [t2.c]), filter(nil), - equal_conds([t1.c = t2.c]), other_conds(nil) - 1 - output([t1.c], [t1.a], [t1.b]), filter(nil), - access([t1.c], [t1.a], [t1.b]), partitions(p0) - 2 - output([t2.c], [t2.a], [t2.b]), filter(nil), - access([t2.c], [t2.a], [t2.b]), partitions(p0) -``` - - - -同时,OceanBase 数据库也提供了 HINT 机制 `/*+ USE_HASH(table_name_list) */` 去控制多表联接的时候选择 HASH JOIN 联接算法。例如下述场景中联接算法选择的是 MERGE JOIN,而用户希望使用 HASH JOIN,则可以使用上述 HINT 进行控制。 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT, PRIMARY KEY(c1)); -Query OK, 0 rows affected (0.31 sec) - -obclient>CREATE TABLE t2(c1 INT, c2 INT, PRIMARY KEY(c1)); -Query OK, 0 rows affected (0.33 sec) - -obclient>EXPLAIN SELECT * FROM t1, t2 WHERE t1.c1 = t2.c1; -*************************** 1. row *************************** -Query Plan: -| ====================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | --------------------------------------- -|0 |MERGE JOIN | |100001 |219005| -|1 | TABLE SCAN|T1 |100000 |61860 | -|2 | TABLE SCAN|T2 |100000 |61860 | -====================================== - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil), - equal_conds([T1.C1 = T2.C1]), other_conds(nil) - 1 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 2 - output([T2.C1], [T2.C2]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p0) - -obclient>EXPLAIN SELECT /*+USE_HASH(t1, t2)*/ * FROM t1, t2 WHERE t1.c1 = t2.c1; -*************************** 1. row *************************** -Query Plan: - | ====================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | --------------------------------------- -|0 |HASH JOIN | |100001 |495180| -|1 | TABLE SCAN|T1 |100000 |61860 | -|2 | TABLE SCAN|T2 |100000 |61860 | -====================================== - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil), - equal_conds([T1.C1 = T2.C1]), other_conds(nil) - 1 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 2 - output([T2.C1], [T2.C2]), filter(nil), - access([T2.C1], [T2.C2]), partitions(p0) -``` - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/3.join-order-3.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/3.join-order-3.md deleted file mode 100644 index 32c4a42ef..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/3.join-order-3.md +++ /dev/null @@ -1,127 +0,0 @@ -联接顺序 -========================= - - - -在多表联接的场景中,优化器的一个很重要的任务是决定各个表之间的联接顺序(Join Order),因为不同的联接顺序会影响中间结果集的大小,进而影响到计划整体的执行代价。 - -为了减少执行计划的搜索空间和计划执行的内存占用,OceanBase 数据库优化器在生成联接顺序时主要考虑左深树的联接形式。下图展示了左深树、右深树和多支树的计划形状。 - -![数](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/9765994061/p180085.jpg) - -OceanBase 数据库联接顺序的生成采用了 System-R 的动态规划算法,考虑的因素包括每一个表可能的访问路径、Interesting Order、联接算法(NESTED-LOOP、BLOCK-BASED NESTED-LOOP 或者 SORT-MERGE 等)以及不同表之间的联接选择率等。 - -给定 N 个表的联接,OceanBase 数据库生成联接顺序的方法如下: - -1. 为每一个基表生成访问路径,保留代价最小的访问路径以及有所有有 Interesting Order 的路径。一个路径 如果具有 Interesting Order,它的序能够被后续的算子使用。 - - - -2. 生成所有表集合的大小为 `i (1 < i <= N)` 的计划。 OceanBase 数据库一般只考虑左深树,表集合大小为 i 的计划可以由一个表集合大小为 i 的计划和一个基表的计划组成。OceanBase 数据库按照这种策略,考虑了所有的联接算法以及 Interesting Order 的继承等因素把所有表集合大小为 i 的计划生成。这里也只是保留代价最小的计划以及所有具有 Interesting Order 的计划。 - - - - - - -同时,OceanBase 数据库提供了 HINT 机制 `/*+LEADING(table_name_list)*/`去控制多表联接的顺序。 - -如下例所示,开始选择的联接顺序是先做 t1、t2 的 JOIN 联接,然后再和 t3 做 JOIN 联接;如果用户希望先做 t2、t3 的 JOIN 联接,然后再和 t1做 JOIN 联接,则可以使用 HINT `/*+LEADING(t2,t3,t1)*/`去控制;如果用户希望先做 t1、t3 的 JOIN 联接,然后再和 t2 做 JOIN 联接,则可以使用 HINT `/*+LEADING(t1,t3,t2)*/`去控制。 - -```javascript -obclient>CREATE TABLE t1(c1 INT, c2 INT, PRIMARY KEY(c1)); -Query OK, 0 rows affected (0.31 sec) - -obclient>CREATE TABLE t2(c1 INT, c2 INT, PRIMARY KEY(c1)); -Query OK, 0 rows affected (0.33 sec) - -obclient>CREATE TABLE t3(c1 INT, c2 INT, PRIMARY KEY(c1)); -Query OK, 0 rows affected (0.44 sec) - -obclient>EXPLAIN SELECT * FROM t1,t2,t3 WHERE t1.c1 = t2.c2 AND t2.c1 = t3.c2; -+-----------------------------------------------------------------+ -| Query Plan | -+-----------------------------------------------------------------+ -| ======================================= -|ID|OPERATOR |NAME|EST. ROWS|COST | ---------------------------------------- -|0 |HASH JOIN | |98010 |926122| -|1 | TABLE SCAN |T3 |100000 |61860 | -|2 | HASH JOIN | |99000 |494503| -|3 | TABLE SCAN|T1 |100000 |61860 | -|4 | TABLE SCAN|T2 |100000 |61860 | -======================================= - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2], [T3.C1], [T3.C2]), filter(nil), - equal_conds([T2.C1 = T3.C2]), other_conds(nil) - 1 - output([T3.C2], [T3.C1]), filter(nil), - access([T3.C2], [T3.C1]), partitions(p0) - 2 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2]), filter(nil), - equal_conds([T1.C1 = T2.C2]), other_conds(nil) - 3 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 4 - output([T2.C2], [T2.C1]), filter(nil), - access([T2.C2], [T2.C1]), partitions(p0) - -obclient>EXPLAIN SELECT /*+LEADING(t2,t3,t1)*/* FROM t1,t2,t3 WHERE t1.c1 = t2.c2 - AND t2.c1 = t3.c2; -+-----------------------------------------------------------------+ -| Query Plan | -+-----------------------------------------------------------------+ -| ======================================== -|ID|OPERATOR |NAME|EST. ROWS|COST | ----------------------------------------- -|0 |HASH JOIN | |98010 |1096613| -|1 | HASH JOIN | |99000 |494503 | -|2 | TABLE SCAN|T2 |100000 |61860 | -|3 | TABLE SCAN|T3 |100000 |61860 | -|4 | TABLE SCAN |T1 |100000 |61860 | -======================================== - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2], [T3.C1], [T3.C2]), filter(nil), - equal_conds([T1.C1 = T2.C2]), other_conds(nil) - 1 - output([T2.C1], [T2.C2], [T3.C1], [T3.C2]), filter(nil), - equal_conds([T2.C1 = T3.C2]), other_conds(nil) - 2 - output([T2.C2], [T2.C1]), filter(nil), - access([T2.C2], [T2.C1]), partitions(p0) - 3 - output([T3.C2], [T3.C1]), filter(nil), - access([T3.C2], [T3.C1]), partitions(p0) - 4 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - -obclient>EXPLAIN SELECT /*+LEADING(t1,t3,t2)*/* FROM t1,t2,t3 WHERE t1.c1 = t2.c2 - AND t2.c1 = t3.c2; -+-----------------------------------------------------------------+ -| Query Plan | -+-----------------------------------------------------------------+ -| ============================================================= -|ID|OPERATOR |NAME|EST. ROWS |COST | -------------------------------------------------------------- -|0 |HASH JOIN | |98010 |53098071243| -|1 | NESTED-LOOP JOIN CARTESIAN| |10000000000|7964490204 | -|2 | TABLE SCAN |T1 |100000 |61860 | -|3 | MATERIAL | |100000 |236426 | -|4 | TABLE SCAN |T3 |100000 |61860 | -|5 | TABLE SCAN |T2 |100000 |61860 | -============================================================= - -Outputs & filters: -------------------------------------- - 0 - output([T1.C1], [T1.C2], [T2.C1], [T2.C2], [T3.C1], [T3.C2]), filter(nil), - equal_conds([T1.C1 = T2.C2], [T2.C1 = T3.C2]), other_conds(nil) - 1 - output([T1.C1], [T1.C2], [T3.C1], [T3.C2]), filter(nil), - conds(nil), nl_params_(nil) - 2 - output([T1.C1], [T1.C2]), filter(nil), - access([T1.C1], [T1.C2]), partitions(p0) - 3 - output([T3.C1], [T3.C2]), filter(nil) - 4 - output([T3.C2], [T3.C1]), filter(nil), - access([T3.C2], [T3.C1]), partitions(p0) - 5 - output([T2.C2], [T2.C1]), filter(nil), - access([T2.C2], [T2.C1]), partitions(p0) -``` - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/1.optimizer-hint-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/1.optimizer-hint-1.md deleted file mode 100644 index ee9fdcde7..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/1.optimizer-hint-1.md +++ /dev/null @@ -1,461 +0,0 @@ -Optimizer Hint -=================================== - -HINT 机制可以使优化器生成某种特定的计划。 - -一般情况下,优化器会为用户查询选择最佳的执行计划,不需要用户使用 HINT 指定,但在某些场景下,优化器生成的执行计划可能不满足用户的要求,这时就需要用户使用 HINT 来指定生成某种执行计划。 - -HINT 语法 ----------------- - -HINT 从语法上看是一种特殊的 SQL 注释,所不同的是在注释的左标记后('/\*' 符号)增加了一个"+"。 既然是注释,如果服务器端无法识别 SQL 语句中的 HINT,优化器会选择忽略用户 HINT 而使用默认的计划生成逻辑结构。另外,HINT 只影响优化器生成计划的逻辑结构,而不影响 SQL 语句的语义。 - -```javascript -{DELETE|INSERT|SELECT|UPDATE|REPLACE} /*+ [hint_text] [hin_text]... */ -** -``` - - - - -**注意** - - - -如果使用 MySQL 的 C 客户端执行带 HINT 的 SQL 语句,需要使用 -c 选项登陆,否则 MySQL 客户端会将 HINT 作为注释从用户 SQL 中去除,导致系统无法收到用户 HINT。 - -#### **HINT 参数** - -HINT 相关参数名称、语义和语法如下表: - - -| **名称** | **语法** | **语义** | -|-----------------------------|------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------| -| NO_REWRITE | NO_REWRITE | 禁止 SQL 改写。 | -| READ_CONSISTENCY | READ_CONSISTENCY (WEAK\[STRONGFROZEN\]) | 读一致性设置(弱/强)。 | -| INDEX_HINT | /\*+ INDEX(table_name index_name) \*/ | 设置表索引。 | -| QUERY_TIMEOUT | QUERY_TIMEOUT(INTNUM) | 设置超时时间。 | -| LOG_LEVEL | LOG_LEVEL(\['\]log_level\['\]) | 设置日志级别,当设置模块级别语句时候,以第一个单引号(')作为开始,第二个单引号(')作为结束;例如'DEBUG'。 | -| LEADING | LEADING(\[qb_name\] TBL_NAME_LIST) | 设置联接顺序。 | -| ORDERED | ORDERED | 设置按照 SQL 中的顺序进行联接。 | -| FULL | FULL(\[qb_name\] TBL_NAME) | 设置表访问路径为主表等价于 INDEX(TBL_NAME PRIMARY)。 | -| USE_PLAN_CACHE | USE_PLAN_CACHE(NONE\[DEFAULT\]) | 设置是否使用计划缓存: * NONE:表示不使用计划缓存 * DEFAULT:表示按照其他变量进行设置 | -| ACTIVATE_BURIED_POINT | ACTIVATE_BURIED_POINT(INTNUM, \[FIX_MOD \| BEFORE_MODE\], INTNUM, \[INTNUM \| -INTNUM\]) | 调试用,触发内部设定的错误点。 | -| USE_MERGE | USE_MERGE(\[qb_name\] TBL_NAME_LIST) | 设置指定表在作为右表的时候使用 MERGE JOIN。 | -| USE_HASH | USE_HASH(\[qb_name\] TBL_NAME_LIST) | 设置指定表在作为右表的时候使用 HASH JOIN。 | -| NO_USE_HASH | NO_USE_HASH(\[qb_name\] TBL_NAME_LIST) | 设置指定表在作为右表的时候不使用 HASH JOIN。 | -| USE_NL | USE_NL(\[qb_name\] TBL_NAME_LIST) | 设置指定表在作为右表的时候使用 NESTED LOOP JOIN。 | -| USE_BNL | USE_BNL(\[qb_name\] TBL_NAME_LIST) | 设置指定表在作为右表的时候使用 NESTED LOOP BLOCK JOIN | -| USE_HASH_AGGREGATION | USE_HASH_AGGREGATION(\[qb_name\]) | 设置 aggregate 方法为使用 HASH AGGREGATE。例如 HASH GROUP BY 或者 HASH DISTINCT。 | -| NO_USE_HASH_AGGREGATION | NO_USE_HASH_AGGREGATION(\[qb_name\]) | 设置 aggregate 方法不使用 HASH AGGREGATE,使用 MERGE GROUP BY 或者MERGE DISTINCT。 | -| USE_LATE_MATERIALIZATION | USE_LATE_MATERIALIZATION | 设置使用晚期物化。 | -| NO_USE_LATE_MATERIALIZATION | NO_USE_LATE_MATERIALIZATION | 设置不使用晚期物化。 | -| TRACE_LOG | TRACE_LOG | 设置收集 trace 记录用于 SHOW TRACE 展示。 | -| QB_NAME | QB_NAME( NAME ) | 设置 query block 的名称。 | -| PARALLEL | PARALLEL(INTNUM) | 设置分布式执行并行度。 | -| TOPK | TOPK(PRECISION MINIMUM_ROWS) | 设置模糊查询的精度和最小行数。其中 PRECSION 为整型,取值范围\[0, 100\],表示模糊查询的行数百分比;MINIMUM_ROWS 为最小返回行数。 | - - -**说明** - - - -* qb_name 语法是: `@NAME` - - - -* TBL_NAME 语法是: `[db_name.]relation_name [qb_name]` - - - - - - -QB_NAME 介绍 -------------------- - -在 DML 语句中,每一个 query_block 都会有一个 QB_NAME(query block name),可以用户指定,也可以系统自动生成。在用户没有用 HINT 指定的 QB_NAME 的时候,系统会按照 SEL$1、SEL$2,UPD$1,DEL$1 方式从左到右(实际也是 Resolver 的解析顺序)依次生成。 - -通过 QB_NAME 可以精确定位每一个 table,也可以在一处地方指定任意 query block 的行为。在 TBL_NAME 中的 QB_NAME 用于定位 table,在 HINT 中最前面的 qb_name 用于定位 HINT 作用于哪一个 query_block。 - -如下例所示,按照默认规则,会为 SEL$1 中的 t 选择 t_c1 路径,为 SEL$2 中的 t 选择 PRIMARY(主表)访问。如果 SQL 通过 HINT 来指定 SEL$1 的 t 走主表,则 SEL$2 的 t 走索引。 - -```javascript -obclient>CREATE TABLE t(c1 INT, c2 INT, KEY t_c1(c1)); -Query OK, 0 rows affected (0.31 sec) - -obclient>EXPLAIN SELECT * FROM t , (SELECT * FROM t WHERE c2 = 1) ta - WHERE t.c1 = 1\G; -*************************** 1. row *************************** -Query Plan: -============================================================ -|ID|OPERATOR |NAME |EST. ROWS|COST| ------------------------------------------------------------- -|0 |NESTED-LOOP INNER JOIN CARTESIAN| |1 |1895| -|1 | TABLE SCAN |t(t_c1)|1 |472 | -|2 | TABLE SCAN |t |1 |1397| -============================================================ -Outputs & filters: -------------------------------------- - 0 - output([t.c1], [t.c2], [t.c1], [t.c2]), filter(nil), - conds(nil), nl_params_(nil) - 1 - output([t.c1], [t.c2]), filter(nil), - access([t.c1], [t.c2]), partitions(p0) - 2 - output([t.c2], [t.c1]), filter([t.c2 = 1]), - access([t.c2], [t.c1]), partitions(p0) -``` - - -**注意** - - - -因为改写后,SEL$2 被提升到 SEL$1 所以这里不用指定 HINT 作用的 query block。 - - - -```javascript -obclient>EXPLAIN SELECT/*+INDEX(t@SEL$1 PRIMARY) INDEX(t@SEL$2 t_c1)*/ * - FROM t , (SELECT * FROM t WHERE c2 = 1) ta WHERE t.c1 = 1\G; -*************************** 1. row *************************** -Query Plan: -============================================================= -|ID|OPERATOR |NAME |EST. ROWS|COST | -------------------------------------------------------------- -|0 |NESTED-LOOP INNER JOIN CARTESIAN| |1 |16166| -|1 | TABLE SCAN |t |1 |1397 | -|2 | TABLE SCAN |t(t_c1)|1 |14743| -============================================================= - -Outputs & filters: -------------------------------------- - 0 - output([t.c1], [t.c2], [t.c1], [t.c2]), filter(nil), - conds(nil), nl_params_(nil) - 1 - output([t.c1], [t.c2]), filter([t.c1 = 1]), - access([t.c1], [t.c2]), partitions(p0) - 2 - output([t.c2], [t.c1]), filter([t.c2 = 1]), - access([t.c2], [t.c1]), partitions(p0) -``` - - - -此例中 SQL 也可以写成如下方式: - -```javascript -obclient>SELECT/*+INDEX(t@SEL$1 PRIMARY) INDEX(@SEL$2 t@SEL$2 t_c1)*/ * FROM t , - (SELECT * FROM t WHERE c2 = 1) ta WHERE t.c1 = 1\G; -<==> -obclient>SELECT/*+INDEX(t@SEL$1 PRIMARY)*/ * from t , (SELECT/*+INDEX(t@SEL$2 t_c1)*/ * from t - WHERE c2 = 1) ta WHERE t.c1 = 1\G; -<==> -obclient>SELECT/*+INDEX(@SEL$1 t@SEL$1 PRIMARY) INDEX(@SEL$2 t@SEL$2 t_c1)*/ * from t , - (SELECT * FROM t WHERE c2 = 1) ta WHERE t.c1 = 1\G; -``` - - - -对于 HINT 可以通过 `EXPLAIN EXTENDED` 查看 Outline Data 来学习。 - -```javascript -obclient>EXPLAIN EXTENDED SELECT * -FROM t , (SELECT * -FROM t WHERE c2 = 1) ta - WHERE t.c1 = 1\G; -*************************** 1. row *************************** -Query Plan: -============================================================ -|ID|OPERATOR |NAME |EST. ROWS|COST| ------------------------------------------------------------- -|0 |NESTED-LOOP INNER JOIN CARTESIAN| |1 |1895| -|1 | TABLE SCAN |t(t_c1)|1 |472 | -|2 | TABLE SCAN |t |1 |1397| -============================================================ -Used Hint: -------------------------------------- - /*+ - */ - -Outline Data: -------------------------------------- - /*+ - BEGIN_OUTLINE_DATA - USE_NL(@"SEL$1" "test.t"@"SEL$2") - LEADING(@"SEL$1" "test.t"@"SEL$1" "test.t"@"SEL$2") - INDEX(@"SEL$1" "test.t"@"SEL$1" "t_c1") - FULL(@"SEL$2" "test.t"@"SEL$2") - END_OUTLINE_DATA - */ -``` - - - - - -HINT 一般规则 ------------------- - -* 对于没有指定 query block 的 HINT 代表作用在本 query block。如下例所示,由于 t1 在 query block 2,同时无法改写提升到 query block 1,所以 HINT 无法生效。 - - ```javascript - obclient>CREATE TABLE t1(c1 INT, c2 INT, INDEX t1_c1(c1), INDEX - t1_c2(c2)); - Query OK, 0 rows affected (0.31 sec) - - obclient>EXPLAIN SELECT/*+INDEX(t1 t1_c2)*/ * FROM t, - (SELECT * FROM t1 GROUP BY c1) ta WHERE t.c1 = 1\G; - *************************** 1. row *************************** - Query Plan: - ============================================================ - |ID|OPERATOR |NAME |EST. ROWS|COST| - ------------------------------------------------------------ - |0 |NESTED-LOOP INNER JOIN CARTESIAN| |666 |5906| - |1 | TABLE SCAN |t(t_c1)|1 |472 | - |2 | SUBPLAN SCAN |ta |666 |5120| - |3 | HASH GROUP BY | |666 |4454| - |4 | TABLE SCAN |t1 |1000 |1397| - ============================================================ - Outputs & filters: - ------------------------------------- - 0 - output([t.c1], [t.c2], [ta.c1], [ta.c2]), filter(nil), - conds(nil), nl_params_(nil) - 1 - output([t.c1], [t.c2]), filter(nil), - access([t.c1], [t.c2]), partitions(p0) - 2 - - output([ta.c1], [ta.c2]), filter(nil), - access([ta.c1], [ta.c2]) - 4 - output([t1.c1], [t1.c2]), filter(nil), - group([t1.c1]), agg_func(nil) - 5 - output([t1.c1], [t1.c2]), filter(nil), - access([t1.c1], [t1.c2]), partitions(p0) - ``` - - - - 如下例所示,SQL 可以发生改写,t1 提升到 SEL$1,则 HINT 生效。 - - ```javascript - obclient>EXPLAIN SELECT/*+INDEX(t1 t1_c2)*/ * FROM t, - (SELECT * FROM t1) ta WHERE t.c1 = 1\G; - *************************** 1. row *************************** - Query Plan: - =============================================================== - |ID|OPERATOR |NAME |EST. ROWS|COST | - --------------------------------------------------------------- - |0 |NESTED-LOOP INNER JOIN CARTESIAN| |1000 |15674| - |1 | TABLE SCAN |t(t_c1) |1 |472 | - |2 | TABLE SCAN |t1(t1_c2)|1000 |14743| - =============================================================== - Outputs & filters: - ------------------------------------- - 0 - output([t.c1], [t.c2], [t1.c1], [t1.c2]), filter(nil), - conds(nil), nl_params_(nil) - 1 - output([t1.c1], [t1.c2]), filter(nil), - access([t1.c1], [t1.c2]), partitions(p0) - 2 - - output([t.c1], [t.c2]), filter(nil), - access([t.c1], [t.c2]), partitions(p0) - ``` - - - - - - - - -* 如果指定 table 行为,但在本 query block 中没有找到该 table,或者发生冲突,那么 HINT 无效。 - - 对于没有找到 table 的 case 可以参考规则 1 中的第一个示例。以下示例为同时找到两个冲突的情况: - - - - ```javascript - obclient>EXPLAIN EXTENDED SELECT/*+INDEX(t PRIMARY)*/ * - FROM t , (SELECT * FROM t WHERE c1 = 1) ta - WHERE t.c1 = 1\G; - *************************** 1. row *************************** - Query Plan: - ============================================================ - |ID|OPERATOR |NAME |EST. ROWS|COST| - ------------------------------------------------------------ - |0 |NESTED-LOOP INNER JOIN CARTESIAN| |1 |970 | - |1 | TABLE SCAN |t(t_c1)|1 |472 | - |2 | TABLE SCAN |t(t_c1)|1 |472 | - ============================================================ - Outputs & filters: - ------------------------------------- - 0 - output([t.c1(0x7f7b7cdd3e60)], [t.c2(0x7f7b7cdd40f0)], [t.c1(0x7f7b7cdd2bd0)], [t.c2(0x7f7b7cdd2e60)]), filter(nil), - conds(nil), nl_params_(nil), inner_get=false, self_join=false, batch_join=false - 1 - output([t.c1(0x7f7b7cdd3e60)], [t.c2(0x7f7b7cdd40f0)]), filter(nil), - access([t.c1(0x7f7b7cdd3e60)], [t.c2(0x7f7b7cdd40f0)]), partitions(p0), - is_index_back=true, - range_key([t.c1(0x7f7b7cdd3e60)], [t.__pk_increment(0x7f7b7cde86e0)]), range(1,MIN ; 1,MAX), - range_cond([t.c1(0x7f7b7cdd3e60) = 1(0x7f7b7cdd3800)]) - 2 - - output([t.c1(0x7f7b7cdd2bd0)], [t.c2(0x7f7b7cdd2e60)]), filter(nil), - access([t.c1(0x7f7b7cdd2bd0)], [t.c2(0x7f7b7cdd2e60)]), partitions(p0), - is_index_back=true, - range_key([t.c1(0x7f7b7cdd2bd0)], [t.__pk_increment(0x7f7b7cdf41b0)]), range(1,MIN ; 1,MAX), - range_cond([t.c1(0x7f7b7cdd2bd0) = 1(0x7f7b7cdd2570)]) - - Used Hint: - ------------------------------------- - /*+ - */ - ``` - - - - - - - - -* 联接方法的 HINT 中指定的 table 如果找不到,忽略该 table,其他的指定依然生效;如果优化器不能生成指定的联接方法,就会选择其他方法,HINT 无效。 - - - -* 联接顺序的 HINT 中如果存在 table 无法找到,则该 HINT 完全失效。 - - - - - - -HINT 主要语法 ------------------- - -与其他数据库的行为相比,OceanBase 数据库优化器是动态规划的,已经考虑了所有可能的最优路径,HINT 主要作用是指定优化器的行为,并按照 HINT 执行。 - -#### **INDEX HINT** - -INDEX HINT 的语法同时支持 MySQL 和 Oracle 方式。 - -* INDEX HINT 的 Oracle 语法如下: - - - - - - -```javascript -obclient> SELECT/*+INDEX(table_name index_name) */ * FROM table_name; -``` - - - -* INDEX HINT 的 MySQL 语法如下: - - - - - - -```javascript -tbl_name [[AS] alias] [index_hint_list] - -index_hint_list: -index_hint [, index_hint] ... - -index_hint: -USE {INDEX|KEY} - [FOR {JOIN|ORDER BY|GROUP BY}] ([index_list]) - | IGNORE {INDEX|KEY} - [FOR {JOIN|ORDER BY|GROUP BY}] (index_list) - | FORCE {INDEX|KEY} - [FOR {JOIN|ORDER BY|GROUP BY}] (index_list) - -index_list: -index_name [, index_name] ... -``` - - - -Oracle 语法中一个表只能指定一个 INDEX,MySQL 语法可以指定多个。但是 OceanBase 数据库中 MySQL 语法虽然支持指定多个,但是对于 USE 和 FORCE,只会用第一个 INDEX 生成 PATH,即使 SQL 语句中没有该 INDEX 的 filter 而导致全部扫描同时回表(即 OceanBase 数据库当前设计是认为写 HINT 的人比程序更明白那条路径是更好的)。IGNORE 类型会忽略所有指定的 INDEX。USE、 FORCE 和 Oracle HINT 方式实际是一样的,该方式的 INDEX 不存在或者处于 invalid 状态,则 HINT 无效。对于 IGNORE 方式,如果将包括主表 (primary) 在内的所有 INDEX 忽略,则 HINT 无效。 - -#### **FULL HINT** - -FULL HINT 的语法是用于指定表使用主表扫描,语法如下: - -`/*+ FULL(table_name)*/` - -FULL HINT 用于指定表选择主表扫描等价于 INDEX HINT `/*+ INDEX(table_name PRIMARY)*/`。 - -#### **ORDERED HINT** - -ORDERED HINT 可以指定按照 from 后面的表的顺序作为联接顺序,语法如下: - -`/*+ ORDERED*/` - -如果指定该 HINT 后发生改写,那么就按照改写后的 stmt 中 from items 的顺序联接,因为改写时候 sub_query 会在 from items 中对应位置填放新的 table item。 - -#### **LEADING HINT** - -LEADING HINT 可以指定表的联接顺序,语法如下: - -`/*+ LEADING(table_name_list)*/` - -table_name_list 中 table_name 比较特殊,其他 table_name 语法如下: - -```javascript -db_name . relation_name - -relation_name - -.relation_name -``` - - - -在 table_name_list 中 table_name 语法如下: - -```javascript -db_name . relation_name - -relation_name -``` - - - -table_name_list 语法如下: - -```javascript -table_name -table_name_list table_name -table_name_list, table_name -``` - - - -LEADING HINT 为确保按照用户指定的顺序联接检查比较严格,如果发现 HINT 指定的 table_name 不存在,LEADING HINT 失效;如果发现 HINT 中存在重复 table,LEADING HINT 失效。如果在 optimizer 联接期间,按 table_id 无法在 from items 中找到对应的,即可能发生改写,那么该 table 及后面的 table 指定的 JOIN 序失效,前面的依然有效。 - -#### **Use_merge** - -可以指定表在 JOIN 时候使用 merge-join 算法,语法为:`/*+ USE_MERGE(table_name_list) */` - -使用 merge-join 将 use_merge 指定的表作为右表。 -**注意** - - - -OceanBase 数据库中 merge-join 必须有等值条件的 join-condition,因此无等值条件的两个表联接,use_merge 会无效。 - -关于 merge-join 是否认为 A merge-join B 等效于 B merge-join A 当前并没有最后结论。按照代价模型,merge-join 计算代价时是区分左右表的。同时考虑到区分左右表可以增加 HINT 灵活性,当前 merge-join 区分左右表,即 use_merge 仅对表作为右表的时候生效。 - -#### **Use_nl** - -指定表作为右表在联接的时候使用 NESTED LOOP JOIN 算法,语法如下: - -`/*+ USE_NL(table_name_list) */` - -#### **Use_hash** - -指定表作为右表在联接的时候使用 HASH JOIN 算法,语法如下: - -`/*+ USE_HASH(table_name_list) */` - -#### **Parallel** - -指定语句级别的并发度。当该 HINT 指定时,会忽略系统变量 `ob_stmt_parallel_degree` 的设置。语法如下: - -`/*+ PARALLEL(4) */` diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/2.plan-binding-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/2.plan-binding-1.md deleted file mode 100644 index 774cc52ed..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/2.plan-binding-1.md +++ /dev/null @@ -1,352 +0,0 @@ -计划绑定 -========================= - -在系统上线前,可以直接在 SQL 语句中添加 Hint,控制优化器按 Hint 指定的行为进行计划生成。 - -但对于已上线的业务,如果出现优化器选择的计划不够优化时,则需要在线进行计划绑定,即无需业务进行 SQL 更改,而是通过 DDL 操作将一组 Hint 加入到 SQL 中,从而使优化器根据指定的一组 Hint,对该 SQL 生成更优计划。该组 Hint 称为 Outline,通过对某条 SQL 创建 Outline 可实现计划绑定。 - -Outline 视图-gv$outline ------------------------------- - -Outline 视图为 gv$outline,其参数说明如下: - - -| **字段名称** | **类型** | **描述** | -|-------------------|----------------|-----------------------------------------| -| tenant_id | bigint(20) | 租户 ID。 | -| database_id | bigint(20) | 数据库 ID。 | -| outline_id | bigint(20) | Outline ID。 | -| database_name | varchar(128) | 数据库名称。 | -| outline_name | varchar(128) | Outline 名称。 | -| visible_signature | varchar(32768) | Signature 的反序列化结果,为了便于查看 Signature 的信息。 | -| sql_text | varchar(32768) | 创建 Outline 时,在 `on clause` 中指定的 SQL。 | -| outline_target | varchar(32768) | 创建 Outline 时,在 `to clause` 中指定的 SQL。 | -| outline_sql | varchar(32768) | 具有完整 Outline 信息的 SQL。 | - - - -创建 OUTLINE -------------------- - -OceanBase 数据库支持通过两种方式创建 Outline,一种是通过 SQL_TEXT (用户执行的带参数的原始语句),另一种是通过 SQL_ID 创建。 -**注意** - - - -创建 Outline 需要进入对应的数据库下执行。 - -#### **使用 SQL_TEXT 创建** Outline - -使用 SQL_TEXT 创建 Outline 后,会生成一个 Key-Value 对存储在 Map 中,其中 Key 为绑定的 SQL 参数化后的文本,Value 为绑定的 Hint。具体参数化原则,请参见 **快速参数化的** 约束条件内容。 - -使用 SQL_TEXT 创建 Outline 的语法如下: - -```javascript -obclient>CREATE [OR REPLACE] OUTLINE ON [ TO ]; -``` - - - -说明如下: - -* 指定 `OR REPLACE` 后,可以对已经存在执行计划进行替换。 - - - -* 其中 `stmt` 一般为一个带有 Hint 和原始参数的 DML 语句。 - - - -* 如果不指定 `TO target_stmt`, 则表示如果数据库接受的 SQL 参数化后与 stmt 去掉 Hint 参数化文本相同,则将该 SQL 绑定 `stmt` 中 Hint 生成执行计划。 - - - -* 如果期望对含有 Hint 的语句进行固定计划,则需要 `TO target_stmt` 来指明原始的 SQL。 - - - - - -**注意** - - - -在使用 `target_stmt` 时,严格要求 `stmt` 与 `target_stmt` 在去掉 Hint 后完全匹配。 - -示例如下: - -```javascript -obclient>CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT, c3 INT, INDEX idx_c2(c2)); -Query OK, 0 rows affected (0.12 sec) - -obclient> INSERT INTO t1 VALUES(1, 1, 1), (2, 2, 2), (3, 3, 3); -Query OK, 1 rows affected (0.12 sec) - -obclient> EXPLAIN SELECT * FROM t1 WHERE c2 = 1\G; -*************************** 1. row *************************** -Query Plan: -=================================== -|ID|OPERATOR |NAME|EST. ROWS|COST| ------------------------------------ -|0 |TABLE SCAN|t1 |1 |37 | -=================================== -Outputs & filters: -------------------------------------- - 0 - output([t1.c1], [t1.c2], [t1.c3]), filter([t1.c2 = 1]), - access([t1.c2], [t1.c1], [t1.c3]), partitions(p0) -``` - - - -优化器选择了走主键扫描,如果数据量增大,如果执行索引 idx_c2,该 SQL 会更优化。此时可以通过创建 Outline 将该 SQL 绑定索引计划并执行。 - -根据如下 SQL 语句,创建 Outline: - -```javascript -obclient>CREATE OUTLINE otl_idx_c2 - ON SELECT/*+ INDEX(t1 idx_c2)*/ * FROM t1 WHERE c2 = 1; -Query OK, 0 rows affected (0.04 sec) -``` - - - -#### **使用 SQL_ID 创建 O** utline - -使用 SQL_ID 创建 Outline 的语法如下: - - - -```unknow -obclient>CREATE OUTLINE outline_name ON sql_id USING HINT hint_text; -``` - - - -说明如下: - -* `sql_id` 为需要绑定的 SQL 对应的 `sql_id`。`sql_id` 可通过以下方式获取: - - - - - - - - - - -使用 `sql_id` 绑定 Outline,如下例所示: - -```javascript -obclient>CREATE OUTLINE otl_idx_c2 ON "ED570339F2C856BA96008A29EDF04C74" -USING HINT /*+ INDEX(t1 idx_c2)*/ ; -``` - - -**注意** - - - -* Hint 格式为` /*+ xxx */`,关于 Hint 说明的详细信息,请参考 [Optimizer Hint。](../../../12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/1.optimizer-hint-1.md) - - - -* 使用 SQL_TEXT 方式创建的 Outline 会覆盖 `sql_id` 方式创建的 Outline。SQL_TEXT 方式创建的优先级更高。 - - - -* 如果 `sql_id` 对应的 SQL 语句已经有 Hint,则创建 Outline 指定的 Hint 会覆盖原始语句中所有 Hint。 - - - - - - -Outline Data是优化器为了完全复现某一计划而生成的一组 Hint 信息,以`BEGIN_OUTLINE_DATA`开始,并以 `END_OUTLINE_DATA`结束。 - -Outline Data 可以通过 `EXPLAIN EXTENDED` 命令获得,如下例所示: - -```javascript -obclient>EXPLAIN EXTENDED SELECT/*+ index(t1 idx_c2)*/ * FROM t1 WHERE c2 = 1\G; -*************************** 1. row *************************** -Query Plan: -| ========================================= -|ID|OPERATOR |NAME |EST. ROWS|COST| ------------------------------------------ -|0 |TABLE SCAN|t1(idx_c2)|1 |88 | -========================================= - -Outputs & filters: -------------------------------------- - 0 - output([t1.c1(0x7ff95ab37448)], [t1.c2(0x7ff95ab33090)], [t1.c3(0x7ff95ab377f0)]), filter(nil), - access([t1.c2(0x7ff95ab33090)], [t1.c1(0x7ff95ab37448)], [t1.c3(0x7ff95ab377f0)]), partitions(p0), - is_index_back=true, - range_key([t1.c2(0x7ff95ab33090)], [t1.c1(0x7ff95ab37448)]), range(1,MIN ; 1,MAX), - range_cond([t1.c2(0x7ff95ab33090) = 1(0x7ff95ab309f0)]) - -Used Hint: -------------------------------------- - /*+ - INDEX(@"SEL$1" "test.t1"@"SEL$1" "idx_c2") - */ - -Outline Data: -------------------------------------- - /*+ - BEGIN_OUTLINE_DATA - INDEX(@"SEL$1" "test.t1"@"SEL$1" "idx_c2") - END_OUTLINE_DATA - */ - -Plan Type: -------------------------------------- -LOCAL - -Optimization Info: -------------------------------------- - -t1:table_rows:3, physical_range_rows:1, logical_range_rows:1, index_back_rows:1, output_rows:1, est_method:local_storage, optimization_method=cost_based, avaiable_index_name[idx_c2], pruned_index_name[t1] -level 0: -*********** - paths(@1101710651081553(ordering([t1.c2], [t1.c1]), cost=87.951827)) -``` - - - -其中 Outline Data 信息如下例所示: - -```javascript - /*+ - BEGIN_OUTLINE_DATA - INDEX(@"SEL$1" "test.t1"@"SEL$1" "idx_c2") - END_OUTLINE_DATA - */ -``` - - - -Outline Data 也是 Hint,因此可以用在计划绑定的过程中,如下例所示: - -```javascript -obclient> CREATE OUTLINE otl_idx_c2 - ON "ED570339F2C856BA96008A29EDF04C74" - USING HINT /*+ - BEGIN_OUTLINE_DATA - INDEX(@"SEL$1" "test.t1"@"SEL$1" "idx_c2") - END_OUTLINE_DATA - */; -Query OK, 0 rows affected (0.01 sec) -``` - - - - - -确定 Outline 创建生效 ------------------------- - -确定创建的 Outline 是否成功且符合预期,需要进行如下三步的验证: - -1. 确定是否创建 Outline 成功。 - - 通过查看 gv$outline 中的表,确认是否成功创建对应的 Outline 名称的 Outline。 - - ```javascript - obclient> SELECT * FROM oceanbase.gv$outline WHERE OUTLINE_NAME = 'otl_idx_c2'\G; - - *************************** 1. row *************************** - tenant_id: 1001 - database_id: 1100611139404776 - outline_id: 1100611139404777 - database_name: test - outline_name: otl_idx_c2 - visible_signature: SELECT * FROM t1 WHERE c2 = ? - sql_text: SELECT/*+ index(t1 idx_c2)*/ * FROM t1 WHERE c2 = 1 - outline_target: - outline_sql: SELECT /*+ BEGIN_OUTLINE_DATA INDEX(@"SEL$1" "test.t1"@"SEL$1" "idx_c2") END_OUTLINE_DATA*/* - FROM t1 WHERE c2 = 1 - ``` - - - - - - - - -2. 确定新的 SQL 执行是否通过绑定的 Outline 生成了新计划。 - - 当绑定 Outline 的 SQL 有新的流量查询后,查询 `gv$plan_cache_plan_stat` 表中该 SQL 对应的计划信息中 `outline_id`。如果 `outline_id` 是在 gv$outline 中查到的 `outline_id` 则表示该计划是按绑定的 Outline 生成的执行计划,否则不是。 - - ```javascript - obclient>SELECT SQL_ID, PLAN_ID, STATEMENT, OUTLINE_ID, OUTLINE_DATA - FROM oceanbase.gv$plan_cache_plan_stat - WHERE STATEMENT LIKE '%SELECT * FROM t1 WHERE c2 =%'\G; - *************************** 1. row *************************** - sql_id: ED570339F2C856BA96008A29EDF04C74 - plan_id: 17225 - statement: SELECT * FROM t1 WHERE c2 = ? - outline_id: 1100611139404777 - outline_data: /*+ BEGIN_OUTLINE_DATA INDEX(@"SEL$1" "test.t1"@"SEL$1" "idx_c2") END_OUTLINE_DATA*/ - ``` - - - - - - - - -3. 确定生成的执行计划是否符合预期。 - - 确定是通过绑定的 Outline 生成的计划后,需要确定生成的计划是否符合预期,可以通过查询`gv$plan_cache_plan_stat` 表查看 `plan_cache` 中缓存的执行计划形状,具体查看方式可参考 - - [实时执行计划展示](../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/5.real-time-execution-plan-display-3.md)。 - - ```javascript - obclient>SELECT OPERATOR, NAME FROM oceanbase.gv$plan_cache_plan_explain - WHERE TENANT_ID = 1001 AND IP = '10.101.163.87' - AND PORT = 30474 AND PLAN_ID = 17225; - - +--------------------+------------+ - | OPERATOR | NAME | - +--------------------+------------+ - | PHY_ROOT_TRANSMIT | NULL | - | PHY_TABLE_SCAN | t1(idx_c2) | - +--------------------+------------+ - ``` - - - - - - -删除 Outline -------------------------------- - -删除 Outline 后,对应 SQL 重新生成计划时将不再依据绑定的 Outline 生成。删除 Outline 的语法如下: - -```javascript -DROP OUTLINE outline_name; -``` - - -**注意** - - - -删除 Outline 需要在 `outline_name` 中指定 Database 名,或者在 `USE DATABASE` 命令后执行。 - -计划绑定与执行计划缓存关系 ----------------------- - -* 使用 SQL_TEXT 创建 Outline 后,SQL 请求生成新计划查找 Outline 使用的 Key 与计划缓存使用的 Key 相同,均是 SQL 参数化后的文本串。 - - - -* 当创建和删除 Outline 后,对应 SQL 有新的请求时,会触发执行计划缓存中对应执行计划失效,更新为绑定的 Outline 生成的执行计划。 - - - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/3.sql-execution-plan-management-spm-1.md b/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/3.sql-execution-plan-management-spm-1.md deleted file mode 100644 index 784e8bb32..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/3.sql-execution-plan-management-spm-1.md +++ /dev/null @@ -1,192 +0,0 @@ -执行计划管理 -=========================== - -SQL Plan Management(SPM)是一种稳定执行计划、控制计划演进的机制,确保新生成的计划在经过验证后才能使用,保证计划性能朝好的方向不断更新。 - -SPM 基于 SQL Plan Baseline 实现,SQL Plan Baseline 是执行计划的一个基线,持久化存储已经验证过的执行计划的信息(outline_data 等信息),每个执行计划可对应一个 Plan Baseline,通过该 Plan Baseline 可复现一个执行计划。 - -SPM 包含如下过程: - -1. 计划捕获。 - - 对于新生成的计划,如果 SQL Plan Baseline 为空,则直接加入 SQL Plan Baseline,否则通过演进验证新生成计划比 SQL Plan Baseline 中计划性能更优后加入 SQL Plan Baseline,并删除旧的 Plan Baseline。 - - - - - - - -2. 计划演进。 - - 相同 SQL 新捕获的计划如果和 SQL Plan Baseline 中计划不一样,则通过流量灰度验证新计划性能是否比以前验证过的计划更优。如果更优,则将新计划加入 SQL Plan Baseline,并执行新计划,否则仍使用旧计划。 - - - - - - - -3. 计划选择。 - - 在优化器新生成计划时,会查看 SQL Plan Baseline 是否有已验证的计划,如果有,则优先使用已验证计划,新计划需要通过演进验证后再使用。 - - - - - - - -SPM 的系统变量 ------------------- - -SPM 使用如下系统变量和系统包对执行计划进行管理: - - -| **系统变量** | **取值** | **解释** | -|--------------------------------------|--------|---------------------------------------------------------------------------------------------------------------------------------------| -| optimizer_capture_sql_plan_baselines | true | 对于新生成的计划,如果该 SQL 没有对应的 Plan Baseline,则将该计划加入到 SQL Plan Baseline;如果已有 Plan Baseline 且与新计划不同,则会触发计划演进进行验证,确定是否需要将新计划替换老的 Plan Baseline。 | -| optimizer_capture_sql_plan_baselines | false | 再自动捕获新计划到 Plan Baseline 中。 | -| optimizer_use_sql_plan_baselines | true | 在新生成计划时,优化器会优先使用 Plan Baseline 计划,对于新的不同计划则验证后通过后才使用。 | -| optimizer_use_sql_plan_baselines | false | 在新生成计划时,不在考虑 Plan Baseline 中计划,直接使用优化器新生成计划并执行。 | - - - -设置说明如下: - - -| **optimizer_capture_sql_plan_baselines 的取值** | **optimizer_use_sql_plan_baselines 的取值** | **说明** | -|----------------------------------------------|------------------------------------------|-------------------------------------------------------------------------------------| -| True | True | 计划捕获和演进均打开,优化器会使用 Plan Baseline 计划。 | -| True | False | Plan Baseline 中无计划时会捕获计划到 Plan Baseline,不演进,优化器不考虑 Plan Baseline 计划,使用新生成计划。 | -| False | True | 不捕获计划到 Plan Baseline, 优化器会使用 Plan Baseline 计划,如果 SQL Plan Baseline 没有对应计划,则使用新生成计划。 | -| False | False | 不捕获计划,不演进,优化器不使用 Plan Baseline 计划,使用新生成的计划。 | - - - -DBMS_SPM ------------------ - -DBMS_SPM 是用于操作 SPM 的命令包,可支持加载、更改以及删除 Plan Baseline 信息。 - -#### **LOAD_PLANS_FROM_CURSOR_CACHE** - -LOAD_PLANS_FROM_CURSOR_CACHE 用于将 plan cache 中执行计划对应的 Plan Baseline 信息加载到 _ _all_tenant_plan_baseline 表中。语法如下: -**说明** - - - -_ _all_tenant_plan_baseline 为 OceanBase 数据库内部表。 - -```javascript -DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE ( - sql_id IN VARCHAR2, - plan_hash_value IN NUMBER := NULL, - fixed IN VARCHAR2 := 'NO', - enabled IN VARCHAR2 := 'YES') - RETURN PLS_INTEGER; -``` - - - -参数解释如下: - - -| 参数 | 解释 | -|-----------------|-------------------------------------------------------------| -| sql_id | SQL 的唯一标识。 | -| plan_hash_value | plan 的唯一标识。如果为空,则处理 sql_id 下的所有计划。 | -| fixed | 加入到 SQL Plan Baseline 后是否将该计划固化。固化后以后优化器会直接选择该计划,不再捕获和演进计划。 | -| enabled | 优化器是否可以使用该 Plan Baseline。 | - - - -如下例所示: - -```javascript -DECLARE - v_load_plans number; -BEGIN - v_load_plans := DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE( - sql_id => '529F6E6454EF579C7CC265D1F6131D70', - plan_hash_value => 13388268709115914355); -END; -/ -``` - - - -#### **ALTER_SQL_PLAN_BASELINE** - -ALTER_SQL_PLAN_BASELINE 用于修改 Plan Baseline 中某些属性。语法如下: - -```javascript -DBMS_SPM.ALTER_SQL_PLAN_BASELINE ( - sql_handle IN VARCHAR2 := NULL, - plan_name IN VARCHAR2 := NULL, - attribute_name IN VARCHAR2, - attribute_value IN VARCHAR2) - RETURN PLS_INTEGER; -``` - - - -参数解释如下: - - -| 参数 | 解释 | -|-----------------|------------------------------------------------| -| sql_handle | SQL 的唯一标识。先用 sql_id 代替。 | -| plan_name | plan 的唯一标识。先使用 plan_hash_value 代替。 | -| attribute_name | 需要更改的字段名。OceanBase 数据库支持修改 enabled 和 fixed 字段。 | -| attribute_value | 更改后的值。 | - - - -如下示例所示,将某个 Plan Baseline 固化后该 SQL 仅使用该计划: - -```javascript -DECLARE - v_alter_plans number; -BEGIN - v_alter_plans := DBMS_SPM.ALTER_SQL_PLAN_BASELINE( - sql_handle => '529F6E6454EF579C7CC265D1F6131D70', - plan_name => '3388268709115914355', - attribute_name => 'fixed', - attribute_value => 'YES' ); -END; -/ -``` - - - - - -#### **DROP_SQL_PLAN_BASELINE** - -DROP_SQL_PLAN_BASELINE 用于删掉某个 Plan Baseline。语法如下: - -```javascript -DBMS_SPM.DROP_SQL_PLAN_BASELINE ( - sql_handle IN VARCHAR2 := NULL, - plan_name IN VARCHAR2 := NULL) -RETURN PLS_INTEGER; -``` - - - -示例如下: - -```javascript -DECLARE - v_drop_plans number; -BEGIN - v_drop_plans := DBMS_SPM.DROP_SQL_PLAN_BASELINE( - sql_handle => '529F6E6454EF579C7CC265D1F6131D70', - plan_name => '3388268709115914355' ); -END; -/ -``` - - - diff --git a/docs/docs-cn/12.sql-optimization-guide-1/5.related-terms.md b/docs/docs-cn/12.sql-optimization-guide-1/5.related-terms.md deleted file mode 100644 index 24507a4bd..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/5.related-terms.md +++ /dev/null @@ -1,52 +0,0 @@ -相关术语 -========================= - - - -**执行计划** - -优化器为某条 SQL 生成的执行过程,一般使用操作符树来表示。 - -#### **本地计划** - -当执行计划只涉及到单表或分区表的单个分区,且该表或分区在本节点时,该计划为"本地计划"。 - -#### **远程计划** - -当执行计划只涉及到单表或分区表的单个分区,且该表或分区在其他节点时,该计划为"远程计划"。 - -#### **分布式计划** - -当执行计划涉及到多表或多分区时,该计划为分布式计划。 - -#### **访问路径** - -访问某张表时使用的访问方式,包括主表访问和二级索引访问两类。具体参见 [访问路径](../12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/1.overview-16.md)。 - -#### **联接顺序** - -多表联接时各表之间的联接顺序,目前 OceanBase 数据库仅支持左深树的联接顺序。具体参见 [联接顺序](../12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/3.join-order-3.md)。 - -#### **联接算法** - -执行两表联接时使用的算法,包括 NESTED LOOP JOIN、MERGE JOIN 和 HASH JOIN 三种。 - -#### **查询改写** - -通过对用户查询做等价的改写以便于生成最佳执行计划的过程。 - -#### **执行计划绑定** - -用户通过给定 outline 来指定某条 SQL 的执行计划的过程,具体参见 [计划绑定](../12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/2.plan-binding-1.md)。 - -#### **SQL Plan Management(** **SPM)** - -一种计划演进的机制。当优化器生成新的计划时,需要通过演进机制来保证这个计划的性能不会出现回退,如果出现回退,就拒绝使用该计划,否则使用该计划。 - -#### **Adaptive Cursor Sharing(ACS)** - -一种可以让优化器每一个参数化 SQL 存储多个计划,并根据 SQL 语句中谓词的选择率空间选择合适的计划的机制。 - -#### **Data Flow Object(DFO)** - -分布式计划以数据重分布点为边界,切分为可以并行执行的逻辑子计划,每个子计划由一个 DFO 进行封装。 diff --git a/docs/docs-cn/12.sql-optimization-guide-1/6.faq-about-sql-tuning.md b/docs/docs-cn/12.sql-optimization-guide-1/6.faq-about-sql-tuning.md deleted file mode 100644 index d8ac3483f..000000000 --- a/docs/docs-cn/12.sql-optimization-guide-1/6.faq-about-sql-tuning.md +++ /dev/null @@ -1,56 +0,0 @@ -SQL 调优常见问题 -=============================== - - - -用户 SQL 写法未遵循 OceanBase 数据库开发规范 ---------------------------------------------------- - -用户 SQL 的写法对 SQL 的执行性能有决定性的作用。在使用过程中,用户应尽量遵循 OceanBase 数据库开发规范的要求。 - -代价模型缺陷导致的执行计划选择错误 --------------------------------------- - -OceanBase 数据库内建的代价模型是服务器的固有逻辑,最佳的执行计划依赖此代价模型。因此,一旦出现由代价模型导致的计划选择错误,用户只能通过执行计划绑定来确保选择"正确"的执行计划。 - -数据统计信息不准确 ------------------------------- - -查询优化过程依赖数据统计信息的准确性,OceanBase 数据库的优化器默认会在数据合并过程中收集一些统计信息,当用对数据进行了大量修改时,可能会导致统计信息落后于真实数据的特征,用户可以通过发起每日合并,主动更新统计信息。 - -除了优化器收集的统计信息以外,优化器还会根据查询条件对存储层进行采样,用以后续的优化选择。OceanBase 数据库目前仅支持对本地存储进行采样,对于数据分区在远程节点上的情况,只能使用默认收集的统计信息进行代价估计,可能会引入代价偏差。 - -数据库物理设计降低查询性能 ----------------------------------- - -查询的性能很大程度上取决于数据库的物理设计,包括所访问对象的 schema 信息等。例如,对于二级索引,如果所需的投影列没有包括在索引列之中,则需要使用回表的机制访问主表,查询的代价会增加很多。此时,可以考虑将用户的投影列加入到索引列中,构成所谓的"覆盖索引",避免回表访问。 - -系统负载影响单条 SQL 的响应时间 ---------------------------------------- - -系统的整体负载除了会影响系统的整体吞吐量,也会引起单条 SQL 的响应时间变化。OceanBase 数据库的 SQL 引擎采用队列模型,针对用户请求,如果可用线程全部被占用,则新的请求需要在请求队列中排队,直到某个线程完成当前请求。请求在队列中的排队时间可以在 (g)v$sql_audit 中看到。 - -客户端路由与服务器之间出现路由反馈逻辑错误 ------------------------------------------- - -OBProxy 的一个主要功能是将 SQL 查询路由到恰当的服务器节点。具体来说,如果用户查询没有指定使用弱一致性读属性,Proxy 需要将其路由到所涉及的表(或具体分区)的主节点上,以避免服务器节点之前的二次转发;否则,Proxy 会根据预先设置好的规则将其转发到恰当的节点。 - -由于 Proxy 与服务器之间采用松耦合的方式,Proxy 上缓存的数据物理分布信息刷新可能不及时,导致错误的路由选择。可能导致路由信息变化的场景有: - -* 网络不稳导致服务器间重新选主 - - - -* 由服务器上下线、轮转合并等导致的重新选主 - - - -* 负载均衡导致重新选主 - - - - - - -当在 SQL audit 或执行计划缓存中发现有大量远程执行时,需要考虑是否与上述场景吻合。客户端与服务器之间有路由反馈逻辑,一旦发生错误,客户端会主动刷新数据物理分布信息,随后路由的选择也将恢复正常。 - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/1.overview-4.md b/docs/docs-cn/13.reference-guide/1.system-view/1.overview-4.md deleted file mode 100644 index a84b522d0..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/1.overview-4.md +++ /dev/null @@ -1,109 +0,0 @@ -概述 -======================= - - - -**内部表定义** - -OceanBase 数据库内部表包含了以下几类: - -* 核心系统表(简称核心表) - - - -* 普通系统表 - - - -* 虚拟表 - - - -* `Information_Schema` 表 - - - - - - -**多租户** - -OceanBase 数据库为多租户架构,租户分为两种类型:普通租户以及 `sys` 租户。OceanBase 数据库系统表都存储在 `sys` 租户,且主键中存储租户号(`tenant_id`),区分每个租户的内容。每个租户内部创建一个该租户数据的只读视图。 - -引入多租户后,系统表格命名如下: - -* 所有以 `__all `开头的表格包含所有租户的数据,所有以` __tenant` 开头的表格仅包含单个租户内部的数据。 - - - -* 虚拟表的前缀分别为 `__all_virtual `以及 `__tenant_virtual`。 - - 例如,`__all_virtual_session_variable` 包含所有租户的 Session 变量信息,且内部实现为虚拟表;而`__tenant_virtual_session_variable` 只包含单个租户的 Session 变量信息,内部实现为虚拟表。 - - - - - -`s``ys` 租户和普通租户包含的系统表说明如下: - -* sys 租户 - - * 核心表 - - 包括 `__all_core_table`、`__all_root_table`、`__all_table`、`__all_column`、`__all_database`、 `__all_tablegroup`、`__all_tenant`、以及 `__all_ddl_operation`。 - - - * 模式及用户权限表 - - 除了 `__all_table`、`__all_column`,还包括` __all_part`、`__all_database`、`__all_tablegroup` 以及 `__all_user`、`__all_table_privilege`、`__all_database_privilege`。 - - - * 分表位置信息表 - - 分为两级,第一级为 `__all_root_table`,不可分区;第二级为 `__all_meta_table`。 - - 所有系统表的位置信息都记录在 `__all_root_table` 中。 - - - * 租户、Resource Pool、Unit 相关的系统表 - - - - * Zone 和服务器等部署相关的系统表 - - - - * 系统配置相关的表:`__all_sys_parameter` - - - - * 系统变量及系统状态相关的表:`__all_sys_variable`、`__all_sys_stat` - - - - * DDL 操作相关的表:` __all_ddl_operation` - - - - * 其它表,例如各种统计信息以及为了实现某个功能而加入的系统表 - - - - - - -* 普通租户 - - * 以 `__tenant` 作为表名前缀的只读视图,表示租户内信息 - - - - * `Information_schema`:SQL 标准定义的 `information_schema` 视图,是其它系统表的视图。 - - - - - - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/1.mysql-help_topic.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/1.mysql-help_topic.md deleted file mode 100644 index 0625b4bf3..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/1.mysql-help_topic.md +++ /dev/null @@ -1,44 +0,0 @@ -mysql.help_topic -===================================== - - - -**功能** ---------------------------- - -与其他三个表 mysql.help_category、mysql.help_relation、mysql.help_keyword 合作生成 help 命令。 - -**相关表/视图** -------------------------------- - -* mysql.help_category - - - -* mysql.help_relation - - - -* mysql.help_keyword - - - - - - -字段说明 -------------------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------|----------------|----------------|--------| -| help_topic_id | bigint(20) | NO | 主题 ID | -| name | varchar(64) | NO | 主题名 | -| help_category_id | bigint(20) | NO | 类目 ID | -| description | varchar(65535) | NO | 描述 | -| example | varchar(65535) | NO | 示例 | -| url | varchar(65535) | NO | url 地址 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/10.mysql-time_zone_transition_type.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/10.mysql-time_zone_transition_type.md deleted file mode 100644 index db4c0f771..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/10.mysql-time_zone_transition_type.md +++ /dev/null @@ -1,30 +0,0 @@ -mysql.time_zone_transition_type -==================================================== - - - -功能 ------------ - -用于记录时区转换类型(SYSTEM_VIEW)。 - -相关表/视图 ---------------- - -__all_time_zone_transition_type - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------|------------|----------------|-----------| -| Time_zone_id | bigint(20) | NO | 时区 ID | -| Transition_type_id | bigint(20) | NO | 时区转换类型 ID | -| Offset | bigint(20) | NO | 时区偏移 | -| Is_DST | bigint(20) | NO | 是否为夏令时 | -| Abbreviation | varchar(8) | NO | 缩写 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/11.mysql-user.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/11.mysql-user.md deleted file mode 100644 index 092e81227..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/11.mysql-user.md +++ /dev/null @@ -1,67 +0,0 @@ -mysql.user -=============================== - - - -功能 ------------ - -用于记录用户级别的权限信息(VIRTUAL_TABLE)。 - -相关表/视图 ---------------- - -无 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------------|---------------|----------------|---------------------------------------------------| -| host | varchar(128) | NO | 主机名 | -| user | varchar(128) | NO | 用户名 | -| password | varchar(128) | NO | 用户密码 | -| select_priv | varchar(1) | NO | 是否可执行 select 语句 | -| insert_priv | varchar(1) | NO | 是否可执行 insert 语句 | -| update_priv | varchar(1) | NO | 是否可执行 update 语句 | -| delete_priv | varchar(1) | NO | 是否可执行 delete 语句 | -| create_priv | varchar(1) | NO | 是否可执行 create 语句 | -| drop_priv | varchar(1) | NO | 是否可执行 drop 语句 | -| reload_priv | varchar(1) | NO | 是否可执行 flush 语句。目前暂未使用该字段 | -| shutdown_priv | varchar(1) | NO | 是否可执行 shutdown 命令。目前暂未使用该字段 | -| process_priv | varchar(1) | NO | 是否可查询活跃线程信息 | -| file_priv | varchar(1) | NO | 是否具有文件读写权限。目前暂未使用该字段 | -| grant_priv | varchar(1) | NO | 是否可执行授权语句 | -| reference_priv | varchar(1) | NO | 暂未使用 | -| index_priv | varchar(1) | NO | 是否可创建索引 | -| alter_priv | varchar(1) | NO | 是否可执行 alter 语句 | -| show_db_priv | varchar(1) | NO | 是否可执行 `show database `语句 | -| super_priv | varchar(1) | NO | 是否可执行超级用户语句 | -| create_tmp_table_priv | varchar(1) | NO | 是否可创建临时表(未使用) | -| lock_tables_priv | varchar(1) | NO | 是否可执行` lock tables ` 语句。目前暂未使用该字段 | -| execute_priv | varchar(1) | NO | 是否可执行存储过程。目前暂未使用该字段 | -| repl_slave_priv | varchar(1) | NO | 暂未使用 | -| repl_client_priv | varchar(1) | NO | 暂未使用 | -| create_view_priv | varchar(1) | NO | 是否可创建视图 | -| show_view_priv | varchar(1) | NO | 是否可执行 `show create view` 语句 | -| create_routine_priv | varchar(1) | NO | 是否可创建存储过程。目前暂未使用该字段 | -| alter_routine_priv | varchar(1) | NO | 是否可更改存储过程。目前暂未使用该字段 | -| create_user_priv | varchar(1) | NO | 是否可执行` create user` 语句 | -| event_priv | varchar(1) | NO | 是否可创建更改删除 event。目前暂未使用该字段 | -| trigger_priv | varchar(1) | NO | 是否具有操作 trigger 的权限。目前暂未使用该字段 | -| create_tablespace_priv | varchar(1) | NO | 是否可创建 tablespace。目前暂未使用该字段 | -| ssl_type | varchar(10) | NO | 目前暂未使用该字段 | -| ssl_cipher | varchar(1024) | NO | 目前暂未使用该字段 | -| x509_issuer | varchar(1024) | NO | 目前暂未使用该字段 | -| x509_subject | varchar(1024) | NO | 目前暂未使用该字段 | -| max_questions | bigint(20) | NO | 用户每小时可执行的最大查询数(未使用) | -| max_updates | bigint(20) | NO | 用户每小时可执行的最大更新数。目前暂未使用该字段 | -| max_connections | bigint(20) | NO | 用户每小时可接收的最大连接数。目前暂未使用该字段 | -| max_user_connections | bigint(20) | NO | 同时请求的最大连接数。目前暂未使用该字段 | -| plugin | varchar(1024) | NO | 目前暂未使用该字段 | -| authentication_string | varchar(1024) | NO | 目前暂未使用该字段 | -| password_expired | varchar(1) | NO | 用户密码是否过期。目前暂未使用该字段 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/12.information_schema-character_sets.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/12.information_schema-character_sets.md deleted file mode 100644 index db8518780..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/12.information_schema-character_sets.md +++ /dev/null @@ -1,28 +0,0 @@ -information_schema.CHARACTER_SETS -====================================================== - - - -功能 ------------ - -记录 OceanBase 数据库的字符集信息。 - -相关表/视图 ---------------- - -__all_charset - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------------|--------------|----------------|---------| -| CHARACTER_SET_NAME | varchar(128) | NO | 字符集名称 | -| DEFAULT_COLLATE_NAME | varchar(128) | NO | 字符集比对方法 | -| DESCRIPTION | varchar(64) | NO | 字符集描述描述 | -| MAXLEN | bigint(20) | NO | 字符集最大长度 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/13.information_schema-collations.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/13.information_schema-collations.md deleted file mode 100644 index 9b41ea855..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/13.information_schema-collations.md +++ /dev/null @@ -1,31 +0,0 @@ -information_schema.COLLATIONS -================================================== - - - -功能 ------------ - -记录每个字符集的比对方法信息。 - -相关表/视图 ---------------- - -__all_collation - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | | -|--------------------|--------------|----------------|---------------------------| -| COLLATION_NAME | varchar(128) | NO | 比对方法名称 | -| CHARACTER_SET_NAME | varchar(128) | NO | 和 collation 关联的字符集名称 | -| ID | bigint(20) | NO | collation 的 ID | -| IS_DEFAULT | varchar(4) | NO | collation 是否是对应字符集的默认比对方法 | -| IS_COMPILED | varchar(4) | NO | 字符集是否被编译到服务器中 | -| SORTLEN | bigint(20) | NO | 排序字符集需要用到的内存大小 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/14.information_schema-collation_character_set_applicability.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/14.information_schema-collation_character_set_applicability.md deleted file mode 100644 index 854ca5c75..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/14.information_schema-collation_character_set_applicability.md +++ /dev/null @@ -1,21 +0,0 @@ -information_schema.COLLATION_CHARACTER_SET_APPLICABILITY -============================================================================= - - - -功能 ------------ - -记录 character 和 collation 之间的对应关系。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------|--------------|----------------|--------| -| COLLATION_NAME | varchar(128) | NO | 比对方法名称 | -| CHARACTER_SET_NAME | varchar(128) | NO | 字符集名称 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/15.information_schema-columns.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/15.information_schema-columns.md deleted file mode 100644 index 7ac2b7d33..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/15.information_schema-columns.md +++ /dev/null @@ -1,58 +0,0 @@ -information_schema.COLUMNS -=============================================== - - - -功能 ------------ - -记录列信息。 - -相关表/视图 ---------------- - -* __all_column - - - -* __all_column_statistic - - - -* __all_column_history - - - - - - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------------|---------------------|----------------|--------------------------------| -| TABLE_CATALOG | varchar(4096) | NO | 固定值(def) | -| TABLE_SCHEMA | varchar(128) | NO | Column 对应的表所属的库 | -| TABLE_NAME | varchar(128) | NO | Column 对应的表名 | -| COLUMN_NAME | varchar(128) | NO | 列名 | -| ORDINAL_POSITION | bigint(20) unsigned | NO | 列编号 | -| COLUMN_DEFAULT | varchar(262144) | YES | 列默认值 | -| IS_NULLABLE | varchar(4) | NO | 列值是否可以为 NULL | -| DATA_TYPE | varchar(64) | NO | 列中数据类型 | -| CHARACTER_MAXIMUM_LENGTH | bigint(20) unsigned | YES | 列的最大字符数 | -| CHARACTER_OCTET_LENGTH | bigint(20) unsigned | YES | 列的最大字节数 | -| NUMERIC_PRECISION | bigint(20) unsigned | YES | 数字精度 | -| NUMERIC_SCALE | bigint(20) unsigned | YES | 小数位数 | -| DATETIME_PRECISION | bigint(20) unsigned | YES | datetime 类型精度 | -| CHARACTER_SET_NAME | varchar(128) | YES | 列对应字符集名称 | -| COLLATION_NAME | varchar(128) | YES | 字符集比对方法 | -| COLUMN_TYPE | varchar(64) | NO | 字段类型 | -| COLUMN_KEY | varchar(3) | NO | 索引或者主键列 | -| EXTRA | varchar(4096) | NO | 其它信息 | -| PRIVILEGES | varchar(200) | NO | 权限信息 | -| COLUMN_COMMENT | varchar(2048) | NO | 注释 | -| GENERATION_EXPRESSION | varchar(262144) | NO | 对于生成的列,显示用于计算列值的表达式。 对于非生成列为空。 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/16.information_schema-dba_outlines.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/16.information_schema-dba_outlines.md deleted file mode 100644 index 3e31ebff4..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/16.information_schema-dba_outlines.md +++ /dev/null @@ -1,35 +0,0 @@ -information_schema.DBA_OUTLINES -==================================================== - - - -功能 ------------ - -记录 outline相关信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------|------------------|----------------|-------------| -| NAME | varchar(128) | NO | Outline 名称 | -| OWNER | varchar(32) | NO | 所属用户 | -| DB_NAME | varchar(128) | NO | 数据库名称 | -| CATEGORY | null | NO | 分类 | -| USED | bigint(20) | NO | 是否使用 | -| TIMESTAMP | timestamp(6) | YES | 时间戳 | -| VERSION | varchar(256) | NO | 版本 | -| SQL_TEXT | varchar(65536) | NO | SQL 文本 | -| SIGNATURE | varbinary(65536) | NO | 标识符 | -| COMPATIBLE | bigint(20) | NO | 兼容性 | -| ENABLED | bigint(20) | NO | 是否可用 | -| FORMAT | bigint(20) | NO | 格式 | -| OUTLINE_CONTENT | varchar(65536) | NO | Outline 内容 | -| OUTLINE_TARGET | varchar(65536) | NO | 目标 SQL | -| OWNER_ID | bigint(20) | YES | 所属用户 ID | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/17.information_schema-engines.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/17.information_schema-engines.md deleted file mode 100644 index 5a4cf9cc5..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/17.information_schema-engines.md +++ /dev/null @@ -1,26 +0,0 @@ -information_schema.ENGINES -=============================================== - - - -功能 ------------ - -记录存储引擎相关信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------|---------------|----------------|-----------------| -| Engine | varchar(64) | NO | 引擎类型 | -| Support | varchar(4) | NO | 是否支持当前存储引擎 | -| Comment | varchar(2048) | NO | 注释 | -| Transactions | varchar(4) | NO | 事务相关内容 | -| XA | varchar(4) | NO | 分布式事务 XA 相关内容 | -| Savepoints | varchar(4) | NO | Savepoints 相关内容 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/18.information_schema-global_status.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/18.information_schema-global_status.md deleted file mode 100644 index 171955b27..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/18.information_schema-global_status.md +++ /dev/null @@ -1,22 +0,0 @@ -information_schema.GLOBAL_STATUS -===================================================== - - - -功能 ------------ - -记录 OceanBase 数据库的全局状态信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|---------------|----------------|-------------| -| VARIABLE_NAME | varchar(128) | NO | 全局状态对应的变量名称 | -| VARIABLE_VALUE | varchar(1024) | YES | 全局状态对应的变量内容 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/19.information_schema-global_variables.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/19.information_schema-global_variables.md deleted file mode 100644 index 4ebe8103a..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/19.information_schema-global_variables.md +++ /dev/null @@ -1,21 +0,0 @@ -information_schema.GLOBAL_VARIABLES -======================================================== - - - -功能 ------------ - -记录全局变量信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|----------------|----------------|--------| -| VARIABLE_NAME | varchar(128) | NO | 变量名 | -| VARIABLE_VALUE | varchar(65536) | YES | 变量值 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/2.mysql-help_category.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/2.mysql-help_category.md deleted file mode 100644 index 94c973b3c..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/2.mysql-help_category.md +++ /dev/null @@ -1,42 +0,0 @@ -mysql.help_category -======================================== - - - -**功能** ---------------------------- - -与其他三个表 mysql.help_relation、mysql.help_topic、mysql.help_keyword 合作生成 help 命令。 - -**相关表/视图** -------------------------------- - -* mysql.help_relation - - - -* mysql.help_topic - - - -* mysql.help_keyword - - - - - - -**字段说明** ------------------------------ - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------|----------------|----------------|--------| -| help_category_id | bigint(20) | NO | 类目 ID | -| name | varchar(64) | NO | 类目名 | -| parent_category_id | bigint(20) | YES | 父类目 ID | -| url | varchar(65535) | NO | url 地址 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/20.information_schema-key_column_usage.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/20.information_schema-key_column_usage.md deleted file mode 100644 index 1d6d9c215..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/20.information_schema-key_column_usage.md +++ /dev/null @@ -1,46 +0,0 @@ -information_schema.KEY_COLUMN_USAGE -======================================================== - - - -功能 ------------ - -记录 column 中 key 的约束信息。 - -相关表/视图 ---------------- - -* __all_foreign_key_column - - - -* __all_foreign_key_column_history - - - - - - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为空** | **描述** | -|-------------------------------|--------------|------------|-----------------------------------------------------------------------------------------| -| | | | | -| CONSTRAINT_CATALOG | varchar(3) | NO | 固定值(def) | -| CONSTRAINT_SCHEMA | varchar(128) | NO | 数据库名 | -| CONSTRAINT_NAME | varchar(256) | NO | 约束名,为 PRIMARY 或列名或外键名 | -| TABLE_CATALOG | varchar(3) | NO | 表目录 | -| TABLE_SCHEMA | varchar(128) | NO | 数据库名 | -| TABLE_NAME | varchar(256) | NO | 表名 | -| COLUMN_NAME | varchar(128) | NO | 列名 | -| ORDINAL_POSITION | bigint(20) | NO | 该列在表中的编号 | -| POSITION_IN_UNIQUE_CONSTRAINT | null | NO | 对于唯一和主键约束,POSITION_IN_UNIQUE_CONSTRAINT 的值为 NULL。 对于外键约束,它是所引用表内键中的顺序位置 | -| REFERENCED_TABLE_SCHEMA | null | NO | 参考的数据库 | -| REFERENCED_TABLE_NAME | null | NO | 参考的表 | -| REFERENCED_COLUMN_NAME | null | NO | 参考的列 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/21.information_schema-parameters.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/21.information_schema-parameters.md deleted file mode 100644 index 1ba18b38d..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/21.information_schema-parameters.md +++ /dev/null @@ -1,35 +0,0 @@ -information_schema.PARAMETERS -================================================== - - - -功能 ------------ - -提供存储过程参数和返回值相关信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------------|----------------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| SPECIFIC_CATALOG | VARCHAR(4096) | NO | 固定值(def) | -| SPECIFIC_SCHEMA | VARCHAR(128) | NO | 数据库名 | -| SPECIFIC_NAME | VARCHAR(128) | NO | 存储过程名 | -| ORDINAL_POSITION | BIGINT(20) | NO | 参数位置(对于函数的返回值该值是 0) | -| PARAMETER_MODE | VARCHAR(128) | YES | 参数类型: * IN * OUT * INOUT * NULL | -| PARAMETER_NAME | VARCHAR(262144) | YES | 参数名 | -| DATA_TYPE | VARCHAR(128) | NO | 参数数据类型 | -| CHARACTER_MAXIMUM_LENGTH | BIGINT(20) UNSIGNED | YES | 对于 String 类型的参数,记录字符最大长度 | -| CHARACTER_OCTET_LENGTH | BIGINT(20) UNSIGNED | YES | 对于 String 类型的参数,记录字节的最大长度 | -| NUMERIC_PRECISION | BIGINT(20) UNSIGNED | YES | 对于数值类型的参数,记录 Precision | -| NUMERIC_SCALE | BIGINT(20) UNSIGNED | YES | 对于数值类型的参数,记录 Scale | -| DATETIME_PRECISION | BIGINT(20) UNSIGNED | YES | 对于日期类型,记录日期类型的精度 | -| CHARACTER_SET_NAME | VARCHAR(128) | YES | 对于 String 类型的参数,记录字符集 | -| COLLATION_NAME | VARCHAR(128) | YES | 对于 String 类型的参数,记录字符排序规则 | -| DTD_IDENTIFIER | VARCHAR(128) | NO | 字符形式记录数据类型的详细信息 | -| ROUTINE_TYPE | VARCHAR(9) | NO | 存储过程的类型(过程/函数) | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/22.information_schema-partitions.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/22.information_schema-partitions.md deleted file mode 100644 index fb5e94711..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/22.information_schema-partitions.md +++ /dev/null @@ -1,58 +0,0 @@ -information_schema.PARTITIONS -================================================== - - - -功能 ------------ - -记录 partition 信息。 - -相关表/视图 ---------------- - -* gv$partition - - - -* v$partition - - - - - - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------------------------|---------------------|----------------|-------------------------| -| TABLE_CATALOG | varchar(4096) | NO | 固定值(def) | -| TABLE_SCHEMA | varchar(128) | NO | 数据库名 | -| TABLE_NAME | varchar(256) | NO | 表名 | -| PARTITION_NAME | varchar(64) | YES | 分区名 | -| SUBPARTITION_NAME | varchar(64) | YES | 子分区名 | -| PARTITION_ORDINAL_POSITION | bigint(20) unsigned | YES | 当前分区在所有分区中的位置 | -| SUBPARTITION_ORDINAL_POSITION | bigint(20) unsigned | YES | 当前子分区在所有子分区中的位置 | -| PARTITION_METHOD | varchar(18) | YES | 分区类型 | -| SUBPARTITION_METHOD | varchar(18) | YES | 子分区类型 | -| PARTITION_EXPRESSION | varchar(4096) | YES | 分区函数表达式 | -| SUBPARTITION_EXPRESSION | varchar(4096) | YES | 子分区函数表达式 | -| PARTITION_DESCRIPTION | varchar(1024) | YES | 适用于 range 和 list 分区的描述 | -| TABLE_ROWS | bigint(20) unsigned | NO | 目前暂不支持该字段,当前该字段默认为 0 | -| AVG_ROW_LENGTH | bigint(20) unsigned | NO | 目前暂不支持该字段,当前该字段默认为 0 | -| DATA_LENGTH | bigint(20) unsigned | NO | 目前暂不支持该字段,当前该字段默认为 0 | -| MAX_DATA_LENGTH | bigint(20) unsigned | YES | 目前暂不支持该字段,当前该字段默认为 0 | -| INDEX_LENGTH | bigint(20) unsigned | NO | 目前暂不支持该字段,当前该字段默认为 0 | -| DATA_FREE | bigint(20) unsigned | NO | 目前暂不支持该字段,当前该字段默认为 0 | -| CREATE_TIME | timestamp(6) | YES | 目前暂不支持该字段,当前该字段默认为 NULL | -| UPDATE_TIME | timestamp(6) | YES | 目前暂不支持该字段,当前该字段默认为 NULL | -| CHECK_TIME | timestamp(6) | YES | 目前暂不支持该字段,当前该字段默认为 NULL | -| CHECKSUM | bigint(20) | YES | 目前暂不支持该字段,当前该字段默认为 NULL | -| PARTITION_COMMENT | varchar(1024) | NO | 分区注释 | -| NODEGROUP | varchar(12) | NO | 分区所属的 nodegroup | -| TABLESPACE_NAME | varchar(128) | YES | 分区所属的 tablespace 名称 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/23.information_schema-processlist.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/23.information_schema-processlist.md deleted file mode 100644 index 7f42cc621..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/23.information_schema-processlist.md +++ /dev/null @@ -1,27 +0,0 @@ -information_schema.PROCESSLIST -=================================================== - - - -功能 ------------ - -提供运行中的线程信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------|---------------------|----------------|--------------| -| ID | bigint(20) unsigned | NO | 连接标识符 | -| USER | varchar(32) | NO | 用户名 | -| HOST | varchar(128) | NO | 客户端主机名称 | -| DB | varchar(128) | YES | 数据库名称 | -| COMMAND | varchar(4096) | NO | 线程执行的命令类型 | -| TIME | bigint(20) | NO | 线程在当前状态的持续时间 | -| STATE | varchar(128) | YES | 表示线程正在做的任务标识 | -| INFO | varchar(262143) | YES | 当前线程正在执行的语句 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/24.information_schema-referential_constraints.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/24.information_schema-referential_constraints.md deleted file mode 100644 index 00d66ed38..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/24.information_schema-referential_constraints.md +++ /dev/null @@ -1,31 +0,0 @@ -information_schema.REFERENTIAL_CONSTRAINTS -=============================================================== - - - -功能 ------------ - -用于展示外键约束的元数据。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------------------|-----------------------------------------|----------------|--------------------------------------------------------------| -| CONSTRAINT_CATALOG | varchar(4096) | NO | 该值始终为 def | -| CONSTRAINT_SCHEMA | varchar(128) | NO | 约束所属库的名称 | -| CONSTRAINT_NAME | varchar(128) | NO | 约束名称 | -| UNIQUE_CONSTRAINT_CATALOG | varchar(4096) | NO | 该值始终为 def | -| UNIQUE_CONSTRAINT_SCHEMA | ``` varchar(128) ``` | NO | 约束引用的唯一约束或主键所在库的名称 | -| UNIQUE_CONSTRAINT_NAME | varchar(128) | YES | 约束引用的唯一约束或主键的名称 | -| MATCH_OPTION | varchar(64) | NO | 约束 MATCH 属性的值。 此时唯一有效的值是 NONE | -| UPDATE_RULE | varchar(64) | NO | 约束 ON UPDATE 属性的值。 可能的值是CASCADE、SET NULL、RESTRICT、NO ACTION | -| DELETE_RULE | varchar(64) | NO | 约束 ON DELETE 属性的值。 可能的值是 CASCADE、SET NULL、RESTRICT、NO ACTION | -| TABLE_NAME | varchar(256) | NO | 约束所在子表的名称 | -| REFERENCED_TABLE_NAME | varchar(256) | NO | 约束所引用父表的名称 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/25.information_schema-routines.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/25.information_schema-routines.md deleted file mode 100644 index 1e87f8369..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/25.information_schema-routines.md +++ /dev/null @@ -1,51 +0,0 @@ -information_schema.ROUTINES -================================================ - - - -功能 ------------ - -提供存储过程相关的信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------------|------------------|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------| -| SPECIFIC_NAME | varchar(64) | NO | 存储过程的名称。 | -| ROUTINE_CATALOG | varchar(3) | NO | 存储过程所属的目录的名称。目前该字段暂未使用,当前值为 def。 | -| ROUTINE_SCHEMA | varchar(128) | NO | 存储过程所属的模式的名称。 | -| ROUTINE_NAME | varchar(128) | NO | 存储过程名称,与 SPECIFIC_NAME 相同。 | -| ROUTINE_TYPE | varchar(10) | NO | 过程类型: * PROCEDURE:用于存储过程 * FUNCTION:用于存储函数 | -| DATA_TYPE | varchar(0) | NO | 如果过程是存储函数,则返回值为数据类型;如果过程为存储过程,则该值为空。 目前该字段暂未使用。 | -| CHARACTER_MAXIMUM_LENGTH | null | NO | 存储函数的字符串返回值的最大长度,以字符为单位。 如果过程为存储过程,则该值为 NULL。 目前该字段暂未使用。 | -| CHARACTER_OCTET_LENGTH | null | NO | 存储函数的字符串返回值的最大长度,单位:字节。 如果过程为存储过程,则该值为 NULL 目前该字段暂未使用。 | -| NUMERIC_PRECISION | null | NO | 存储函数的数字返回值的数字精度。 如果过程为存储过程,则该值为 NULL。 目前该字段暂未使用。 | -| NUMERIC_SCALE | null | NO | 存储函数的数字返回值的数字刻度。 如果过程为存储过程,则该值为 NULL。 目前该字段暂未使用。 | -| DATETIME_PRECISION | null | NO | 存储函数的时间返回值的秒精度。 如果过程为存储过程,则该值为 NULL。 目前该字段暂未使用。 | -| CHARACTER_SET_NAME | null | NO | 存储函数的字符串返回值的字符集名称。如果过程为存储过程,则该值为 NULL。 目前该字段暂未使用 | -| COLLATION_NAME | null | NO | 存储函数的字符串返回值的归类名称。 如果例程为存储过程,则该值为 NULL。 目前该字段暂未使用。 | -| DTD_IDENTIFIER | null | NO | 未使用。如果过程是存储函数,则返回值为数据类型。如果过程是存储过程,则此值为空。 `DATA_TYPE` 值仅为类型名称,无其他信息;而 `DTD_IDENTIFIER` 值包含类型名称以及可能的其他信息,例如精度或长度。 | -| ROUTINE_BODY | varchar(3) | NO | 过程定义所使用的语言。此值始终为 SQL。 | -| ROUTINE_DEFINITION | varchar(1048576) | NO | 存储过程定义的文本信息。 | -| EXTERNAL_NAME | null | NO | 此值始终为 NULL。 | -| EXTERNAL_LANGUAGE | null | NO | 存储过程的语言。目前该字段暂未使用。 | -| PARAMETER_STYLE | varchar(3) | NO | 此值始终为 SQL。 | -| IS_DETERMINISTIC | varchar(4) | NO | YES 或 NO,取决于存储过程是否用 `DETERMINISTIC` 特性定义 。目前该字段暂未使用。 | -| SQL_DATA_ACCESS | varchar(32) | NO | 未使用。存储过程的数据访问特征。 | -| SQL_PATH | null | NO | 此值始终为 NULL | -| SECURITY_TYPE | varchar(10) | NO | SQL 安全类型: * DEFINER * INVOKER 目前该字段暂未使用。 | -| CREATED | timestamp(6) | NO | 创建存储过程的日期和时间。 | -| LAST_ALTERED | timestamp(6) | NO | 存储过程的最后修改日期和时间。 如果过程自创建以来尚未修改,则该值与 `CREATED`值相同。 | -| SQL_MODE | varchar(32) | NO | 创建或更改过程时有效的 SQL 模式,在该模式下执行过程。 | -| ROUTINE_COMMENT | varchar(1048576) | NO | 注释文本 | -| DEFINER | varchar(77) | NO | 在 DEFINER 子句中命名的帐户(通常是创建过程的用户)。 | -| CHARACTER_SET_CLIENT | varchar(128) | NO | 创建或更改存储过程时系统变量 `CHARACTER_SET_CLIENT` 的会话值。 | -| COLLATION_CONNECTION | varchar(128) | NO | 创建或更改存储过程时系统变量 `COLLATION_CONNECTION` 的会话值。 | -| DATABASE_COLLATION | varchar(128) | NO | 创建或更改存储过程时系统变量 `DATABASE_COLLATION `的会话值。 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/26.information_schema-schemata.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/26.information_schema-schemata.md deleted file mode 100644 index 56c7098d4..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/26.information_schema-schemata.md +++ /dev/null @@ -1,24 +0,0 @@ -information_schema.SCHEMATA -================================================ - - - -功能 ------------ - -记录数据库元信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------------------|--------------|----------------|---------| -| CATALOG_NAME | varchar(3) | NO | 固定值 def | -| SCHEMA_NAME | varchar(128) | NO | 数据库名 | -| DEFAULT_CHARACTER_SET_NAME | varchar(7) | NO | 默认字符集 | -| DEFAULT_COLLATION_NAME | varchar(18) | NO | 默认比对规则 | -| SQL_PATH | null | NO | NULL | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/27.information_schema-schema_privileges.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/27.information_schema-schema_privileges.md deleted file mode 100644 index 63bd9a77b..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/27.information_schema-schema_privileges.md +++ /dev/null @@ -1,24 +0,0 @@ -information_schema.SCHEMA_PRIVILEGES -========================================================= - - - -功能 ------------ - -描述数据库权限信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|---------------|----------------|----------| -| GRANTEE | varchar(81) | NO | 权限描述 | -| TABLE_CATALOG | varchar(4096) | NO | 固定值(def) | -| TABLE_SCHEMA | varchar(128) | NO | 数据库名 | -| PRIVILEGE_TYPE | varchar(64) | NO | 权限类型 | -| IS_GRANTABLE | varchar(3) | NO | 是否授权 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/28.information_schema-session_status.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/28.information_schema-session_status.md deleted file mode 100644 index 36f6e6e27..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/28.information_schema-session_status.md +++ /dev/null @@ -1,22 +0,0 @@ -information_schema.SESSION_STATUS -====================================================== - - - -功能 ------------ - -记录 Session 的状态信息,如当前活跃连接数,数据库活跃时间(Uptime)等。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|---------------|----------------|-------------| -| VARIABLE_NAME | varchar(128) | NO | Session 状态名 | -| VARIABLE_VALUE | varchar(1024) | YES | Session 状态值 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/29.information_schema-session_variables.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/29.information_schema-session_variables.md deleted file mode 100644 index 58e5c4cc8..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/29.information_schema-session_variables.md +++ /dev/null @@ -1,24 +0,0 @@ -information_schema.SESSION_VARIABLES -========================================================= - - - -功能 ------------ - -记录 session 的变量信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|---------------|----------------|-------------| -| VARIABLE_NAME | varchar(128) | NO | Session 变量名 | -| VARIABLE_VALUE | varchar(1024) | YES | Session 变量值 | - - - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/3.mysql-help_keyword.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/3.mysql-help_keyword.md deleted file mode 100644 index 70e426125..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/3.mysql-help_keyword.md +++ /dev/null @@ -1,39 +0,0 @@ -mysql.help_keyword -======================================= - - - -**功能** ---------------------------- - -与其他三个表 mysql.help_relation、mysql.help_topic、mysql.help_category 合作生成 help 命令。 - -**相关表/视图** -------------------------------- - -* mysql.help_relation - - - -* mysql.help_topic - - - -* mysql.help_category - - - - - - -**字段说明** ------------------------------ - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------|-------------|----------------|--------| -| help_keyword_id | bigint(20) | NO | 关键词 ID | -| name | varchar(64) | NO | 关键词 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/30.information_schema-statistics.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/30.information_schema-statistics.md deleted file mode 100644 index dcfcd1dbc..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/30.information_schema-statistics.md +++ /dev/null @@ -1,36 +0,0 @@ -information_schema.STATISTICS -================================================== - - - -功能 ------------ - -记录表索引信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------|---------------|----------------|-----------------------------------------------| -| TABLE_CATALOG | varchar(3) | NO | 固定值(def) | -| TABLE_SCHEMA | varchar(128) | NO | 数据库名 | -| TABLE_NAME | varchar(128) | NO | 表名 | -| NON_UNIQUE | bigint(20) | NO | 是否是唯一索引 | -| INDEX_SCHEMA | varchar(128) | NO | 数据库名 | -| INDEX_NAME | varchar(128) | NO | 索引类型 | -| SEQ_IN_INDEX | bigint(20) | NO | 索引编号 | -| COLUMN_NAME | varchar(128) | NO | 列名 | -| COLLATION | varchar(128) | YES | 比对方法 | -| CARDINALITY | bigint(20) | YES | 索引中唯一值的数目估计值 | -| SUB_PART | varchar(256) | YES | 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为 NULL | -| PACKED | varchar(256) | YES | 指示关键字如何被压缩 | -| NULLABLE | varchar(128) | NO | 是否可以为 NULL | -| INDEX_TYPE | varchar(128) | NO | 索引使用的数据结构类型 | -| COMMENT | varchar(4096) | YES | 注释 | -| INDEX_COMMENT | varchar(4096) | NO | 索引注释 | -| IS_VISIBLE | varchar(3) | NO | 索引是否可见 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/31.information_schema-tables.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/31.information_schema-tables.md deleted file mode 100644 index edc421ffd..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/31.information_schema-tables.md +++ /dev/null @@ -1,55 +0,0 @@ -information_schema.TABLES -============================================== - - - -功能 ------------ - -记录表的信息。 - -相关表/视图 ---------------- - -* __all_table - - - -* __all_table_history - - - - - - -字段说明 -------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|-----------------|--------------------|------------|-----------| -| TABLE_CATALOG | varchar(3) | NO | 表目录 | -| TABLE_SCHEMA | varchar(128) | NO | 数据库名称 | -| TABLE_NAME | varchar(256) | NO | 表名 | -| TABLE_TYPE | varchar(12) | NO | 表类型 | -| ENGINE | null | NO | 使用的存储引擎类型 | -| VERSION | null | NO | 版本 | -| ROW_FORMAT | null | NO | 行格式 | -| TABLE_ROWS | decimal(20,0) | NO | 表的行数 | -| AVG_ROW_LENGTH | decimal(24,4) | NO | 平均行长度 | -| DATA_LENGTH | decimal(20,0) | NO | 数据长度 | -| MAX_DATA_LENGTH | null | NO | 最大数据长度 | -| INDEX_LENGTH | null | NO | 索引长度 | -| DATA_FREE | null | NO | 剩余空间大小 | -| AUTO_INCREMENT | null | NO | 当前的自增值 | -| CREATE_TIME | timestamp(6) | NO | 表的创建时间 | -| UPDATE_TIME | timestamp(6) | NO | 表的最近更新时间 | -| CHECK_TIME | null | NO | 表的最近检查时间 | -| TABLE_COLLATION | varchar(128) | NO | 表的字符集比对方法 | -| CHECKSUM | bigint(0) unsigned | NO | 校验和 | -| CREATE_OPTIONS | null | NO | 创建选项 | -| TABLE_COMMENT | varchar(4096) | NO | 表的备注 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/32.information_schema-table_constraints.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/32.information_schema-table_constraints.md deleted file mode 100644 index d22ad1aff..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/32.information_schema-table_constraints.md +++ /dev/null @@ -1,26 +0,0 @@ -information_schema.TABLE_CONSTRAINTS -========================================================= - - - -功能 ------------ - -描述表约束信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------|---------------|----------------|--------| -| CONSTRAINT_CATALOG | varchar(4096) | NO | 约束目录 | -| CONSTRAINT_SCHEMA | varchar(128) | NO | 数据库名 | -| CONSTRAINT_NAME | varchar(128) | NO | 约束名称 | -| TABLE_SCHEMA | varchar(128) | NO | 数据库名 | -| TABLE_NAME | varchar(256) | NO | 表名 | -| CONSTRAINT_TYPE | varchar(128) | NO | 约束类型 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/33.information_schema-table_privileges.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/33.information_schema-table_privileges.md deleted file mode 100644 index 417c7828c..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/33.information_schema-table_privileges.md +++ /dev/null @@ -1,39 +0,0 @@ -information_schema.TABLE_PRIVILEGES -======================================================== - - - -功能 ------------ - -记录表权限信息。 - -相关表/视图 ---------------- - -* __all_table_privilege - - - -* __all_table_privilege_history - - - - - - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|---------------|----------------|--------| -| GRANTEE | varchar(81) | NO | 权限描述 | -| TABLE_CATALOG | varchar(4096) | NO | 表目录 | -| TABLE_SCHEMA | varchar(128) | NO | 数据库名 | -| TABLE_NAME | varchar(64) | NO | 表名 | -| PRIVILEGE_TYPE | varchar(64) | NO | 权限类型 | -| IS_GRANTABLE | varchar(3) | NO | 是否授权 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/34.information_schema-user_privileges.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/34.information_schema-user_privileges.md deleted file mode 100644 index b54bc8c57..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/34.information_schema-user_privileges.md +++ /dev/null @@ -1,26 +0,0 @@ -information_schema.USER_PRIVILEGES -======================================================= - - - -功能 ------------ - -记录用户权限信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|---------------|----------------|--------| -| GRANTEE | varchar(81) | NO | 权限描述 | -| TABLE_CATALOG | varchar(4096) | NO | 表目录 | -| PRIVILEGE_TYPE | varchar(64) | NO | 权限类型 | -| IS_GRANTABLE | varchar(3) | NO | 是否授权 | - - - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/35.information_schema-user_recyclebin.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/35.information_schema-user_recyclebin.md deleted file mode 100644 index 1cc5d43b9..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/35.information_schema-user_recyclebin.md +++ /dev/null @@ -1,29 +0,0 @@ -information_schema.USER_RECYCLEBIN -======================================================= - - - -功能 ------------ - -记录回收站信息。 - -相关表/视图 ---------------- - -__all_recyclebin - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------|--------------|----------------|------------------| -| OBJECT_NAME | varchar(128) | NO | Object 名称 | -| ORIGINAL_NAME | varchar(256) | NO | Object 对应对象的原始名称 | -| TYPE | varchar(8) | NO | Object 类型 | -| CREATETIME | timestamp(6) | NO | 创建时间 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/36.information_schema-views.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/36.information_schema-views.md deleted file mode 100644 index 62256d567..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/36.information_schema-views.md +++ /dev/null @@ -1,29 +0,0 @@ -information_schema.VIEWS -============================================= - - - -功能 ------------ - -记录视图信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为空** | **描述** | -|----------------------|----------------|------------|---------------------------------------------| -| TABLE_CATALOG | varchar(3) | NO | 表目录 | -| TABLE_SCHEMA | varchar(128) | NO | 数据库名称 | -| TABLE_NAME | varchar(256) | NO | 表名称 | -| VIEW_DEFINITION | varchar(65536) | NO | 视图定义 | -| CHECK_OPTION | varchar(4) | NO | 检查选项 | -| IS_UPDATABLE | varchar(3) | NO | 是否可更新 | -| DEFINER | varchar(130) | NO | 创建视图的用户名 | -| SECURITY_TYPE | varchar(4) | NO | 安全类型 | -| CHARACTER_SET_CLIENT | varchar(7) | NO | 视图创建时对应的 Session 变量 character_set_client 的值 | -| COLLATION_CONNECTION | varchar(18) | NO | 视图创建时对应的 session 变量 collation_connection 的值 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/37.oceanbase-cdb_ob_backup_archivelog_summary.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/37.oceanbase-cdb_ob_backup_archivelog_summary.md deleted file mode 100644 index 59c1a7437..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/37.oceanbase-cdb_ob_backup_archivelog_summary.md +++ /dev/null @@ -1,31 +0,0 @@ -oceanbase.CDB_OB_BACKUP_ARCHIVELOG_SUMMARY -=============================================================== - - - -功能 ------------ - -展示日志备份任务信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------------|---------------|----------------|---------------------------------| -| INCARNATION | bigint(20) | NO | 数据库的分身编号。 | -| LOG_ARCHIVE_ROUND | bigint(20) | NO | 用于标识第几轮完整的 clog 备份数据流 | -| TENANT_ID | bigint(20) | NO | 租户 id | -| STATUS | varchar(64) | NO | 备份任务的状态 | -| MIN_FIRST_TIME | timestamp(6) | NO | 起始的 logts | -| MAX_NEXT_TIME | timestamp(6) | NO | 目前已经备份最大的 log 的时间戳。 | -| INPUT_BYTES | bigint(20) | NO | 读取的数据量 | -| OUTPUT_BYTES | bigint(20) | NO | 输出的数据量 | -| COMPRESSION_RATIO | decimal(23,2) | NO | 压缩率 | -| INPUT_BYTES_DISPLAY | varchar(27) | NO | 带单位的读取数据量,例如:798.01 M 或 5.25 G。 | -| OUTPUT_BYTES_DISPLAY | varchar(27) | NO | 带单位的输出数据量,例如:798.01 M 或 5.25 G。 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/38.oceanbase-cdb_ob_backup_job_details.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/38.oceanbase-cdb_ob_backup_job_details.md deleted file mode 100644 index 042b8f3a8..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/38.oceanbase-cdb_ob_backup_job_details.md +++ /dev/null @@ -1,40 +0,0 @@ -oceanbase.CDB_OB_BACKUP_JOB_DETAILS -======================================================== - - - -功能 ------------ - -展示备份任务的详细信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------------------|---------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| INCARNATION | bigint(20) | NO | 数据库的分身编号。 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| BS_KEY | bigint(20) | NO | 备份集 ID | -| BACKUP_TYPE | VARCHAR(1) | NO | * D:表示全量备份 * I:表示增量备份 | -| ENCRYPTION_MODE | varchar(64) | NO | * None:表示不加密 * Password:表示只使用密码保护 * Password encryption:表示加密,并且通过密码保护. * Transparent encryption:表示加使用了tde 加密 * Dual mode encryption:表示通过tde加密,并且通过密码保护 当前版本仅支持 None 和 Password | -| START_TIME | timestamp(6) | NO | 起始时间 | -| END_TIME | timestamp(6) | NO | 结束时间 | -| INPUT_BYTES | bigint(20) | NO | 输入字节数 | -| OUTPUT_BYTES | bigint(20) | NO | 输出字节数 | -| OUTPUT_DEVICE_TYPE | varchar(64) | NO | 备份的介质 | -| ELAPSED_SECONDS | decimal(21,0) | NO | 耗时 | -| COMPRESSION_RATIO | decimal(23,2) | NO | 压缩率 | -| INPUT_BYTES_PER_SEC | decimal(34,4) | NO | 每秒输入字节数 | -| OUTPUT_BYTES_PER_SEC | decimal(34,4) | NO | 每秒输出字节数 | -| STATUS | varchar(9) | NO | 备份的状态: * RUNNING * COMPLETED * FAILED | -| INPUT_BYTES_DISPLAY | varchar(27) | NO | 输入字节数 | -| OUTPUT_BYTES_DISPLAY | varchar(27) | NO | 输出字节数 | -| INPUT_BYTES_PER_SEC_DISPLAY | varchar(39) | NO | 每秒输入速度 | -| OUTPUT_BYTES_PER_SEC_DISPLAY | varchar(39) | NO | 每秒输出速度 | -| TIME_TAKEN_DISPLAY | time(6) | NO | 耗时 hh:mm:ss | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/39.oceanbase-cdb_ob_backup_set_details.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/39.oceanbase-cdb_ob_backup_set_details.md deleted file mode 100644 index 776fe7780..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/39.oceanbase-cdb_ob_backup_set_details.md +++ /dev/null @@ -1,39 +0,0 @@ -oceanbase.CDB_OB_BACKUP_SET_DETAILS -======================================================== - - - -功能 ------------ - -展示备份集的详细信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------------------|---------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| INCARNATION | bigint(20) | NO | 数据库的分身编号。 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| BS_KEY | bigint(20) | NO | 备份集 ID | -| BACKUP_TYPE | varchar(1) | NO | * D:表示全量备份 * I:表示增量备份 | -| ENCRYPTION_MODE | varchar(64) | NO | * None:表示不加密 * Password:表示只使用密码保护 * Password encryption:表示加密,并且通过密码保护. * Transparent encryption:表示加使用了tde 加密 * Dual mode encryption:表示通过tde加密,并且通过密码保护 当前版本仅支持 None 和 Password | -| START_TIME | timestamp(6) | NO | 起始时间 | -| COMPLETION_TIME | timestamp(6) | NO | 完成时间 | -| ELAPSED_SECONDES | decimal(21,0) | NO | 耗时 | -| KEEP | varchar(2) | NO | * YES:表示永久保留 * NO:表示根据保留时间过期 | -| KEEP_UNTIL | varchar(0) | NO | 保留的时间 | -| DEVICE_TYPE | varchar(64) | NO | 备份介质 | -| COMPRESSED | varchar(2) | NO | 是否压缩: * YES:表示压缩 * NO:表示不压缩 | -| OUTPUT_BYTES | bigint(20) | NO | 输出字节数 | -| OUTPUT_RATE_BYTES | decimal(34,4) | NO | 每秒输出字节数 | -| COMPRESSION_RATIO | decimal(23,2) | NO | 压缩率 | -| OUTPUT_BYTES_DISPLAY | varchar(27) | NO | 带单位的输出数据量,例如:798.01 M 或5.25 G。 | -| OUTPUT_RATE_BYTES_DISPLAY | varchar(39) | NO | 输出速度 | -| TIME_TAKEN_DISPLAY | time(6) | NO | 耗时 hh:mm:ss | -| STATUS | varchar(64) | NO | * COMPELETED:表示 backup_set 备份成功 * FAILED:表示 backup_set 备份失败 * DELETING:表示 backup_set 正在清理 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/4.mysql-help_relation.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/4.mysql-help_relation.md deleted file mode 100644 index 74bff16fc..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/4.mysql-help_relation.md +++ /dev/null @@ -1,40 +0,0 @@ -mysql.help_relation -======================================== - - - -功能 ------------ - -与其他三个表 mysql.help_category、mysql.help_topic、mysql.help_keyword 合作生成 help 命令。 - -相关表/视图 ---------------- - -* mysql.help_category - - - -* mysql.help_topic - - - -* mysql.help_keyword - - - - - - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------|------------|----------------|--------| -| help_topic_id | bigint(20) | NO | 主题 ID | -| help_keyword_id | bigint(20) | NO | 关键词 ID | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/40.oceanbase-cdb_ob_backup_progress.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/40.oceanbase-cdb_ob_backup_progress.md deleted file mode 100644 index c8c2c4c29..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/40.oceanbase-cdb_ob_backup_progress.md +++ /dev/null @@ -1,33 +0,0 @@ -oceanbase.CDB_OB_BACKUP_PROGRESS -===================================================== - - - -功能 ------------ - -展示数据库备份任务的进度。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------------|--------------|----------------|---------------------------------------------------------------------------------------------------------------| -| INCARNATION | bigint(20) | NO | 数据库的分身编号 | -| BS_KEY | bigint(20) | NO | 备份集的 ID | -| BACKUP_TYPE | VARCHAR(1) | NO | * D:表示全量备份 * I:表示增量备份 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| PARTITION_COUNT | bigint(20) | YES | Partition Group 的个数 | -| MACRO_BLOCK_COUNT | bigint(20) | NO | 宏块的个数 | -| FINISH_PARTITION_COUNT | bigint(20) | YES | 完成的 Partition Group 的个数 | -| FINISH_MACRO_BLOCK_COUNT | bigint(20) | NO | 完成的宏块个数 | -| INPUT_BYTES | bigint(20) | NO | 输入字节数 | -| OUTPUT_BYTES | bigint(20) | NO | 输出字节数 | -| START_TIME | timestamp(6) | NO | 起始时间 | -| COMPLETION_TIME | timestamp(6) | NO | 完成时间 | -| STATUS | varchar(9) | NO | 备份任务的状态 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/41.oceanbase-cdb_ob_backup_set_expired.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/41.oceanbase-cdb_ob_backup_set_expired.md deleted file mode 100644 index cda4eb3b6..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/41.oceanbase-cdb_ob_backup_set_expired.md +++ /dev/null @@ -1,38 +0,0 @@ -oceanbase.CDB_OB_BACKUP_SET_EXPIRED -======================================================== - - - -功能 ------------ - -用于展示哪些备份集的数据已过期。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------------------|---------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| INCARNATION | bigint(20) | NO | 数据库的分身编号。 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| BS_KEY | bigint(20) | NO | 备份集 ID | -| BACKUP_TYPE | varchar(1) | NO | * D:表示全量备份 * I:表示增量备份 | -| ENCRYPTION_MODE | varchar(64) | NO | * None:表示不加密 * Password:表示只使用密码保护 * Password encryption:表示加密,并且通过密码保护. * Transparent encryption:表示加使用了tde 加密 * Dual mode encryption:表示通过tde加密,并且通过密码保护 当前版本仅支持 None 和 Password | -| START_TIME | timestamp(6) | NO | 起始时间 | -| COMPLETION_TIME | timestamp(6) | NO | 完成时间 | -| ELAPSED_SECONDES | decimal(21,0) | NO | 耗时 | -| KEEP | varchar(2) | NO | * YES:表示永久保留 * NO:表示根据保留时间过期 | -| KEEP_UNTIL | varchar(0) | NO | 保留的时间 | -| DEVICE_TYPE | varchar(64) | NO | 备份介质 | -| COMPRESSED | varchar(2) | NO | 是否压缩: * YES:表示压缩 * NO:表示不压缩 | -| OUTPUT_BYTES | bigint(20) | NO | 输出字节数 | -| OUTPUT_RATE_BYTES | decimal(34,4) | NO | 每秒输出字节数 | -| COMPRESSION_RATIO | decimal(23,2) | NO | 压缩率 | -| OUTPUT_BYTES_DISPLAY | varchar(27) | NO | 带单位的输出数据量,例如:798.01 M 或5.25 G。 | -| OUTPUT_RATE_BYTES_DISPLAY | varchar(39) | NO | 输出速度 | -| TIME_TAKEN_DISPLAY | timestamp(6) | NO | 耗时 hh:mm:ss | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/42.oceanbase-cdb_ob_backup_archivelog_progress.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/42.oceanbase-cdb_ob_backup_archivelog_progress.md deleted file mode 100644 index 7087f96bb..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/42.oceanbase-cdb_ob_backup_archivelog_progress.md +++ /dev/null @@ -1,30 +0,0 @@ -oceanbase.CDB_OB_BACKUP_ARCHIVELOG_PROGRESS -================================================================ - - - -功能 ------------ - -展示单个 Partition Group 的备份进度信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------------|--------------|----------------|-----------------------| -| INCARNATION | bigint(20) | NO | 数据库的分身编号。 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| LOG_ARCHIVE_ROUND | bigint(20) | NO | 用于标识第几轮完整的 clog 备份数据流 | -| SVR_IP | varchar(32) | NO | 服务器 IP | -| SVR_PORT | bigint(20) | NO | 服务器端口号 | -| TABLE_ID | bigint(20) | NO | 表 ID | -| PARTITION_ID | bigint(20) | NO | 分区 ID | -| MIN_FIRST_TIME | timestamp(6) | NO | 起始的 logts | -| MAX_NEXT_TIME | timestamp(6) | NO | 目前已经备份最大的 logts | -| STATUS | varchar(11) | NO | 备份任务的状态 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/43.oceanbase-cdb_ob_backup_clean_history.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/43.oceanbase-cdb_ob_backup_clean_history.md deleted file mode 100644 index 802b3185d..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/43.oceanbase-cdb_ob_backup_clean_history.md +++ /dev/null @@ -1,29 +0,0 @@ -oceanbase.CDB_OB_BACKUP_CLEAN_HISTORY -========================================================== - - - -功能 ------------ - -租户级别备份数据清理的历史信息表。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------|---------------|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| BS_KEY | bigint(20) | NO | 备份集的 ID | -| START_TIME | timestamp(6) | NO | 开始恢复时间 | -| END_TIME | timestamp(6) | NO | 结束恢复时间 | -| INCARNATION | bigint(20) | NO | 数据库的分身编号。 | -| TYPE | varchar(64) | NO | 表示清理的类型:过期清理或指定 backup_set | -| STATUS | varchar(64) | NO | 备份清理的状态类型: * STOP * PREPARE * DOING | -| PARAMETER | varchar(256) | NO | 根据不同的 Type 表示不同的含义。 如果是过期清理,则 parameters 表示过期的时间;如果是 backup_set 清理,则表示 backup_set_id | -| ERROR_MSG | varchar(512) | NO | 错误信息 | -| COMMENT | varchar(4096) | NO | 记录一些清理相关信息 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/44.oceanbase-cdb_ob_backup_task_clean_history.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/44.oceanbase-cdb_ob_backup_task_clean_history.md deleted file mode 100644 index f613809c5..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/44.oceanbase-cdb_ob_backup_task_clean_history.md +++ /dev/null @@ -1,33 +0,0 @@ -oceanbase.CDB_OB_BACKUP_TASK_CLEAN_HISTORY -=============================================================== - - - -功能 ------------ - -用于记录被清理掉的备份信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------------|--------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| INCARNATION | bigint(20) | NO | 数据库的分身编号。 | -| BS_KEY | bigint(20) | NO | 备份集 ID | -| BACKUP_TYPE | varchar(1) | NO | * D:表示全量备份 * I:表示增量备份 | -| PARTITION_COUNT | bigint(20) | NO | Partition Group 的个数 | -| MACRO_BLOCK_COUNT | bigint(20) | NO | 宏块的个数 | -| FINISH_PARTITION_COUNT | bigint(20) | NO | 完成的 Partition Group 的个数 | -| FINISH_MACRO_BLOCK_COUNT | bigint(20) | NO | 完成的宏块个数 | -| INPUT_BYTES | bigint(20) | NO | 输入字节数 | -| OUTPUT_BYTES | bigint(20) | NO | 输出字节数 | -| START_TIME | timestamp(6) | NO | 起始时间 | -| COMPLETION_TIME | timestamp(6) | NO | 完成时间 | -| STATUS | varchar(64) | NO | 备份清理的状态: * SUCCESS * FAILED | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/45.oceanbase-cdb_ob_restore_progress.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/45.oceanbase-cdb_ob_restore_progress.md deleted file mode 100644 index 708449fe0..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/45.oceanbase-cdb_ob_restore_progress.md +++ /dev/null @@ -1,38 +0,0 @@ -oceanbase.CDB_OB_RESTORE_PROGRESS -====================================================== - - - -功能 ------------ - -展示物理恢复任务当前的执行进度。 - -字段说明 -------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|---------------------------|---------------|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| JOB_ID | bigint(20) | NO | 物理恢复任务唯一标识 | -| EXTERNAL_JOB_ID | bigint(20) | NO | 物理恢复任务外部标识,不保证唯一性;在恢复命令中传入,缺省为 -1 | -| TENANT_ID | bigint(20) | NO | 当前恢复的租户 ID,缺省值 -1 | -| TENANT_NAME | varchar(128) | NO | 当前恢复的租户名,缺省值为空 | -| BACKUP_TENANT_ID | bigint(20) | NO | 原备份的租户 ID | -| BACKUP_TENANT_NAME | varchar(128) | NO | 原备份的租户名 | -| BACKUP_CLUSTER_ID | bigint(20) | NO | 原备份的集群 ID | -| BACKUP_CLUSTER_NAME | varchar(128) | NO | 原备份的集群名 | -| STATUS | varchar(64) | NO | 物理恢复所处阶段: * CREATE_TENANT:创建租户阶段 * RESTORE_SYS_REPLICA:租户系统表恢复阶段 * MODIFY_SCHEMA:租户元信息修正阶段 * CREATE_USER_PARTITIONS:租户用户表创建阶段 * RESTORE_USER_REPLICA:租户用户表恢复阶段 * REBUILD_INDEX:索引重建阶段 * POST_CHECK:校验阶段 * RESTORE_SUCCESS:恢复成功 * RESTORE_FAIL:恢复失败 | -| START_TIME | timestamp(6) | YES | 恢复开始时间 | -| COMPLETION_TIME | timestamp(6) | YES | 恢复完成时间 | -| PARTITION_COUNT | bigint(20) | NO | * RESTORE_SYS_REPLICA 阶段:待恢复系统表分区数 * RESTORE_USER_REPLICA 阶段:待恢复用户表分区数 * 其余阶段无意义,缺省值为 0 | -| MACRO_BLOCK_COUNT | bigint(20) | NO | 待恢复宏块个数,暂未实现,该值无意义 | -| FINISH_PARTITION_COUNT | bigint(20) | NO | * RESTORE_SYS_REPLICA 阶段:已完成基线恢复的系统表分区数 * RESTORE_USER_REPLICA 阶段:已完成基线恢复的用户表分区数 * 其余阶段无意义,缺省值为 0 | -| FINISH_MACRO_BLOCK_COUNT | bigint(20) | NO | 已恢复宏块个数,暂未实现,该值无意义,缺省值为 0 | -| RESTORE_START_TIMESTAMP | timestamp(6) | YES | 增量恢复起始位点,由备份数据决定 | -| RESTORE_FINISH_TIMESTAMP | timestamp(6) | YES | 增量恢复结束位点,由恢复命令中指定 | -| RESTORE_CURRENT_TIMESTAMP | timestamp(6) | YES | 当前增量恢复的位点。目前该字段暂未使用,该值无意义 | -| INFO | varchar(4096) | NO | 恢复过程中的运行信息,主要是恢复失败时的失败模块及错误码,缺省值为空 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/46.oceanbase-cdb_ob_restore_history.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/46.oceanbase-cdb_ob_restore_history.md deleted file mode 100644 index 29f5fe3e4..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/46.oceanbase-cdb_ob_restore_history.md +++ /dev/null @@ -1,39 +0,0 @@ -oceanbase.CDB_OB_RESTORE_HISTORY -===================================================== - - - -功能 ------------ - -展示物理恢复任务完成时的状态,是恢复任务结束时,对应任务在 CDB_OB_RESTORE_PROGRESS 对应记录的快照。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------------------|---------------|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| JOB_ID | bigint(20) | NO | 物理恢复任务唯一标识 | -| EXTERNAL_JOB_ID | bigint(20) | NO | 物理恢复任务外部标识,不保证唯一性;在恢复命令中传入,缺省为 -1 | -| TENANT_ID | bigint(20) | NO | 恢复的租户 ID,缺省值 -1 | -| TENANT_NAME | varchar(128) | NO | 恢复的租户名,缺省值为空 | -| BACKUP_TENANT_ID | bigint(20) | NO | 原备份的租户 ID | -| BACKUP_TENANT_NAME | varchar(128) | NO | 原备份的租户名 | -| BACKUP_CLUSTER_ID | bigint(20) | NO | 原备份的集群 ID | -| BACKUP_CLUSTER_NAME | varchar(128) | NO | 原备份的集群名 | -| STATUS | varchar(64) | NO | 物理恢复所处阶段 * CREATE_TENANT:创建租户阶段 * RESTORE_SYS_REPLICA:租户系统表恢复阶段 * MODIFY_SCHEMA:租户元信息修正阶段 * CREATE_USER_PARTITIONS:租户用户表创建阶段 * RESTORE_USER_REPLICA:租户用户表恢复阶段 * REBUILD_INDEX:索引重建阶段 * POST_CHECK:校验阶段 * RESTORE_SUCCESS:恢复成功 * RESTORE_FAIL:恢复失败 | -| START_TIME | timestamp(6) | YES | 恢复开始时间 | -| COMPLETION_TIME | timestamp(6) | YES | 恢复完成时间 | -| PARTITION_COUNT | bigint(20) | NO | * RESTORE_SYS_REPLICA 阶段:待恢复系统表分区数 * RESTORE_USER_REPLICA 阶段:待恢复用户表分区数 * 其余阶段无意义,缺省值为 0 | -| MACRO_BLOCK_COUNT | bigint(20) | NO | 待恢复宏块个数,暂未实现,该值无意义 | -| FINISH_PARTITION_COUNT | bigint(20) | NO | * RESTORE_SYS_REPLICA 阶段:已完成基线恢复的系统表分区数 * RESTORE_USER_REPLICA 阶段:已完成基线恢复的用户表分区数 * 其余阶段无意义,缺省值为 0 | -| FINISH_MACRO_BLOCK_COUNT | bigint(20) | NO | 已恢复宏块个数,暂未实现,该值无意义,缺省值为 0 | -| RESTORE_START_TIMESTAMP | timestamp(6) | YES | 增量恢复起始位点,由备份数据决定 | -| RESTORE_FINISH_TIMESTAMP | timestamp(6) | YES | 增量恢复结束位点,由恢复命令中指定 | -| RESTORE_CURRENT_TIMESTAMP | timestamp(6) | YES | 当前增量恢复的位点,暂未实现,该值无意义 | -| INFO | varchar(4096) | NO | 恢复过程中的运行信息,主要是恢复失败时的失败模块及错误码,缺省值为空 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/47.oceanbase-cdb_ckpt_history.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/47.oceanbase-cdb_ckpt_history.md deleted file mode 100644 index 39de5dac6..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/47.oceanbase-cdb_ckpt_history.md +++ /dev/null @@ -1,27 +0,0 @@ -oceanbase.CDB_CKPT_HISTORY -=============================================== - - - -功能 ------------ - -oceanbase.CDB_CKPT_HISTORY 用于展示系统中每个租户执行 Checkpoint 的相关信息,包括类型、版本号、集群版本和起止时间。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为空** | **描述** | -|----------------------------|--------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| SVR_IP | varchar(32) | NO | Server 的 IP 地址 | -| SVR_PORT | bigint(20) | NO | Server 的端口号 | -| TENANT_ID | varchar(256) | NO | 租户 ID | -| CHECKPOINT_SNAPSHOT | longtext | NO | 表示写 Checkpoint 的 Snaphost 版本号 | -| CHECKPOINT_TYPE | varchar(256) | NO | CheckPoint 的类型: * META_CKPT:Major Compaction * DATA_CKPT:Mini Compaction | -| CHECKPOINT_CLUSTER_VERSION | varchar(256) | NO | 表示写 Checkpoint 的 OceanBase 集群的版本号 | -| START_TIME | timestamp(6) | NO | 写 Checkpoint 的开始时间 | -| FINISH_TIME | varchar(32) | NO | 写 Checkpoint 的结束时间 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/48.oceanbase-cdb_ob_backup_validation_job.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/48.oceanbase-cdb_ob_backup_validation_job.md deleted file mode 100644 index fc92deb7a..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/48.oceanbase-cdb_ob_backup_validation_job.md +++ /dev/null @@ -1,36 +0,0 @@ -oceanbase.CDB_OB_BACKUP_VALIDATION_JOB -=========================================================== - - - -功能 ------------ - -展示备份校验进度,用于在 OCP 上展示备份校验的情况,只保留正在执行的任务。 - -相关视图 -------------- - -* CDB_OB_BACKUP_VALIDATION_JOB_HISTORY - - - - - - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------|--------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------| -| JOB_ID | bigint(20) | NO | Job ID | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| TENANT_NAME | varchar(128) | NO | 租户名 | -| INCARNATION | bigint(20) | NO | 与 Oracle 中的 incarnation 含义相关,表示 flashback database 后的第几次分身 | -| BACKUP_SET_ID | bigint(20) | NO | 备份集的 ID | -| PROGRESS_PERCENT | bigint(20) | NO | 备份校验进度 | -| STATUS | varchar(64) | NO | 备份校验的状态类型: * SUCCESS * FAILED | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/49.oceanbase-cdb_ob_backup_validation_job_history.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/49.oceanbase-cdb_ob_backup_validation_job_history.md deleted file mode 100644 index 1cbe8223a..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/49.oceanbase-cdb_ob_backup_validation_job_history.md +++ /dev/null @@ -1,27 +0,0 @@ -oceanbase.CDB_OB_BACKUP_VALIDATION_JOB_HISTORY -=================================================================== - - - -功能 ------------ - -展示备份校验进度,用于在 OCP 上展示备份校验的情况,保留所有历史任务。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------|--------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------| -| JOB_ID | bigint(20) | NO | 备份校验的 Job ID | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| TENANT_NAME | varchar(128) | NO | 租户名,缺省值为空 | -| INCARNATION | bigint(20) | NO | 数据库的分身编号 | -| BACKUP_SET_ID | bigint(20) | NO | 备份集的 ID | -| PROGRESS_PERCENT | bigint(20) | NO | 备份校验进度 | -| STATUS | varchar(64) | NO | 备份校验的状态类型: * SUCCESS * FAILED | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/5.mysql-db.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/5.mysql-db.md deleted file mode 100644 index f1da2174f..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/5.mysql-db.md +++ /dev/null @@ -1,47 +0,0 @@ -mysql.db -============================= - - - -功能 ------------ - -用于展示数据库级别的权限信息(VIRTUAL_TABLE)。 - -相关表/视图 ---------------- - -无 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------------|--------------|----------------|------------------------------------------------------------------------| -| host | varchar(128) | NO | 主机名 | -| db | varchar(128) | NO | 数据库名 | -| user | varchar(128) | NO | 用户名 | -| select_priv | varchar(1) | NO | 是否可执行 select 语句 | -| insert_priv | varchar(1) | NO | 是否可执行 insert 语句 | -| update_priv | varchar(1) | NO | 是否可执行 update 语句 | -| delete_priv | varchar(1) | NO | 是可可执行 delete 语句 | -| create_priv | varchar(1) | NO | 是否可执行 create 语句 | -| drop_priv | varchar(1) | NO | 是否可执行 drop 语句 | -| grant_priv | varchar(1) | NO | 是否可进行授权操作 | -| reference_priv | varchar(1) | NO | 暂未使用 | -| index_priv | varchar(1) | NO | 是否可创建 index | -| alter_priv | varchar(1) | NO | 是否可执行` alter table` 语句 | -| create_tmp_table_priv | varchar(1) | NO | 是否可创建临时表。目前暂未使用该字段 | -| lock_tables_priv | varchar(1) | NO | 是否可执行` LOCK TABLES 语` 句,用户同时需要有表上的 select 权限。目前暂未使用该字段 | -| create_view_priv | varchar(1) | NO | 是否可执行` create view `语句 | -| show_view_priv | varchar(1) | NO | 是否可执行` show create view `语句 | -| create_routine_priv | varchar(1) | NO | 是否可创建存储过程(暂未使用) | -| alter_routine_priv | varchar(1) | NO | 是否可执行`alter function` 语句(暂未使用) | -| execute_priv | varchar(1) | NO | 是否可执行存储过程(暂未使用) | -| event_priv | varchar(1) | NO | 是否可创建删除或者更改 event(暂未使用) | -| trigger_priv | varchar(1) | NO | 是否可执行` create trigger` 或` drop trigger` 语句。目前暂未使用该字段 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/50.oceanbase-cdb_ob_tenant_backup_validation_task.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/50.oceanbase-cdb_ob_tenant_backup_validation_task.md deleted file mode 100644 index 32a925417..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/50.oceanbase-cdb_ob_tenant_backup_validation_task.md +++ /dev/null @@ -1,41 +0,0 @@ -oceanbase.CDB_OB_TENANT_BACKUP_VALIDATION_TASK -=================================================================== - - - -功能 ------------ - -展示租户级别的备份校验任务。 - -相关视图 -------------- - -CDB_OB_BACKUP_VALIDATION_TASK_HISTORY - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------------|---------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------| -| JOB_ID | bigint(20) | NO | Job ID | -| TASK_ID | bigint(20) | NO | Task ID | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| INCARNATION | bigint(20) | NO | 与 Oracle 中的 incarnation 含义相关,表示 flashback database 后的第几次分身 | -| BACKUP_SET_ID | bigint(20) | NO | 备份集的 ID | -| STATUS | varchar(64) | NO | 备份校验的状态类型: * SUCCESS * FAILED | -| BACKUP_DEST | varchar(2048) | YES | 原备份的位置,即备份校验需要读取数据的位置 | -| START_TIME | timestamp(6) | NO | 起始时间 | -| END_TIME | timestamp(6) | NO | 结束时间 | -| TOTAL_PG_COUNT | bigint(20) | NO | 全部 Partition Group 个数 | -| FINISH_PG_COUNT | bigint(20) | NO | 校验完成的 Partition Group 个数 | -| TOTAL_PARTITION_COUNT | bigint(20) | NO | 全部 Partition 个数 | -| FINISH_PARTITION_COUNT | bigint(20) | NO | 校验完成的 Partition个数 | -| TOTAL_MACRO_BLOCK_COUNT | bigint(20) | NO | 全部宏块个数 | -| FINISH_MACRO_BLOCK_COUNT | bigint(20) | NO | 校验完成宏块个数 | -| LOG_SIZE | bigint(20) | NO | 需要校验的日志大小 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/51.oceanbase-cdb_ob_backup_validation_task_history.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/51.oceanbase-cdb_ob_backup_validation_task_history.md deleted file mode 100644 index ebb9b8748..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/51.oceanbase-cdb_ob_backup_validation_task_history.md +++ /dev/null @@ -1,46 +0,0 @@ -oceanbase.CDB_OB_BACKUP_VALIDATION_TASK_HISTORY -==================================================================== - - - -功能 ------------ - -CDB_OB_TENANT_BACKUP_VALIDATION_TASK 的历史表。 - -相关视图 -------------- - -* CDB_OB_TENANT_BACKUP_VALIDATION_TASK - - - - - - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------------|---------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------| -| JOB_ID | bigint(20) | NO | 备份校验的 Job ID | -| TASK_ID | bigint(20) | NO | Task ID | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| INCARNATION | bigint(20) | NO | 与 Oracle 中的 incarnation 含义相关,表示 flashback database 后的第几次分身 | -| BACKUP_SET_ID | bigint(20) | NO | 备份集的 ID | -| STATUS | varchar(64) | NO | 备份校验的状态类型: * SUCCESS * FAILED | -| BACKUP_DEST | varchar(2048) | YES | 原备份的位置,即备份校验需要读取数据的位置 | -| START_TIME | timestamp(6) | NO | 起始时间 | -| END_TIME | timestamp(6) | NO | 结束时间 | -| TOTAL_PG_COUNT | bigint(20) | NO | 全部 Partition Group 个数 | -| FINISH_PG_COUNT | bigint(20) | NO | 校验完成的 Partition Group 个数 | -| TOTAL_PARTITION_COUNT | bigint(20) | NO | 全部 Partition 个数 | -| FINISH_PARTITION_COUNT | bigint(20) | NO | 校验完成的 Partition 个数 | -| TOTAL_MACRO_BLOCK_COUNT | bigint(20) | NO | 全部宏块个数 | -| FINISH_MACRO_BLOCK_COUNT | bigint(20) | NO | 校验完成宏块个数 | -| LOG_SIZE | bigint(20) | NO | 需要校验的日志大小 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/52.oceanbase-cdb_ob_backup_backup_archivelog_summary.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/52.oceanbase-cdb_ob_backup_backup_archivelog_summary.md deleted file mode 100644 index e81ecd3d2..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/52.oceanbase-cdb_ob_backup_backup_archivelog_summary.md +++ /dev/null @@ -1,31 +0,0 @@ -oceanbase.CDB_OB_BACKUP_BACKUP_ARCHIVELOG_SUMMARY -====================================================================== - - - -功能 ------------------------ - -展示正在进行的备份备份日志归档任务的信息。 - -字段说明 -------------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|----------------------|---------------|------------|----------------------------------------------------------------| -| INCARNATION | bigint(20) | NO | 与 Oracle 数据库中的 incarnation 含义相关,表示 flashback database 后的第几次分身。 | -| LOG_ARCHIVE_ROUND | bigint(20) | NO | 用于标识第几轮完整的 clog 备份数据流 | -| COPY_ID | bigint(20) | NO | 第几份拷贝 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| STATUS | varchar(64) | NO | 备份备份归档的状态 | -| MIN_FIRST_TIME | timestamp(6) | NO | 起始的 logts | -| MAX_NEXT_TIME | timestamp(6) | NO | 目前已经备份最大的 logts | -| INPUT_BYTES | bigint(20) | NO | 读取的数据量 | -| OUTPUT_BYTES | bigint(20) | NO | 输出的数据量 | -| COMPRESSION_RATIO | decimal(23,2) | NO | 压缩比 | -| INPUT_BYTES_DISPLAY | varchar(27) | NO | 读取的数据量的展示值 | -| OUTPUT_BYTES_DISPLAY | varchar(27) | NO | 输出的数据量的展示值 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/53.oceanbase-cdb_ob_backup_backupset_task_history.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/53.oceanbase-cdb_ob_backup_backupset_task_history.md deleted file mode 100644 index 8034b83ca..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/53.oceanbase-cdb_ob_backup_backupset_task_history.md +++ /dev/null @@ -1,40 +0,0 @@ -oceanbase.CDB_OB_BACKUP_BACKUPSET_TASK_HISTORY -=================================================================== - - - -功能 ------------------------ - -展示已完成的备份备份基线任务的信息。 - -字段说明 -------------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|---------------------------|---------------|------------|----------------------------------------------------------------| -| INCARNATION | bigint(20) | NO | 与 Oracle 数据库中的 incarnation 含义相关,表示 flashback database 后的第几次分身。 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| BS_KEY | bigint(20) | NO | 备份集的值 | -| COPY_ID | bigint(20) | NO | 第几份拷贝 | -| BACKUP_TYPE | varchar(1) | NO | 备份类型 | -| ENCRYPTION_MODE | varchar(64) | NO | 加密模式 | -| START_TIME | timestamp(6) | NO | 备份集备份的开始时间 | -| COMPLETION_TIME | timestamp(6) | NO | 备份集备份的结束时间 | -| ELAPSED_SECONDES | decimal(21,0) | NO | 备份集备份的使用时间 | -| KEEP | varchar(2) | NO | 是否保留 | -| KEEP_UNTIL | varchar(0) | NO | 保留时间 | -| SRC_DEVICE_TYPE | varchar(64) | NO | 源端设备类型 | -| DST_DEVICE_TYPE | varchar(64) | NO | 目的端设备类型 | -| COMPRESSED | varchar(2) | NO | 是否压缩 | -| OUTPUT_BYTES | bigint(20) | NO | 输出的数据量 | -| OUTPUT_RATE_BYTES | decimal(34,4) | NO | 输出数据量的字节 | -| COMPRESSION_RATIO | decimal(23,2) | NO | 压缩比 | -| OUTPUT_BYTES_DISPLAY | varchar(27) | NO | 输出的数据量的展示值 | -| OUTPUT_RATE_BYTES_DISPLAY | varchar(39) | NO | 输出数据量的字节展示值 | -| TIME_TAKEN_DISPLAY | time(6) | NO | 所用时间的展示值 | -| STATUS | varchar(9) | NO | 状态 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/54.oceanbase-cdb_ob_backup_backupset_task.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/54.oceanbase-cdb_ob_backup_backupset_task.md deleted file mode 100644 index 56fa51275..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/54.oceanbase-cdb_ob_backup_backupset_task.md +++ /dev/null @@ -1,35 +0,0 @@ -oceanbase.CDB_OB_BACKUP_BACKUPSET_TASK -=========================================================== - - - -功能 ------------------------ - -展示正常进行的备份备份基线任务的信息,按 Job 展示对应的 Task。 - -字段说明 -------------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|--------------------------|--------------|------------|---------------------------------------------------------------| -| INCARNATION | bigint(20) | NO | 与 Oracle 数据库中的 incarnation 含义相关,表示 flashback database 后的第几次分身 | -| BS_KEY | bigint(20) | NO | 备份集的值 | -| COPY_ID | bigint(20) | NO | 第几份拷贝 | -| BACKUP_TYPE | varchar(1) | NO | 备份类型 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| TOTAL_PG_COUNT | bigint(20) | NO | 所有 Partition Group 的个数 | -| FINISH_PG_COUNT | bigint(20) | NO | 完成 Partition Group 的个数 | -| TOTAL_PARTITION_COUNT | bigint(20) | NO | 所有分区的个数 | -| TOTAL_MACRO_BLOCK_COUNT | bigint(20) | NO | 所有宏块的个数 | -| FINISH_PARTITION_COUNT | bigint(20) | NO | 完成分区的个数 | -| FINISH_MACRO_BLOCK_COUNT | bigint(20) | NO | 完成宏块的个数 | -| INPUT_BYTES | bigint(20) | NO | 读取的数据量 | -| OUTPUT_BYTES | bigint(20) | NO | 输出的数据量 | -| START_TIME | timestamp(6) | NO | 开始时间 | -| COMPLETION_TIME | timestamp(6) | NO | 结束时间 | -| STATUS | varchar(9) | NO | 状态 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/55.oceanbase-cdb_ob_backup_backupset_job_history.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/55.oceanbase-cdb_ob_backup_backupset_job_history.md deleted file mode 100644 index 1715e94c6..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/55.oceanbase-cdb_ob_backup_backupset_job_history.md +++ /dev/null @@ -1,26 +0,0 @@ -oceanbase.CDB_OB_BACKUP_BACKUPSET_JOB_HISTORY -================================================================== - - - -功能 ------------------------ - -展示发起过备份备份基线的 Job 的历史信息。 - -字段说明 -------------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|---------------|--------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| JOB_ID | bigint(20) | NO | Job ID | -| TENANT_ID | bigint(20) | NO | 租户 ID,系统租户为 1,表示所有备份集 | -| INCARNATION | bigint(20) | NO | 与 Oracle 数据库中的 incarnation 含义相关,表示 flashback database 后的第几次分身 | -| BACKUP_SET_ID | bigint(20) | NO | 备份集的 ID | -| TYPE | varchar(17) | NO | 标记为备份单个备份集还是全部备份集的集合: * S:表示单个备份集 * A:表示全部备份集 | -| TENANT_NAME | varchar(128) | NO | 租户的名称 | -| STATUS | varchar(64) | NO | 备份的状态: * schedule * doing * finished * canceling | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/56.oceanbase-cdb_ob_backup_backupset_job.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/56.oceanbase-cdb_ob_backup_backupset_job.md deleted file mode 100644 index 3abfba5c4..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/56.oceanbase-cdb_ob_backup_backupset_job.md +++ /dev/null @@ -1,26 +0,0 @@ -oceanbase.CDB_OB_BACKUP_BACKUPSET_JOB -========================================================== - - - -功能 ------------------------ - -展示备份备份基线任务的信息,一条 SQL 即对应一个 Job。 - -字段说明 -------------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|---------------|--------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| JOB_ID | bigint(20) | NO | Job ID | -| TENANT_ID | bigint(20) | NO | 租户 ID,系统租户为 1,表示所有备份集 | -| INCARNATION | bigint(20) | NO | 与 Oracle 数据库中的 incarnation 含义相关,表示 flashback database 后的第几次分身 | -| BACKUP_SET_ID | bigint(20) | NO | 备份集的 ID | -| TYPE | varchar(17) | NO | 标记为备份单个备份集还是全部备份集的集合: * S:表示单个备份集 * A:表示全部备份集 | -| TENANT_NAME | varchar(128) | NO | 租户的名称 | -| STATUS | varchar(64) | NO | 备份的状态: * schedule * doing * finished * canceling | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/57.oceanbase-cdb_ob_backup_set_obsolete.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/57.oceanbase-cdb_ob_backup_set_obsolete.md deleted file mode 100644 index 9f78f256a..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/57.oceanbase-cdb_ob_backup_set_obsolete.md +++ /dev/null @@ -1,40 +0,0 @@ -oceanbase.CDB_OB_BACKUP_SET_OBSOLETE -========================================================= - - - -功能 ------------------------ - -展示哪些备份集已过期。 - -字段说明 -------------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|---------------------------|---------------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| INCARNATION | bigint(20) | NO | 与 Oracle 数据库中的incarnation 的含义相关,表示 Flashback Database 后的第几次分身 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| BS_KEY | bigint(20) | NO | 备份集的 ID | -| COPY_ID | varchar(1) | NO | 备份集的第几份拷贝 | -| BACKUP_TYPE | | NO | * D:表示全量备份 * I:表示增量备份 | -| ENCRYPTION_MODE | varchar(64) | NO | 加密模式: * NONE:表示不加密 * PASSWORD:表示仅使用密码保护 * PASSWORD ENCRYPTION:表示加密,并且通过密码保护 * TRANSPARENT ENCRYPTION:表示使用了 TDE 加密 * DUAL MODE ENCRYPTION:表示通过 TDE 加密,并且通过密码保护 **说明** 当前版本仅支持 NONE 和 PASSWORD。 | -| START_TIME | timestamp(6) | NO | 起始时间 | -| COMPLETION_TIME | timestamp(6) | NO | 完成时间 | -| ELAPSED_SECONDS | decimal(21,0) | NO | 备份耗时 | -| KEEP | varchar(2) | NO | * YES:表示永久保留 * NO:表示根据保留时间过期 目前仅支持 NO | -| KEEP_UNTIL | varchar(0) | NO | 保留的时间 | -| DEVICE_TYPE | varchar(64) | NO | 备份介质 | -| COMPRESSED | varchar(2) | NO | 是否压缩: * YES:表示压缩 * NO:表示不压缩 | -| OUTPUT_BYTES | bigint(20) | NO | 输出字节数 | -| OUTPUT_RATE_BYTES | decimal(34,4) | NO | 每秒输出字节数 | -| COMPRESSION_RATIO | decimal(23,2) | NO | 压缩率 | -| OUTPUT_BYTES_DISPLAY | varchar(27) | NO | 输出数据量 | -| OUTPUT_RATE_BYTES_DISPLAY | varchar(39) | NO | 输出速度 | -| TIME_TAKEN_DISPLAY | time(6) | NO | 耗时 hh:mm:ss | -| STATUS | varchar(9) | NO | 表示备份集的状态属性,目前的状态有: * COMPLETED:表示备份集备份成功 * FAILED:表示备份集备份失败 * DELETING:表示备份集正在清理 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/6.mysql-proc.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/6.mysql-proc.md deleted file mode 100644 index 3a1a458a3..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/6.mysql-proc.md +++ /dev/null @@ -1,39 +0,0 @@ -mysql.proc -=============================== - - - -功能 ------------ - -用于展示存储过程的信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------------|------------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| db | varchar(128) | NO | 数据库名 | -| name | varchar(128) | NO | 存储过程的名称 | -| type | varchar(10) | NO | 存储过程的类型: * PROCEDURE:存储过程 * FUNCTION:存储函数 | -| specific_name | varchar(64) | NO | 同name字段 | -| language | varchar(4) | NO | 未使用,当前为固定值SQL | -| sql_data_access | varchar(32) | NO | 未使用,当前为固定值CONTAINS_SQL | -| is_deterministic | varchar(4) | NO | 未使用,标识存储过程是否使`DETERMINISTIC` 特性定义: * YES * NO | -| security_type | varchar(10) | NO | 未使用,标识 SQL 的访问属性: * DEFINER * INVOKER | -| param_list | varchar(1048576) | NO | 存储过程的参数列表信息 | -| returns | varchar(1048576) | NO | 存储过程的返回值信息 | -| body | varchar(1048576) | NO | 存储过程定义的文本信息 | -| definer | varchar(77) | NO | 创建存储过程的用户 | -| created | timestamp(6) | NO | 创建存储过程的日期和时间 | -| modified | timestamp(6) | NO | 存储过程的最后修改日期和时间 | -| sql_mode | varchar(32) | NO | 创建或更改存储过程时有效的 SQL 模式,在该模式下执行存储过程 | -| comment | varchar(1048576) | NO | 注释文本 | -| character_set_client | varchar(128) | NO | 创建或更改存储过程时 character_set_client 系统变量的会话值 | -| collation_connection | varchar(128) | NO | 创建或更改存储过程时 collation_connection 系统变量的会话值 | -| collation_database | varchar(128) | NO | 创建或更改存储过程时 collation_database 系统变量的会话值 | -| body_utf8 | varchar(1048576) | NO | 过程定义,与 body 字段相同 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/7.mysql-time_zone.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/7.mysql-time_zone.md deleted file mode 100644 index e1fca8cf8..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/7.mysql-time_zone.md +++ /dev/null @@ -1,27 +0,0 @@ -mysql.time_zone -==================================== - - - -功能 ------------ - -用于展示时区相关的信息(SYSTEM_VIEW)。 - -相关表/视图 ---------------- - -__all_time_zone - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------|------------|-----------------|--------| -| Time_zone_id | bigint(20) | NO | 时区 ID | -| Use_leap_seconds | varchar(8) | NO | 是否使用闰秒 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/8.mysql-time_zone_name.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/8.mysql-time_zone_name.md deleted file mode 100644 index dda9358e2..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/8.mysql-time_zone_name.md +++ /dev/null @@ -1,29 +0,0 @@ -mysql.time_zone_name -========================================= - - - - - -功能 --------------------- - -用于记录 timezone 名称信息(SYSTEM_VIEW)。 - -相关表/视图 ------------------------- - -__all_time_zone_name - -字段说明 ----------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|--------------|-------------|------------|-------| -| Name | varchar(64) | NO | 时区名称 | -| Time_zone_id | bigint(20) | NO | 时区 ID | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/9.mysql-time_zone_transition.md b/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/9.mysql-time_zone_transition.md deleted file mode 100644 index 53579360f..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/2.dictionary-view/9.mysql-time_zone_transition.md +++ /dev/null @@ -1,27 +0,0 @@ -mysql.time_zone_transition -=============================================== - - - -功能 ------------ - -mysql.time_zone_transition 是用于记录时区转换信息的系统视图。 - -相关表/视图 ---------------- - -__all_time_zone_transition - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------|------------|----------------|-----------| -| Time_zone_id | bigint(20) | NO | 时区 ID | -| Transition_time | bigint(20) | NO | 时区转换时间 | -| Transition_type_id | bigint(20) | NO | 时区转换类型 ID | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/1.gv-plan_cache_stat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/1.gv-plan_cache_stat.md deleted file mode 100644 index 143fbd75c..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/1.gv-plan_cache_stat.md +++ /dev/null @@ -1,37 +0,0 @@ -gv$plan_cache_stat -======================================= - - - -功能 ------------ - -该视图记录当前租户在所有 Server 上的每个计划缓存整体的状态。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_plan_cache_stat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------|-------------|----------------|-----------------------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| svr_ip | varchar(32) | NO | 服务器的 IP 地址 | -| svr_port | bigint(20) | NO | 端口号 | -| sql_num | bigint(20) | NO | plan_cache 涉及 SQL 条数 | -| mem_used | bigint(20) | NO | plan_cache 已经使用的内存 | -| mem_hold | bigint(20) | NO | plan_cache 持有的内存 | -| access_count | bigint(20) | NO | 进行 plan_cache 的次数 | -| hit_count | bigint(20) | NO | 命中 plan_cache 的次数 | -| hit_rate | bigint(20) | NO | plan_cache 的命中率 | -| plan_num | bigint(20) | NO | plan 的个数 | -| mem_limit | bigint(20) | NO | plan_cache 的内存上限 | -| hash_bucket | bigint(20) | NO | plan_cache hash map 中的 Bucket 的个数 | -| stmtkey_num | bigint(20) | NO | plan_cache 中 stmt_key 的个数 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/10.gv-latch.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/10.gv-latch.md deleted file mode 100644 index 857681521..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/10.gv-latch.md +++ /dev/null @@ -1,40 +0,0 @@ -gv$latch -============================= - - - -功能 ------------ - -集群所有 OBServer 的 latch 信息视图。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_latch - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------|--------------|----------------|--------------------| -| CON_ID | bigint(20) | NO | 租户 ID | -| SVR_IP | varchar(32) | NO | IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口号 | -| ADDR | varchar(256) | NO | 目前为 NULL | -| LATCH# | bigint(20) | NO | latch 所属 class 的下标 | -| LEVEL# | bigint(20) | NO | latch 所属 level 的下标 | -| NAME | varchar(256) | NO | latch 的名称 | -| HASH | bigint(20) | NO | 该值目前为 0 | -| GETS | bigint(20) | NO | lock 成功次数 | -| MISSES | bigint(20) | NO | lock 进入等待的次数 | -| SLEEPS | bigint(20) | NO | 总共 yield 的次数 | -| IMMEDIATE_GETS | bigint(20) | NO | try_lock 成功次数 | -| IMMEDIATE_MISSES | bigint(20) | NO | try_lock 失败次数 | -| SPIN_GETS | bigint(20) | NO | 总共 spin 次数 | -| WAIT_TIME | bigint(20) | NO | 等待 sleep 时间 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/11.gv-memory.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/11.gv-memory.md deleted file mode 100644 index 21dfd4e60..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/11.gv-memory.md +++ /dev/null @@ -1,32 +0,0 @@ -gv$memory -============================== - - - -功能 ------------ - -gv$memory 视图用于展示租户级别的内存统计信息。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_memory_info - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------|--------------|----------------|--------------------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| IP | varchar(32) | NO | IP 地址 | -| PORT | bigint(20) | NO | 端口号 | -| CONTEXT | varchar(256) | NO | 内存所属 Mod 名称 | -| COUNT | bigint(20) | NO | 内存分配与释放的差值,即当前该 Mod 使用中的内存单元个数 | -| USED | bigint(20) | NO | 该 Mod 当前使用的内存数值,单位:Byte | -| ALLOC_COUNT | bigint(20) | NO | 该 Mod 申请的内存总个数 | -| FREE_COUNT | bigint(20) | NO | 该 Mod 释放的内存总个数 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/12.gv-memstore.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/12.gv-memstore.md deleted file mode 100644 index 4424a7da3..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/12.gv-memstore.md +++ /dev/null @@ -1,32 +0,0 @@ -gv$memstore -================================ - - - -功能 ------------ - -该视图用于展示所有服务器上所有租户的 Memtable 的内存使用状况。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_tenant_memstore_info - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|-------------|----------------|------------------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| IP | varchar(32) | NO | 服务器的 IP | -| PORT | bigint(20) | NO | 服务器端口 | -| ACTIVE | bigint(20) | NO | 当前活跃的 Memtable 的内存占用大小,单位为字节 | -| TOTAL | bigint(20) | NO | 当前所有 Memtable 的内存占用大小,单位为字节 | -| FREEZE_TRIGGER | bigint(20) | NO | 触发 Memtable 冻结的内存大小,单位为字节 | -| MEM_LIMIT | bigint(20) | NO | Memtable 的内存大小限制,单位:字节 | -| FREEZE_CNT | bigint(20) | NO | Memtable 的冻结次数 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/13.gv-memstore_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/13.gv-memstore_info.md deleted file mode 100644 index b0edabffc..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/13.gv-memstore_info.md +++ /dev/null @@ -1,37 +0,0 @@ -gv$memstore_info -===================================== - - - -功能 ------------ - -`gv$memstore_info` 视图用于展示所有服务器上所有租户的所有分区的 Memtable 的详细信息。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_memstore_info - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为空** | **描述** | -|---------------------|--------------|------------|----------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| IP | varchar(32) | NO | 服务器的 IP | -| PORT | bigint(20) | NO | 服务器端口 | -| TABLE_ID | bigint(20) | NO | 表 ID | -| PARTITION_ID | bigint(20) | NO | 分区 ID | -| VERSION | varchar(128) | NO | 冻结版本号 | -| BASE_VERSION | bigint(20) | NO | 数据的快照版本号的左边界 | -| MULTI_VERSION_START | bigint(20) | NO | 最小的老版本数据的快照版本号 | -| SNAPSHOT_VERSION | bigint(20) | NO | 数据的快照版本号的右边界 | -| IS_ACTIVE | bigint(20) | NO | 是否是活跃的 | -| USED | bigint(20) | NO | 使用的内存大小,单位为字节 | -| HASH_ITEMS | bigint(20) | NO | Hash 索引中记录的行数 | -| BTREE_ITEMS | bigint(20) | NO | Btree 索引中记录的行数 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/14.gv-plan_cache_plan_explain.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/14.gv-plan_cache_plan_explain.md deleted file mode 100644 index cd8a489d8..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/14.gv-plan_cache_plan_explain.md +++ /dev/null @@ -1,40 +0,0 @@ -gv$plan_cache_plan_explain -=============================================== - - - -功能 ------------ - -该视图用于展示缓存在全部的 Server 中的计划缓存中的物理执行计划。 -**说明** - - - -该视图仅支持 get 操作,查询时需要指定 IP、PORT、TENANT_ID、PLAN_ID 字段。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_plan_cache_plan_explain - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为空** | **描述** | -|--------------|--------------|------------|------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| IP | varchar(32) | NO | IP 地址 | -| PORT | bigint(20) | NO | 端口号 | -| PLAN_ID | bigint(20) | NO | 计划的 ID | -| PLAN_DEPTH | bigint(20) | NO | Operator 在展示时的深度 | -| PLAN_LINE_ID | bigint(20) | NO | Operator 的编号 | -| OPERATOR | varchar(128) | NO | Operator 的名称 | -| NAME | varchar(128) | NO | 表的名称 | -| ROWS | bigint(20) | NO | 预估的结果行数 | -| COST | bigint(20) | NO | 预估的代价 | -| PROPERTY | varchar(256) | NO | 对应 Operator 的信息 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/15.gv-obrpc_outgoing.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/15.gv-obrpc_outgoing.md deleted file mode 100644 index d9133cc1a..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/15.gv-obrpc_outgoing.md +++ /dev/null @@ -1,37 +0,0 @@ -gv$obrpc_outgoing -====================================== - - - -功能 ------------ - -所有 OBServer 的 RPC 的发送统计信息。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_obrpc_stat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|--------------|----------------|-----------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| IP | varchar(32) | NO | IP 地址 | -| PORT | bigint(20) | NO | 端口号 | -| PCODE | bigint(20) | NO | RPC Packet Code | -| PCODE_NAME | varchar(256) | NO | RPC Packet Code 对应的名称 | -| COUNT | bigint(20) | NO | 使用次数 | -| TOTAL_TIME | bigint(20) | NO | 总共花费时间 | -| TOTAL_SIZE | bigint(20) | NO | 总共发送数据量大小 | -| FAILURE | bigint(20) | NO | 发送失败次数 | -| TIMEOUT | bigint(20) | NO | 发送超时次数 | -| SYNC | bigint(20) | NO | 同步等待 RPC 请求个数 | -| ASYNC | bigint(20) | NO | 异步回调 RPC 请求个数 | -| LAST_TIMESTAMP | timestamp(6) | NO | 最后更新统计信息时间 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/16.gv-obrpc_incoming.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/16.gv-obrpc_incoming.md deleted file mode 100644 index 4e8834afa..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/16.gv-obrpc_incoming.md +++ /dev/null @@ -1,36 +0,0 @@ -gv$obrpc_incoming -====================================== - - - -功能 ------------ - -gv$obrpc_incoming 视图用于展示所有 OBServer 收到 RPC 请求的统计信息。 - -相关表/视图 ---------------- - -v$obrpc_incoming - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|--------------|----------------|-----------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| IP | varchar(32) | NO | IP 地址 | -| PORT | bigint(20) | NO | 端口号 | -| PCODE | bigint(20) | NO | RPC Packet Code | -| PCODE_NAME | varchar(256) | NO | RPC Packet Code 对应的名称 | -| COUNT | bigint(20) | NO | 已接收到的该类型的 RPC 请求的个数 | -| TOTAL_SIZE | bigint(20) | NO | 总共接收数据量 | -| NET_TIME | bigint(20) | NO | 网络时间 | -| WAIT_TIME | bigint(20) | NO | 接收时间到请求被放入队列的时间 | -| QUEUE_TIME | bigint(20) | NO | 在队列中等待的时间 | -| PROCESS_TIME | bigint(20) | NO | 实际处理消耗的时间 | -| LAST_TIMESTAMP | timestamp(6) | NO | 上次更新的时间 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/17.gv-sql.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/17.gv-sql.md deleted file mode 100644 index 62381f043..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/17.gv-sql.md +++ /dev/null @@ -1,51 +0,0 @@ -gv$sql -=========================== - - - -功能 ------------ - -所有热更新的 SQL 相关统计信息,记录每个 Plan 上的统计信息,汇总单个 Plan 多次执行的统计信息;每个 Plan 都会在表中有一行。 - -相关表/视图 ---------------- - -__all_virtual_plan_stat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------------|---------------------|----------------|--------------------------------| -| CON_ID | bigint(20) | NO | 租户 ID | -| SVR_IP | varchar(32) | NO | IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口号 | -| PLAN_ID | bigint(20) | NO | 执行计划的 ID | -| SQL_ID | varchar(32) | NO | SQL 的标识符 | -| TYPE | bigint(20) | NO | SQL 类型,local remote distribute | -| SQL_TEXT | varchar(4096) | NO | SQL 语句文本 | -| PLAN_HASH_VALUE | bigint(20) | NO | 执行计划的 Hash 值 | -| FIRST_LOAD_TIME | timestamp(6) | NO | 第一次执行时间 | -| LAST_ACTIVE_TIME | timestamp(6) | NO | 上一次执行时间 | -| AVG_EXE_USEC | bigint(20) | NO | 平均执行耗时 | -| SLOWEST_EXE_TIME | timestamp(6) | NO | 最慢执行开始时间点 | -| SLOWEST_EXE_USEC | bigint(20) | NO | 最慢执行消耗时间 | -| SLOW_COUNT | bigint(20) | NO | 慢查询次数统计 | -| HIT_COUNT | bigint(20) | NO | 命中 Plan Cache 的统计 | -| PLAN_SIZE | bigint(20) | NO | 物理计划占用的内存 | -| EXECUTIONS | bigint(20) | NO | 执行次数 | -| DISK_READS | bigint(20) | NO | 多盘次数 | -| DIRECT_WRITES | bigint(20) | NO | 写盘次数 | -| BUFFER_GETS | bigint(20) | NO | 逻辑读次数 | -| APPLICATION_WAIT_TIME | bigint(20) unsigned | NO | application 类事件等待时间 | -| CONCURRENCY_WAIT_TIME | bigint(20) unsigned | NO | concurrentcy 类事件等待时间 | -| USER_IO_WAIT_TIME | bigint(20) unsigned | NO | 所有 IO 类事件等待时间 | -| ROWS_PROCESSED | bigint(20) | NO | 所有 Schedule 类事件等待事件 | -| ELAPSED_TIME | bigint(20) unsigned | NO | 接收到处理完成总消耗时间 | -| CPU_TIME | bigint(20) unsigned | NO | 消耗的 CPU 时间 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/18.gv-sql_plan_monitor.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/18.gv-sql_plan_monitor.md deleted file mode 100644 index bea57dddd..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/18.gv-sql_plan_monitor.md +++ /dev/null @@ -1,105 +0,0 @@ -gv$sql_plan_monitor -======================================== - - - -功能 ------------ - -展示所有 OBServer 慢查询的 Plan 层面的统计,每个慢查询都会有一条统计信息,同时记录该 Plan 的 Trace 信息。 - -相关表/视图 ---------------- - -__all_virtual_sql_plan_monitor - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------------------|--------------|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| CON_ID | bigint(20) | NO | 租户 ID | -| KEY | null | NO | 外键,用于和 SQL_MONITOR 相关虚拟表做连接查询 | -| STATUS | null | NO | 算子执行状态: * EXECUTING:执行中 * DONE(ERROR):执行出错 * DONE(FIRST N ROWS):执行成功 * DONE(ALL ROWS):执行成功 * DONE: 执行中断 | -| SVR_IP | varchar(32) | NO | 算子所在机器的 IP | -| SVR_PORT | bigint(20) | NO | 算子所在机器的端口号 | -| TRACE_ID | varchar(64) | NO | 算子的 Trace ID | -| FIRST_REFRESH_TIME | timestamp(6) | NO | 算子开始监控时间 | -| LAST_REFRESH_TIME | timestamp(6) | NO | 算子结束监控时间 | -| FIRST_CHANGE_TIME | timestamp(6) | NO | 算子吐出首行数据时间 | -| LAST_CHANGE_TIME | timestamp(6) | NO | 算子吐出最后一行数据时间 | -| REFRESH_COUNT | null | NO | 统计数据刷新次数 | -| SID | null | NO | Session 的 ID | -| PROCESS_NAME | bigint(20) | NO | 执行线程 ID | -| SQL_ID | null | NO | SQL ID | -| SQL_EXEC_START | null | NO | SQL 开始执行时间 | -| SQL_EXEC_ID | null | NO | SQL 执行 ID | -| SQL_PLAN_HASH_VALUE | null | NO | SQL 计划的 HASH 值 | -| SQL_CHILD_ADDRESS | null | NO | 默认为 NULL | -| PLAN_PARENT_ID | null | NO | 父算子 ID | -| PLAN_LINE_ID | bigint(20) | NO | 默认为 NULL | -| PLAN_OPERATION | varchar(128) | NO | 算子名称 | -| PLAN_OPTIONS | null | NO | 默认为 NULL | -| PLAN_OBJECT_OWNER | null | NO | 默认为 NULL | -| PLAN_OBJECT_NAME | null | NO | 默认为 NULL | -| PLAN_OBJECT_TYPE | null | NO | 默认为 NULL | -| PLAN_DEPTH | bigint(20) | NO | 算子在计划树中的深度 | -| PLAN_POSITION | null | NO | 算子是父节点的第几个孩子 | -| PLAN_COST | null | NO | 优化器计算出的算子代价 | -| PLAN_CARDINALITY | null | NO | 优化器计算出的算子输出数据行数 | -| PLAN_BYTES | null | NO | 优化器估算出的算子输出数据字节数 | -| PLAN_TIME | null | NO | 优化器计算出的算子执行时间 | -| PLAN_PARTITION_START | null | NO | 默认为 NULL | -| PLAN_PARTITION_STOP | null | NO | 默认为 NULL | -| PLAN_CPU_COST | null | NO | 优化器估算出的算子 CPU 代价 | -| PLAN_IO_COST | null | NO | 优化器估算出的算子 IO 代价 | -| PLAN_TEMP_SPACE | null | NO | 优化器估算出的算子空间占用大小 | -| STARTS | bigint(20) | NO | 算子被 rescan 的次数 | -| OUTPUT_ROWS | bigint(20) | NO | 算子输出的总行数(所有本算子的执行实例行数累加值) | -| IO_INTERCONNECT_BYTES | null | NO | 算子与储存层之间交换的数据字节数 | -| PHYSICAL_READ_REQUESTS | null | NO | 算子发出的 I/O 读请求次数 | -| PHYSICAL_READ_BYTES | null | NO | 算子发出的 I/O 读请求字节数 | -| PHYSICAL_WRITE_REQUESTS | null | NO | 算子发出的 I/O 写请求次数 | -| PHYSICAL_WRITE_BYTES | null | NO | 算子发出的 I/O 写请求字节数 | -| WORKAREA_MEM | null | NO | 算子占用的 work area 内存量 | -| WORKAREA_MAX_MEM | null | NO | 算子可占用的 work area 内存上限 | -| WORKAREA_TEMPSEG | null | NO | 算子占用的磁盘 dump 空间 | -| WORKAREA_MAX_TEMPSEG | null | NO | 算子可占用的最大磁盘 dump 空间 | -| OTHERSTAT_GROUP_ID | null | NO | 默认为 NULL | -| OTHERSTAT_1_ID | bigint(20) | NO | 预留 | -| OTHERSTAT_1_TYPE | null | NO | 预留 | -| OTHERSTAT_1_VALUE | bigint(20) | NO | 预留 | -| OTHERSTAT_2_ID | bigint(20) | NO | 预留 | -| OTHERSTAT_2_TYPE | null | NO | 预留 | -| OTHERSTAT_2_VALUE | bigint(20) | NO | 预留 | -| OTHERSTAT_3_ID | bigint(20) | NO | 预留 | -| OTHERSTAT_3_TYPE | null | NO | 预留 | -| OTHERSTAT_3_VALUE | bigint(20) | NO | 预留 | -| OTHERSTAT_4_ID | bigint(20) | NO | 预留 | -| OTHERSTAT_4_TYPE | null | NO | 预留 | -| OTHERSTAT_4_VALUE | bigint(20) | NO | 预留 | -| OTHERSTAT_5_ID | bigint(20) | NO | 预留 | -| OTHERSTAT_5_TYPE | null | NO | 预留 | -| OTHERSTAT_5_VALUE | bigint(20) | NO | 预留 | -| OTHERSTAT_6_ID | bigint(20) | NO | 预留 | -| OTHERSTAT_6_TYPE | null | NO | 预留 | -| OTHERSTAT_6_VALUE | bigint(20) | NO | 预留 | -| OTHERSTAT_7_ID | bigint(20) | NO | 预留 | -| OTHERSTAT_7_TYPE | null | NO | 预留 | -| OTHERSTAT_7_VALUE | bigint(20) | NO | 预留 | -| OTHERSTAT_8_ID | bigint(20) | NO | 预留 | -| OTHERSTAT_8_TYPE | null | NO | 预留 | -| OTHERSTAT_8_VALUE | bigint(20) | NO | 预留 | -| OTHERSTAT_9_ID | bigint(20) | NO | 预留 | -| OTHERSTAT_9_TYPE | null | NO | 预留 | -| OTHERSTAT_9_VALUE | bigint(20) | NO | 预留 | -| OTHERSTAT_10_ID | bigint(20) | NO | 预留 | -| OTHERSTAT_10_TYPE | null | NO | 预留 | -| OTHERSTAT_10_VALUE | bigint(20) | NO | 预留 | -| OTHER_XML | null | NO | 其它无法写入预留项中,但需要提供给外部使用的结构化数据。由外部工具负责解析 | -| PLAN_OPERATION_INACTIVE | null | NO | 默认为 NULL | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/19.gv-outline.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/19.gv-outline.md deleted file mode 100644 index cf3fa8a39..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/19.gv-outline.md +++ /dev/null @@ -1,33 +0,0 @@ -gv$outline -=============================== - - - -功能 ------------ - -展示当前租户的 outline 信息,主要用于 outline 的迁移。 - -相关表/视图 ---------------- - -oceanbase.__tenant_virtual_outline - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------------|----------------|----------------|---------------------------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| database_id | bigint(20) | NO | 数据库 ID | -| outline_id | bigint(20) | NO | outline ID | -| database_name | varchar(128) | NO | 数据库名称 | -| outline_name | varchar(128) | NO | outline 名称 | -| visible_signature | varchar(32768) | NO | signature 的反序列化结果,为了便于查看signature 的信息 | -| sql_text | varchar(32768) | NO | 创建 outline 时,在 on clause 中指定的 SQL | -| outline_target | varchar(32768) | NO | 创建 outline 时,在 to clause 中指定的 SQL | -| outline_sql | varchar(32768) | NO | 具有完整 outline 信息的 SQL | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/2.gv-plan_cache_plan_stat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/2.gv-plan_cache_plan_stat.md deleted file mode 100644 index b6c673ce9..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/2.gv-plan_cache_plan_stat.md +++ /dev/null @@ -1,85 +0,0 @@ -gv$plan_cache_plan_stat -============================================ - - - -功能 ------------ - -gv$plan_cache_plan_stat 视图记录了当前租户在所有 Server 上的计划缓存中缓存的每一个缓存对象的状态。 -**注意** - - - -该表不仅缓存了 SQL 计划对象,也缓存了 PL 对象(如匿名块、PL Package 以及 PL Function),某些字段只在特定对象下有效。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_plan_stat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------------|---------------------|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| tenant_id | bigint(20) | NO | 租户 ID。 | -| svr_ip | varchar(32) | NO | 服务器的 IP 地址。 | -| svr_port | bigint(20) | NO | 机器端口号。 | -| plan_id | bigint(20) | NO | 缓存对象的 ID。 | -| sql_id | varchar(32) | NO | 缓存对象对应的 SQL ID,如果是 PL 对象,则该字段为 NULL。 | -| type | bigint(20) | NO | 对于 SQL 计划的缓存,该字段表示计划的类型: * 1:表示 Local Plan * 2:表示 Remote Plan * 3:表示 Distribute Plan 对于 PL 对象缓存,该字段表示 PL 对象的类型: * 1:表示 Procedure * 2:表示 Function * 3:表示 Package * 4:表示 Anonymous Block | -| is_bind_sensitive | bigint(20) | NO | 该计划是否需要打开 ACS。 | -| is_bind_aware | bigint(20) | NO | 该计划已经打开了 ACS。 | -| db_id | bigint(20) unsigned | NO | 数据库 ID。 | -| statement | varchar(4096) | NO | 对于 SQL 计划,该字段为参数化后的 SQL 语句;对于匿名块对象,该字段为参数化后的匿名块语句;其他对象该字段无效。 | -| query_sql | varchar(65536) | NO | 对于 SQL 计划,字段为第一次加载计划时查询的原始 SQL 语句;对于匿名块字段,该字段为参数化后的匿名块语句。 | -| special_params | varchar(4096) | NO | 表示不可参数化的参数值。 | -| param_infos | varchar(65536) | NO | 表示参数化信息。 | -| sys_vars | varchar(4096) | NO | 影响计划的系统变量的值。 | -| plan_hash | bigint(20) unsigned | NO | SQL 计划的 Hash 值。 | -| first_load_time | timestamp(6) | NO | 第一次被加载时间。 | -| schema_version | bigint(20) | NO | Schema 版本号。 | -| merged_version | bigint(20) | NO | 当前缓存的计划对应的合并版本号。 | -| last_active_time | timestamp(6) | NO | 上一次被执行时间。 | -| avg_exe_usec | bigint(20) | NO | 平均执行时间。 | -| slowest_exe_time | timestamp(6) | NO | 最慢执行时间戳。 | -| slowest_exe_usec | bigint(20) | NO | 最慢一次执行的耗时。 | -| slow_count | bigint(20) | NO | 当前 SQL 计划成为慢查询的次数。 | -| hit_count | bigint(20) | NO | 被命中次数。 | -| plan_size | bigint(20) | NO | 缓存对象占用的内存大小。 | -| executions | bigint(20) | NO | 执行次数。 | -| disk_reads | bigint(20) | NO | 所有执行物理读的次数。 | -| direct_writes | bigint(20) | NO | 所有执行物理写的次数。 | -| buffer_gets | bigint(20) | NO | 所有执行逻辑读的次数。 | -| application_wait_time | bigint(20) unsigned | NO | 所有 Application 类事件的总时间。 | -| concurrency_wait_time | bigint(20) unsigned | NO | 所有 Concurrency 类事件的总时间。 | -| user_io_wait_time | bigint(20) unsigned | NO | 所有 user_io 类事件的总时间。 | -| rows_processed | bigint(20) | NO | 所有 Schedule 类事件的时间。 | -| elapsed_time | bigint(20) unsigned | NO | 接收到请求到执行结束所消耗的时间。 | -| cpu_time | bigint(20) unsigned | NO | 所有执行消耗的 CPU 时间。 | -| large_querys | bigint(20) | NO | 被判断为大查询的次数。 | -| delayed_large_querys | bigint(20) | NO | 被判断为大查询且被丢入大查询队列的次数。 | -| delayed_px_querys | bigint(20) | NO | 并行查询被丢回队列重试的次数。 | -| outline_version | bigint(20) | NO | Outline 版本号。 | -| outline_id | bigint(20) | NO | Outline 的 ID,为 -1 表示不是通过绑定 Outline 生成的计划。 | -| outline_data | varchar(65536) | NO | 计划对应的 Outline 信息。 | -| acs_sel_info | varchar(65536) | NO | 当前 ACS 计划对应的选择率空间。 | -| table_scan | tinyint(4) | NO | 表示该查询是否为主键扫描。 | -| evolution | tinyint(4) | NO | 表示该执行计划是否在演进中。 | -| evo_executions | bigint(20) | NO | 演进次数。 | -| evo_cpu_time | bigint(20) unsigned | NO | 演进过程中总的执行 CPU 时间。 | -| timeout_count | bigint(20) | NO | 超时的次数。 | -| ps_stmt_id | bigint(20) | NO | PreparedStatement 的 ID。 | -| sessid | bigint(20) unsigned | NO | 缓存对象所在的 Session ID. | -| temp_tables | varchar(65536) | NO | SQL 计划中包含的临时表表名,如果没有临时表,字段为空. | -| is_use_jit | tinyint(4) | NO | SQL 计划是否开启了表达式编译执行。 | -| object_type | varchar(65536) | NO | 缓存对象的类型: * SQL_PLAN * PROCEDURE * FUNCTION * PACKAGE * ANONYMOUS | -| hints_info | varchar(65536) | NO | SQL 计划的 Hint 信息。 | -| hints_all_worked | tinyint(4) | NO | SQL 计划中的 Hint 是否都已经生效 | -| pl_schema_id | bigint(20) unsigned | NO | 对于非匿名块的 PL 对象,字段为缓存对象的 Schema ID;对于匿名块,字段与 `ps_stmt_id` 相同;对于 SQL 计划,该字段无意义。 | -| is_batched_multi_stmt | tinyint(4) | NO | 表示是否为 Batched Multistmt 优化的计划。 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/20.gv-concurrent_limit_sql.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/20.gv-concurrent_limit_sql.md deleted file mode 100644 index 8300dcdd8..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/20.gv-concurrent_limit_sql.md +++ /dev/null @@ -1,34 +0,0 @@ -gv$concurrent_limit_sql -============================================ - - - -功能 ------------ - -展示当前租户的所有限流信息。 - -相关表/视图 ---------------- - -oceanbase.__tenant_virtual_concurrent_limit_sql - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------------|----------------|----------------|---------------------------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| database_id | bigint(20) | NO | 数据库 ID | -| outline_id | bigint(20) | NO | 限流对应的 outline ID | -| database_name | varchar(128) | NO | 数据库名称 | -| outline_name | varchar(128) | NO | 限流对应的 outline 名称 | -| outline_content | varchar(65536) | NO | 限流对应的 outline 内容,可以为 empty | -| visible_signature | varchar(65536) | NO | signature 的反序列化结果,为了便于查看signature 的信息 | -| sql_text | varchar(65536) | NO | 创建 outline 时,在 on clause 中指定的 SQL | -| concurrent_num | bigint(20) | NO | 当前 SQL 限制的并发数 | -| limit_target | varchar(65536) | NO | 被限流的 SQL | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/21.gv-sql_plan_statistics.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/21.gv-sql_plan_statistics.md deleted file mode 100644 index b67285809..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/21.gv-sql_plan_statistics.md +++ /dev/null @@ -1,39 +0,0 @@ -gv$sql_plan_statistics -=========================================== - - - -功能 ------------ - -展示整个集群中物理执行计划的统计信息。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_sql_plan_statistics - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------|----------------|----------------|---------------| -| CON_ID | bigint(20) | NO | 租户 ID | -| SVR_IP | varchar(32) | NO | IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口地址 | -| PLAN_ID | bigint(20) | NO | 物理计划 ID | -| OPERATION_ID | bigint(20) | N | 物理算子 ID | -| EXECUTIONS | bigint(20) | NO | 累计执行次数 | -| OUTPUT_ROWS | bigint(20) | NO | 累计算子输出行数 | -| INPUT_ROWS | bigint(20) | NO | 累计算子输入行数 | -| RESCAN_TIMES | bigint(20) | NO | 累计 Rescan 的次数 | -| BUFFER_GETS | bigint(20) | NO | Buffer 命中次数 | -| DISK_READS | bigint(20) | NO | 累计物理度盘次数 | -| DISK_WRITES | bigint(20) | NO | 累计物理写盘次数 | -| ELAPSED_TIME | bigint(20) | NO | 累计算子消耗时间 | -| EXTEND_INFO1 | varchar(65535) | NO | 暂未使用 | -| EXTEND_INFO2 | varchar(65535) | NO | 暂未使用 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/22.gv-server_memstore.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/22.gv-server_memstore.md deleted file mode 100644 index df2be450c..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/22.gv-server_memstore.md +++ /dev/null @@ -1,30 +0,0 @@ -gv$server_memstore -======================================= - - - -功能 ------------ - -展示集群中每个 Server 中 memstore 的内存使用情况。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_server_memory_info - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|-------------|----------------|--------------------| -| IP | varchar(32) | NO | 服务器的 IP | -| PORT | bigint(20) | NO | 服务器的端口 | -| ACTIVE | bigint(20) | NO | 当前活跃 Memstore 所占内存 | -| TOTAL | bigint(20) | NO | Memstore 一共使用了多少内存 | -| FREEZE_TRIGGER | bigint(20) | NO | 触发冻结的阈值 | -| MEM_LIMIT | bigint(20) | NO | Memstore 的内存限制 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/23.gv-unit_load_balance_event_history.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/23.gv-unit_load_balance_event_history.md deleted file mode 100644 index f762f9a04..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/23.gv-unit_load_balance_event_history.md +++ /dev/null @@ -1,42 +0,0 @@ -gv$unit_load_balance_event_history -======================================================= - - - -功能 ------------ - -记录整个集群中副本迁移的结果。 - -相关表/视图 ---------------- - -oceanbase.__all_rootservice_event_history - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------|--------------|----------------|-----------------------| -| gmt_create | timestamp(6) | NO | 副本迁移发生的时间 | -| zone | varchar(256) | NO | 发生迁移的 Zone | -| table_id | varchar(256) | NO | 表 ID | -| partition_id | varchar(256) | NO | 分区 ID | -| data_size | varchar(256) | NO | 数据大小 | -| replica_type | varchar(256) | NO | 副本类型 | -| src_ip | varchar(256) | NO | 副本原 OBServer 的IP地址 | -| src_port | varchar(256) | NO | 副本原 OBServer 的端口 | -| dest_unit_id | varchar(256) | NO | 目的单元 ID | -| dest_ip | varchar(256) | NO | 副本目标 OBServer 的 IP 地址 | -| dest_port | varchar(256) | NO | 副本目标 OBServer 的断开 | -| data_src_ip | varchar(256) | NO | 静态数据来源 IP | -| data_src_port | varchar(256) | NO | 静态数据数据来源端口 | -| result_code | varchar(256) | YES | 迁移结果错误码 | -| result_str | varchar(27) | YES | 迁移结果信息 | -| comment | varchar(256) | YES | 备注 | -| rs_svr_ip | varchar(32) | YES | RS 的 IP 地址 | -| rs_svr_port | bigint(20) | YES | RS 的端口 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/24.gv-tenant.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/24.gv-tenant.md deleted file mode 100644 index b4b91a9ae..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/24.gv-tenant.md +++ /dev/null @@ -1,32 +0,0 @@ -gv$tenant -============================== - - - -功能 ------------ - -展示系统租户整个集群的信息。 - -相关表/视图 ---------------- - -无 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|---------------|----------------|------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| tenant_name | varchar(128) | NO | 租户的名称 | -| zone_list | varchar(8192) | NO | 租户的 Zone 集合 | -| primary_zone | varchar(128) | YES | 租户的 Primary Zone | -| collation_type | bigint(20) | NO | 租户的 Collation 信息 | -| info | varchar(4096) | NO | 租户的信息 | -| read_only | bigint(20) | NO | 租户是否为只读模式,该值已被废弃 | -| locality | varchar(256) | NO | 租户的副本分布方式 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/25.gv-database.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/25.gv-database.md deleted file mode 100644 index 63cbdad14..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/25.gv-database.md +++ /dev/null @@ -1,45 +0,0 @@ -gv$database -================================ - - - -功能 ------------ - -展示集群中所有数据库的 Meta 信息。 - -相关表/视图 ---------------- - -* oceanbase.__all_database - - - -* oceanbase.__all_tenant - - - - - - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------------|---------------|----------------|-----------------------------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| tenant_name | varchar(128) | NO | 租户名称 | -| database_id | bigint(20) | NO | 数据库的 ID | -| database_name | varchar(128) | NO | 数据库的名称 | -| zone_list | varchar(8192) | NO | 数据库的 Locality 的 Zone 集合 | -| primary_zone | varchar(128) | YES | 数据库的 primary_zone | -| collation_type | bigint(20) | NO | 数据库的 collation 类型 | -| comment | varchar(2048) | NO | 注释 | -| read_only | bigint(20) | NO | 是否为只读模式 | -| default_tablegroup_id | bigint(20) | NO | 数据库缺省的表组 ID,若该值为 -1,则该数据库下不指定表组,建表会使用该值 | -| in_recyclebin | bigint(20) | NO | 表示数据库是否在回收站中 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/26.gv-table.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/26.gv-table.md deleted file mode 100644 index dfc0c8505..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/26.gv-table.md +++ /dev/null @@ -1,68 +0,0 @@ -gv$table -============================= - - - -功能 ------------ - -展示整个集群中所有表的 Meta 信息。 - -相关表/视图 ---------------- - -* oceanbase.__all_table - - - -* oceanbase.__all_tenant - - - -* oceanbase.__all_database - - - -* oceanbase.__all_tablegroup - - - - - - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------|---------------|----------------|--------------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| tenant_name | varchar(128) | NO | 租户名称 | -| table_id | bigint(20) | NO | 表ID | -| table_name | varchar(128) | NO | 表名 | -| database_id | bigint(20) | NO | 数据库ID | -| database_name | varchar(128) | NO | 数据库名称 | -| tablegroup_id | bigint(20) | NO | 表格组ID | -| tablegroup_name | varchar(128) | NO | 表格组名称 | -| table_type | bigint(20) | NO | 表类型 | -| zone_list | varchar(8192) | NO | 表的 Locality 所涉及的 Zone 集合 | -| primary_zone | varchar(128) | YES | 表的 primary_zone | -| collation_type | bigint(20) | NO | collation 的类型 | -| locality | varchar(256) | NO | 表的副本分布方式 | -| schema_version | bigint(20) | NO | Schema 的版本号 | -| read_only | bigint(20) | NO | 表是否只读 | -| comment | varchar(4096) | NO | 注释 | -| index_status | bigint(20) | NO | 索引状态 | -| index_type | bigint(20) | NO | 索引类型 | -| part_level | bigint(20) | NO | 分区表类型 | -| part_func_type | bigint(20) | NO | 一级分区的类型 | -| part_func_expr | varchar(4096) | NO | 一级分区的表达式 | -| part_num | bigint(20) | NO | 一级分区的个数 | -| sub_part_func_type | bigint(20) | NO | 二级分区的类型 | -| sub_part_func_expr | varchar(4096) | NO | 二级分区的表达式 | -| sub_part_num | bigint(20) | NO | 二级分区的个数 | -| dop | bigint(20) | NO | 查询的并行度 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/27.gv-unit.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/27.gv-unit.md deleted file mode 100644 index 99baf46ad..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/27.gv-unit.md +++ /dev/null @@ -1,62 +0,0 @@ -gv$unit -============================ - - - -功能 ------------ - -gv$unit 视图用于展示集群中所有 Unit 的 Meta 信息。 - -相关表/视图 ---------------- - -* oceanbase.__all_unit - - - -* oceanbase.__all_unit_config - - - -* oceanbase.__all_resource_pool - - - -* oceanbase.__all_tenant - - - - - - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------------|--------------|----------------|------------------------| -| unit_id | bigint(20) | NO | 单元 ID | -| unit_config_id | bigint(20) | NO | 单元规格 ID | -| unit_config_name | varchar(128) | NO | 单元规格名 | -| resource_pool_id | bigint(20) | NO | 资源池 ID | -| resource_pool_name | varchar(128) | NO | 资源池名 | -| zone | varchar(128) | NO | 所属 zone | -| tenant_id | bigint(20) | NO | 租户 ID | -| tenant_name | varchar(128) | NO | 租户名称 | -| svr_ip | varchar(32) | NO | IP 地址 | -| svr_port | bigint(20) | NO | 端口 | -| migrate_from_svr_ip | varchar(32) | NO | Unit 的迁移来源 Server 的 IP | -| migrate_from_svr_port | bigint(20) | NO | Unit 的迁移来源 Server 的端口号 | -| max_cpu | double | NO | 最大虚拟 CPU 个数 | -| min_cpu | double | NO | 最小虚拟 CPU 个数 | -| max_memory | bigint(20) | NO | 最大内存使用量 | -| min_memory | bigint(20) | NO | 最小内存使用量 | -| max_iops | bigint(20) | NO | 最大 IOPS | -| min_iops | bigint(20) | NO | 最小 IOPS | -| max_disk_size | bigint(20) | NO | 最大磁盘使用量 | -| max_session_num | bigint(20) | NO | 最大 Session 个数 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/28.gv-partition.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/28.gv-partition.md deleted file mode 100644 index 844a5db6e..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/28.gv-partition.md +++ /dev/null @@ -1,58 +0,0 @@ -gv$partition -================================= - - - -功能 ------------ - -展示集群中所有的 partition meta 信息。 - -相关表/视图 ---------------- - -* oceanbase.__all_virtual_partition_table - - - -* oceanbase.gv$table - - - - - - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------|---------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| table_id | bigint(20) | NO | 表 ID | -| tablegroup_id | bigint(20) | NO | 表组 ID | -| partition_id | bigint(20) | NO | 分区 ID | -| svr_ip | varchar(32) | NO | OBServer 的IP 地址 | -| svr_port | bigint(20) | NO | OBServer 的端口 | -| sql_port | bigint(20) | NO | OBServer SQL 端口 | -| unit_id | bigint(20) | NO | 单元 ID | -| partition_cnt | bigint(20) | NO | 分区个数,该值已被废弃,无意义 | -| zone | varchar(128) | NO | 副本所在的 Zone | -| role | bigint(20) | NO | 副本角色 * 1 :leader * 2:follower | -| member_list | varchar(3520) | NO | Paxos 组中的成员列表 | -| row_count | bigint(20) | NO | 行数 | -| data_size | bigint(20) | NO | 数据大小 | -| data_version | bigint(20) | NO | 数据版本号 | -| partition_checksum | bigint(20) | NO | 分区校验码 | -| data_checksum | bigint(20) | NO | 数据校验码 | -| row_checksum | bigint(20) | NO | 行校验码 | -| column_checksum | varchar(8192) | NO | 列校验码 | -| rebuild | bigint(20) | NO | 是否处于 rebuild 状态 | -| replica_type | bigint(20) | NO | 副本类型 | -| required_size | bigint(20) | NO | 迁移所需的 size | -| status | varchar(64) | NO | 副本状态 | -| is_restore | bigint(20) | NO | 区分是否为正在逻辑/物理恢复的副本 | -| quorum | bigint(20) | NO | 仅` role=1` 的行的该值有效,表示 Paxos 组应有的成员数,用于计算多数派。 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/29.gv-lock_wait_stat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/29.gv-lock_wait_stat.md deleted file mode 100644 index 4039a3611..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/29.gv-lock_wait_stat.md +++ /dev/null @@ -1,37 +0,0 @@ -gv$lock_wait_stat -====================================== - - - -功能 ------------ - -整个集群中行锁的状态。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_lock_wait_stat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------|--------------|----------------|--------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| TABLE_ID | bigint(20) | NO | 表 ID | -| TABLE_NAME | varchar(128) | NO | 表名 | -| ROWKEY | varchar(512) | NO | 主键 | -| SVR_IP | varchar(32) | NO | IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口号 | -| SESSION_ID | bigint(20) | NO | 会话 ID | -| NEED_WAIT | tinyint(4) | NO | 是否需要等锁 | -| RECV_TS | bigint(20) | NO | 收到请求时间戳 | -| LOCK_TS | bigint(20) | NO | 最近一次上锁的时间戳 | -| ABS_TIMEOUT | bigint(20) | NO | 请求超时时刻 | -| TRY_LOCK_TIMES | bigint(20) | NO | 尝试上锁的次数 | -| TIME_AFTER_RECV | bigint(20) | NO | 收到请求到当前的时间间隔 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/3.gv-session_event.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/3.gv-session_event.md deleted file mode 100644 index 87524b217..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/3.gv-session_event.md +++ /dev/null @@ -1,40 +0,0 @@ -gv$session_event -===================================== - - - -功能 ------------ - -gv$session_event 视图用于展示集群内所有 OBServer 的 Session 级别等待事件。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_session_event - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------------|-------------|----------------|----------------------| -| SID | bigint(20) | NO | Session 的 ID | -| CON_ID | bigint(20) | NO | 租户 ID | -| SVR_IP | varchar(32) | NO | IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口号 | -| EVENT_ID | bigint(20) | NO | 等待事件的 ID | -| EVENT | varchar(64) | NO | 等待事件的描述 | -| WAIT_CLASS_ID | bigint(20) | NO | 等待事件所属类型的 ID | -| WAIT_CLASS# | bigint(20) | NO | 等待事件所属类型的下标 | -| WAIT_CLASS | varchar(64) | NO | 等待事件所属类型的名称 | -| TOTAL_WAITS | bigint(20) | NO | 等待事件的总等待次数 | -| TOTAL_TIMEOUTS | bigint(20) | NO | 等待事件的总等待超时次数 | -| TIME_WAITED | double | NO | 等待事件的总等待时间,单位为百分之一秒 | -| MAX_WAIT | double | NO | 等待事件的最长等待时间,单位为百分之一秒 | -| AVERAGE_WAIT | double | NO | 等待事件的平均等待时间,单位为百分之一秒 | -| TIME_WAITED_MICRO | bigint(20) | NO | 等待事件的总等待时间(微秒) | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/30.gv-session_longops.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/30.gv-session_longops.md deleted file mode 100644 index afba60a39..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/30.gv-session_longops.md +++ /dev/null @@ -1,34 +0,0 @@ -gv$session_longops -======================================= - - - -功能 ------------ - -展示集群索引构建的进度。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_long_ops_status - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------|---------------|----------------|-----------| -| SID | bigint(20) | NO | 会话 ID | -| OPNAME | varchar(128) | NO | 操作名称 | -| TARGET | varchar(128) | NO | 操作对象 | -| SVR_IP | varchar(32) | NO | 操作所在机器 IP | -| SVR_PORT | bigint(20) | NO | 操作所在机器端口号 | -| START_TIME | bigint(20) | NO | 开始时间 | -| ELAPSED_SECONDS | decimal(24,4) | NO | 已经消耗时间 | -| TIME_REMAINING | bigint(20) | NO | 预估剩余需要时间 | -| LAST_UPDATE_TIME | bigint(20) | NO | 统计信息更新时间 | -| MESSAGE | varchar(500) | NO | 备注信息 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/31.gv-tenant_memstore_allocator_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/31.gv-tenant_memstore_allocator_info.md deleted file mode 100644 index 4f3474677..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/31.gv-tenant_memstore_allocator_info.md +++ /dev/null @@ -1,29 +0,0 @@ -gv$tenant_memstore_allocator_info -====================================================== - - - -功能 ------------ - -该视图展示了所连接 OBServer 上的 Memtable 的若干信息,主要用于排查租户 Memstore 内存长时间未释放的问题。每行记录对应单个 Memtable 的信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------------|-------------|----------------|-------------------------------------------| -| SVR_IP | varchar(32) | NO | OBServer 的 IP 地址 | -| SVR_PORT | bigint(20) | NO | OBServer 的端口 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| TABLE_ID | bigint(20) | NO | 表 ID | -| PARTITION_ID | bigint(20) | NO | 分区 ID | -| MT_BASE_VERSION | bigint(20) | NO | 该 Memtable 对应的起始事务版本 | -| RETIRE_CLOCK | bigint(20) | NO | 该 Memtable 所属的租户当前 Memstore 已分配内存总量 | -| MT_IS_FROZEN | bigint(20) | NO | 该 Memtable 是否已经冻结 | -| MT_PROTECTION_CLOCK | bigint(20) | NO | 该 Memtable 第一次分配内存时,所属租户 Memstore 已分配内存量。 | -| MT_SNAPSHOT_VERSION | bigint(20) | NO | 该 Memtable 的快照版本 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/32.gv-minor_merge_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/32.gv-minor_merge_info.md deleted file mode 100644 index 5829c9491..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/32.gv-minor_merge_info.md +++ /dev/null @@ -1,25 +0,0 @@ -gv$minor_merge_info -======================================== - - - -功能 ------------ - -展示集群内部每个 Server 中不同租户级的转储起始时间 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------|--------------|----------------|-----------| -| SVR_IP | varchar(32) | NO | 服务器 IP 地址 | -| SVR_PORT | bigint(20) | NO | 服务器端口号 | -| TENANT_ID | varchar(256) | NO | 租户 ID | -| FREEZE_SNAPSHOT | longtext | NO | 转储冻结时间戳 | -| START_TIME | timestamp(6) | NO | 转储开始时间 | -| FINISH_TIME | timestamp(6) | NO | 转储结束时间 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/33.gv-tenant_px_worker_stat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/33.gv-tenant_px_worker_stat.md deleted file mode 100644 index 7c4406c3b..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/33.gv-tenant_px_worker_stat.md +++ /dev/null @@ -1,30 +0,0 @@ -gv$tenant_px_worker_stat -============================================= - - - -功能 ------------ - -在并行执行场景中,查看每个线程的执行信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------|--------------|----------------|--------------------| -| session_id | bigint(20) | NO | Session 的 ID | -| tenant_id | bigint(20) | NO | 租户 ID | -| svr_ip | varchar(32) | NO | OBServer 的机器 IP | -| svr_port | bigint(20) | NO | OBServe 机器 IP 下的端口 | -| trace_id | varchar(128) | NO | SQL 的 trace_id | -| qc_id | bigint(20) | NO | px 中的 qc_id | -| sqc_id | bigint(20) | NO | px 中的 sqc_id | -| worker_id | bigint(20) | NO | 线程 ID | -| dfo_id | bigint(20) | NO | px 中的 dfo_id | -| start_time | timestamp(6) | NO | 线程开始运行的时间 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/34.gv-partition_audit.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/34.gv-partition_audit.md deleted file mode 100644 index 37024c183..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/34.gv-partition_audit.md +++ /dev/null @@ -1,44 +0,0 @@ -gv$partition_audit -======================================= - - - -功能 ------------ - -提供分区级别的统计信息,用于分区的性能统计。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------------------|-------------|----------------|-------------------------------| -| svr_ip | varchar(32) | NO | 服务器 IP。 | -| svr_port | bigint(20) | NO | 服务器端口。 | -| tenant_id | bigint(20) | NO | 租户 ID。 | -| table_id | bigint(20) | NO | 表 ID。 | -| partition_id | bigint(20) | NO | 分区 ID。 | -| partition_status | bigint(20) | NO | 分区状态。 | -| base_row_count | bigint(20) | NO | 基线数据行数,暂不可用。 | -| insert_row_count | bigint(20) | NO | 在表或分区上插入的行数。 | -| delete_row_count | bigint(20) | NO | 在表或分区上删除的行数。 | -| update_row_count | bigint(20) | NO | 在表或分区上更新的行数。 | -| query_row_count | bigint(20) | NO | 在表或分区上查询的行数,暂不可用。 | -| insert_sql_count | bigint(20) | NO | 在表或分区上执行的 SQL 插入操作的次数。 | -| delete_sql_count | bigint(20) | NO | 在表或分区上执行的 SQL 删除操作的次数。 | -| update_sql_count | bigint(20) | NO | 在表或分区上执行的 SQL 更新操作的次数。 | -| query_sql_count | bigint(20) | NO | 在表或分区上执行的 SQL 查询操作的次数,暂不可用。 | -| trans_count | bigint(20) | NO | 在表或分区上执行的事务操作的次数。 | -| sql_count | bigint(20) | NO | 在表或分区上执行的所有 SQL 操作的次数。 | -| rollback_insert_row_count | bigint(20) | NO | 在表或分区上执行的插入回滚的行数,暂不可用。 | -| rollback_delete_row_count | bigint(20) | NO | 在表或分区上执行的删除回滚的行数,暂不可用。 | -| rollback_update_row_count | bigint(20) | NO | 在表或分区上执行的更新回滚的行数,暂不可用。 | -| rollback_insert_sql_count | bigint(20) | NO | 在表或分区上执行的回滚 SQL 插入操作的次数,暂不可用。 | -| rollback_delete_sql_count | bigint(20) | NO | 在表或分区上执行的回滚 SQL 删除操作的次数,暂不可用。 | -| rollback_update_sql_count | bigint(20) | NO | 在表或分区上执行的回滚 SQL 更新操作的次数,暂不可用。 | -| rollback_trans_count | bigint(20) | NO | 在表或分区上执行的回滚事务操作的次数,暂不可用。 | -| rollback_sql_count | bigint(20) | NO | 在表或分区上执行的所有回滚 SQL 操作的次数,暂不可用。 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/35.gv-ps_stat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/35.gv-ps_stat.md deleted file mode 100644 index 430c81889..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/35.gv-ps_stat.md +++ /dev/null @@ -1,26 +0,0 @@ -gv$ps_stat -=============================== - - - -功能 ------------ - -监控 PS Cache 的整体状态,包括命中率、内存占用、缓存的 item 数目。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------|-------------|----------------|---------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| svr_ip | varchar(32) | NO | 机器 IP | -| svr_port | bigint(20) | NO | 机器端口号 | -| stmt_count | bigint(20) | NO | PS Cache 中目前缓存了多少语句 | -| hit_count | bigint(20) | NO | PS Cache 总的命中次数 | -| access_count | bigint(20) | NO | 访问 PS Cache 的总次数 | -| mem_hold | bigint(20) | NO | PS Cache 占用了多少内存 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/36.gv-ps_item_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/36.gv-ps_item_info.md deleted file mode 100644 index 2ac25d5b9..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/36.gv-ps_item_info.md +++ /dev/null @@ -1,32 +0,0 @@ -gv$ps_item_info -==================================== - - - -功能 ------------ - -用于给 prepared statement 提供监控功能,包含 PS Cache 中所有 prepare statement 的基本信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------------|----------------|----------------|----------------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| svr_ip | varchar(32) | NO | 机器 IP | -| svr_port | bigint(20) | NO | 机器端口号 | -| stmt_id | bigint(20) | NO | PS Cache 中对应语句的 stmt_id 信息 | -| db_id | bigint(20) | NO | prepare 语句涉及到的数据库 ID | -| ps_sql | varchar(65536) | NO | prepare 的 SQL 信息 | -| param_count | bigint(20) | NO | prepare 的参数个数信息 | -| stmt_item_ref_count | bigint(20) | NO | stmt_item 的引用计数信息 | -| stmt_info_ref_count | bigint(20) | NO | stmt_info 的引用计数信息 | -| mem_hold | bigint(20) | NO | 该 prepare stmt 占用的内存大小 | -| stmt_type | bigint(20) | NO | 该 prepare stmt 的类型信息 | -| checksum | bigint(20) | NO | 该 prepare stmt 的 checksum | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/37.gv-sql_workarea.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/37.gv-sql_workarea.md deleted file mode 100644 index 945eeb2a4..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/37.gv-sql_workarea.md +++ /dev/null @@ -1,41 +0,0 @@ -gv$sql_workarea -==================================== - - - -功能 ------------ - -之前受 SQL 自动内存管理负责执行的所有 Operator 的 workarea 统计信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------------|--------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------| -| address | varbinary(8) | NO | SQL 对应的 Handle 地址,目前未指定值 | -| hash_value | bigint(0) | NO | 语句的 Hash Value 的值 | -| sql_id | varchar(32) | NO | SQL 语句的 SQL 唯一标示 | -| child_number | bigint(0) | NO | 该 cursor 的数量 | -| workarea_address | varbinary(8) | NO | workarea 地址 | -| operation_type | varchar(40) | NO | workarea 操作符类型,例如 Sort、Hash Join、Group by 等 | -| operation_id | bigint(20) | NO | 计划树中识别操作符的唯一标示 | -| policy | varchar(10) | NO | workarea 的策略: * MANUAL * AUTO | -| estimated_optimal_size | bigint(20) | NO | 在最优情况下执行操作符的估算内存大小,单位:bytes | -| estimated_onepass_size | bigint(20) | NO | 在 one pass 场景下,执行操作符估算内存大小,单位:bytes | -| last_memory_used | bigint(20) | NO | 游标在上次执行使用的内存大小,单位:bytes | -| last_execution | varchar(10) | NO | 上次执行时 workarea 选择的是 optimal、one pass 还是 multi passes | -| last_degree | bigint(20) | NO | 上次执行并行度 | -| total_executions | bigint(20) | NO | 总共执行使用 workarea 的次数 | -| optimal_executions | bigint(20) | NO | 最优场景下执行的次数 | -| onepass_executions | bigint(20) | NO | One Pass 场景执行的次数 | -| multipasses_executions | bigint(20) | NO | Multi Passes 场景执行的次数 | -| active_time | bigint(20) | NO | workarea 活跃时的平均时间,单位:s | -| max_tempseg_size | bigint(20) | NO | workarea 使用时最大的临时磁盘空间,单位:bytes;如果是 NULL,则表示未使用临时空间 | -| last_tempseg_size | bigint(20) | NO | workarea 上次执行时使用的临时磁盘空间;如果是 NULL,表示未使用临时空间 | -| con_id | bigint(20) | NO | 租户 ID | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/38.gv-sql_workarea_histogram.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/38.gv-sql_workarea_histogram.md deleted file mode 100644 index dedc6f1a0..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/38.gv-sql_workarea_histogram.md +++ /dev/null @@ -1,27 +0,0 @@ -gv$sql_workarea_histogram -============================================== - - - -功能 ------------ - -展示之前所有 workarea执行的统计信息,如在区间 1 M~2 M 之间全 in-memory 处理的次数、one-pass 次数等。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------------|------------|----------------|------------------------------------------| -| low_optimal_size | bigint(20) | NO | workarea 在 optimal 模式下的最低内存量 | -| high_optimal_size | bigint(20) | NO | workarea 在 optimal 模式下的最高内存量 | -| optimal_executions | bigint(20) | NO | workarea 在最低和最高区间的最优模式下执行的次数 | -| onepass_executions | bigint(20) | NO | workarea 在最低和最高区间的 one pass 模式下执行的次数 | -| multipasses_executions | bigint(20) | NO | workarea 在最低和最高区间的 multi passes 模式下执行的次数 | -| total_executions | bigint(20) | NO | workarea 总共执行的次数 | -| con_id | bigint(20) | NO | 租户 ID | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/39.gv-ob_sql_workarea_memory_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/39.gv-ob_sql_workarea_memory_info.md deleted file mode 100644 index 81dffae7d..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/39.gv-ob_sql_workarea_memory_info.md +++ /dev/null @@ -1,27 +0,0 @@ -gv$ob_sql_workarea_memory_info -=================================================== - - - -功能 ------------ - -用于查询 SQL workarea 总体的一些信息,如最大可用内存、当前使用内存、当前 hold 内存等。通过该视图可以知道当前租户下,workarea 的使用情况,包括内存利用率等。 - -**字段说明** - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------------|------------|----------------|------------------------------------------------------------------------------------------------------------------------| -| max_workarea_size | bigint(20) | NO | 最大 workarea 内存,由参数决定可以使用多少内存 | -| workarea_hold_size | bigint(20) | NO | workarea 当前 hold 内存大小。 **说明** 由于具体的使用量无法从内存管理模块获取到,故只能获取 hold 值。 | -| max_auto_workarea_size | bigint(20) | NO | auto 时,预计最大可用内存大小可以简单认为最大可用内存会根据公式`max_work_area_size - hold + total_mem_used` 进行计算得到,表示当前 workarea 情况下,auto 管理的最大内存大小 | -| mem_target | bigint(20) | NO | 当前 workarea 可用内存的目标大小。与 max_auto_work_area 的区别在于该值是 max_auto_work_area 值的一定比例 | -| total_mem_used | bigint(20) | NO | 当前 auto 内存使用大小,这里是由 SQL 自动内存管理模块统计的大小,不是真正使用大小 | -| global_mem_bound | bigint(20) | NO | auto 模式下,全局最大可用内存大小 | -| drift_size | bigint(20) | NO | 当前需求内存变化大小,主要用来当波动一定范围,会自动触发重新计算 global bound size | -| workarea_count | bigint(20) | NO | 注册的 operator profile 个数 | -| manual_calc_count | bigint(20) | NO | 非定时触发的计算 global bound size 次数 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/4.gv-session_wait.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/4.gv-session_wait.md deleted file mode 100644 index 4903ad9e1..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/4.gv-session_wait.md +++ /dev/null @@ -1,42 +0,0 @@ -gv$session_wait -==================================== - - - -功能 ------------ - -该视图用于展示所有服务器上所有 Session 的当前或者上一次等待事件的一些信息,包括等待事件名称、等待耗时等。 - -相关表/视图 ---------------- - -__all_virtual_session_event - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------------------|---------------------|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| SID | bigint(20) | NO | Session ID | -| CON_ID | bigint(20) | NO | 租户 ID | -| SVR_IP | varchar(32) | NO | 服务器的 IP | -| SVR_PORT | bigint(20) | NO | 服务器端口 | -| EVENT | varchar(64) | NO | 等待事件名称 | -| P1TEXT | varchar(64) | NO | 等待事件的第一个参数的描述 | -| P1 | bigint(20) unsigned | NO | 等待事件的第一个参数的值 | -| P2TEXT | varchar(64) | NO | 等待事件的第二个参数的描述 | -| P2 | bigint(20) unsigned | NO | 等待事件的第二个参数的值 | -| P3TEXT | varchar(64) | NO | 等待事件的第三个参数的描述 | -| P3 | bigint(20) unsigned | NO | 等待事件的第三个参数的值 | -| WAIT_CLASS_ID | bigint(20) | NO | 等待事件的类别 ID | -| WAIT_CLASS# | bigint(20) | NOT NULL | 等待事件的类别序号 | -| WAIT_CLASS | varchar(64) | NO | 等待事件的类别名称 | -| STATE | varchar(19) | NO | 当前等待事件的状态,包含四种状态: * Waiting:Session 正等待这个事件。 * Waited unknown time:由于设置了 timed_statistics 值为 false,导致不能得到时间信息。表示发生了等待,但时间很短。 * Wait short time:表示发生了等待,但由于时间非常短不超过一个时间单位,所以没有记录。 * Waited knnow time:如果 Session 等待然后得到了所需资源,那么将从 waiting 进入本状态。 | -| WAIT_TIME_MICRO | bigint(20) | NO | 等待时间,单位为微秒。如果当前正在等待,表示已经等待的时长;如果当前没有等待,表示最后一次等待的总等待时长。 | -| TIME_REMAINING_MICRO | bigint(20) | NO | * 值\> 0:最后一次等待时间(单位:毫秒),当前未在等待状态。 * 值为 0:Session 正在等待当前的事件。 * 值为 -1:最后一次等待时间小于 1 个统计单位,当前未在等待状态。 * 值为 -2:时间统计状态未置为可用,当前未在等待状态。 | -| TIME_SINCE_LAST_WAIT_MICRO | bigint(20) | NO | 上一次等待结束到现在的时间,单位为毫秒,如果当前正在等待,其值为 0。 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/40.gv-server_schema_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/40.gv-server_schema_info.md deleted file mode 100644 index d00b3e95c..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/40.gv-server_schema_info.md +++ /dev/null @@ -1,28 +0,0 @@ -gv$server_schema_info -========================================== - - - -功能 ------------ - -展示所有 Server 上的 Schema 信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------------------|-------------|----------------|---------------------------------| -| SVR_IP | varchar(32) | NO | Server 的 IP 地址 | -| SVR_PORT | int | NO | Server 的端口号 | -| TENANT_ID | int | NO | 租户 ID | -| REFRESHED_SCHEMA_VERSION | int | NO | 租户已刷新的 Schema 版本 | -| RECEIVED_SCHEMA_VERSION | int | NO | 租户应该要刷新的 Schema 版本 | -| SCHEMA_COUNT | int | NO | 租户的 Schema 数量 | -| SCHEMA_SIZE | int | NO | 租户的 Schema 大小 | -| MIN_SSTABLE_SCHEMA_VERSION | int | NO | 租户 Sstable 上记录的最小schema_version | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/41.gv-merge_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/41.gv-merge_info.md deleted file mode 100644 index 60e0ba05f..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/41.gv-merge_info.md +++ /dev/null @@ -1,33 +0,0 @@ -gv$merge_info -================================== - - - -功能 ------------ - -展示 OceanBase 集群已经完成的合并或转储相关的统计信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------------|---------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| svr_ip | varchar(32) | NO | 服务器 IP 地址 | -| svr_port | bigint(20) | NO | 服务器端口号 | -| tenant_id | bigint(20) | NO | 租户 ID | -| table_id | bigint(20) | NO | 表 ID | -| partition_id | bigint(20) | NO | 分区 ID | -| type | varchar(5) | NO | 合并或转储类型: * minor * major | -| action | varchar(64) | NO | 合并或转储具体动作: * mini * mini minor * buffer minor * minor | -| version | varchar(64) | NO | 合并或转储版本号 | -| start_time | timestamp(6) | NO | 合并或转储开始时间 | -| end_time | timestamp | NO | 合并或转储结束时间 | -| macro_block_count | bigint(20) | NO | 合并或转储宏块总数 | -| reuse_pct | decimal(26,2) | NO | 合并或转储宏块重用率 | -| parallel_degree | bigint(20) | NO | 合并或转储并行度 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/42.gv-lock.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/42.gv-lock.md deleted file mode 100644 index f4276e2f3..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/42.gv-lock.md +++ /dev/null @@ -1,31 +0,0 @@ -gv$lock -============================ - - - -功能 ------------ - -展示 OceanBase 数据库的行锁信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------|---------------------|----------------|-------------------| -| SVR_IP | varchar(32) | NO | 服务器 IP | -| SVR_PORT | bigint(20) | NO | 服务器端口号 | -| TABLE_ID | bigint(20) | NO | 表 ID | -| ADDR | varchar(512) | NO | 被锁对象的地址 | -| KADDR | bigint(20) unsigned | NO | 锁地址 | -| SID | bigint(20) | NO | 会话持有的 ID | -| TYPE | bigint(20) | NO | 0(行锁) | -| LMODE | bigint(20) | NO | 0(写锁) | -| REQUEST | bigint(0) | YES | NULL | -| CTIME | bigint(21) | NO | 加锁耗时 | -| BLOCK | bigint(20) | NO | 最早被阻塞的 session_id | -| CON_ID | bigint(20) unsigned | NO | 租户ID | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/43.gv-sstable.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/43.gv-sstable.md deleted file mode 100644 index fc020d362..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/43.gv-sstable.md +++ /dev/null @@ -1,43 +0,0 @@ -gv$sstable -=============================== - - - -功能 ------------------------ - -gv$sstable 视图用于展示租户的 SSTable 信息。 - -字段说明 -------------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|--------------------------------|---------------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| SVR_IP | varchar(46) | NO | 服务器的 IP 地址 | -| SVR_PORT | bigint(20) | NO | 服务器的端口号 | -| TABLE_TYPE | bigint(20) | NO | 表的类型 | -| TABLE_ID | bigint(20) | NO | 表 ID | -| TABLE_NAME | varchar(256) | NO | 表名 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| PARTITION_ID | bigint(20) | NO | 分区 ID | -| INDEX_ID | bigint(20) | NO | 主表或索引表的 ID | -| BASE_VERSION | bigint(20) | NO | 该表中存储数据的 `trans_version` 范围的最小值 | -| MULTI_VERSION_START | bigint(20) | NO | 该表中多版本数据的起始 `trans_version` | -| SNAPSHOT_VERSION | bigint(20) | NO | 该表中存储数据的 `trans_version` 范围的最大值 | -| START_LOG_TS | bigint(20) unsigned | NO | 该表中数据的日志时间戳范围的左边界 | -| END_LOG_TS | bigint(20) unsigned | NO | 该表中数据的日志时间戳范围的右边界 | -| MAX_LOG_TS | bigint(20) unsigned | NO | 该表中数据的日志时间戳范围的最大值 | -| VERSION | bigint(20) | NO | 该表的版本 | -| LOGICAL_DATA_VERSION | bigint(20) | NO | 该表的逻辑数据版本 | -| SIZE | bigint(20) | NO | 该表的大小 | -| IS_ACTIVE | bigint(20) | NO | 该表是否处于活跃状态 | -| REF | bigint(20) | NO | 该表引用的计数 | -| WRITE_REF | bigint(20) | NO | 该表写引用的计数 | -| TRX_COUNT | bigint(20) | NO | 该表上活跃事务的数量 | -| PENDING_LOG_PERSISTING_ROW_CNT | bigint(20) | NO | 持久化 Redo Log 的回收数量 | -| UPPER_TRANS_VERSION | bigint(20) | NO | 该表中存储数据的 `trans_version` 的上限 | -| CONTAIN_UNCOMMITTED_ROW | tinyint(4) | NO | 该表中是否包含未提交的事务行: * 0:表示该表中不包含未提交的事务行 * 1:表示该表中包含未提交的事务行 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/44.gv-ob_trans_table_status.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/44.gv-ob_trans_table_status.md deleted file mode 100644 index 39aefd87a..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/44.gv-ob_trans_table_status.md +++ /dev/null @@ -1,28 +0,0 @@ -gv$ob_trans_table_status -============================================= - - - -功能 ------------------------ - -从 OceanBase 数据库 V3.0.0 版本开始,系统开始支持转储未提交的事务,而未提交事务中的数据可能会转储到 SSTable 中,故将这些未提交的事务称为脏事务,一般比较大的事务容易成为脏事务。 - -`gv$ob_trans_table_status` 视图用于展示每次冻结后产生的脏事务的详细信息。 - -字段说明 -------------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|--------------|-------------|------------|---------------| -| SVR_IP | varchar(46) | NO | 对应服务器的 IP 地址 | -| SVR_PORT | bigint(20) | NO | 对应服务器的端口号 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| TABLE_ID | bigint(20) | NO | 表 ID | -| PARTITION_ID | bigint(20) | NO | 分区 ID | -| END_LOG_ID | bigint(20) | NO | 已持久化的事务日志的 ID | -| TRANS_CNT | bigint(20) | NO | 脏事务的数量 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/45.v-statname.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/45.v-statname.md deleted file mode 100644 index 2135e7201..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/45.v-statname.md +++ /dev/null @@ -1,30 +0,0 @@ -v$statname -=============================== - - - -功能 ------------ - -用于展示所有统计事件的相关定义。 - -相关表/视图 ---------------- - -__tenant_virtual_staname - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------|-------------|----------------|-------------| -| CON_ID | bigint(20) | NO | 租户的 ID | -| STAT_ID | bigint(20) | NO | 统计事件的 ID | -| STATISTICS# | bigint(20) | NO | 统计事件的下标 | -| NAME | varchar(64) | NO | 统计事件的名称 | -| DISPLAY_NAME | varchar(64) | NO | 统计事件的别名 | -| CLASS | bigint(20) | NO | 统计事件所属类型别名称 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/46.v-event_name.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/46.v-event_name.md deleted file mode 100644 index d32354091..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/46.v-event_name.md +++ /dev/null @@ -1,35 +0,0 @@ -v$event_name -================================= - - - -功能 ------------ - -当前 OBServer 上所有统计事件的相关定义。 - -相关表/视图 ---------------- - -__tenant_virtual_event_name - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------|-------------|----------------|--------------| -| CON_ID | bigint(20) | NO | 租户的 ID | -| EVENT_ID | bigint(20) | NO | 等待事件的 ID | -| EVENT# | bigint(20) | NO | 等待事件的下标 | -| NAME | varchar(64) | NO | 等待事件的名称 | -| DISPLAY_NAME | varchar(64) | NO | 等待事件的别名 | -| PARAMETER1 | varchar(64) | NO | 等待事件的参数 1 | -| PARAMETER2 | varchar(64) | NO | 等待事件的参数 2 | -| PARAMETER3 | varchar(64) | NO | 等待事件的参数 3 | -| WAIT_CLASS_ID | bigint(20) | NO | 等待事件所属类型的 ID | -| WAIT_CALSS# | bigint(20) | NO | 等待事件所属类型的下标 | -| WAIT_CLASS | varchar(64) | NO | 等待事件所属类型的名称 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/47.v-session_event.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/47.v-session_event.md deleted file mode 100644 index c924fcc4b..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/47.v-session_event.md +++ /dev/null @@ -1,37 +0,0 @@ -v$session_event -==================================== - - - -功能 ------------ - -统计每一个 Session 发生的等待事件。 - -相关表/视图 ---------------- - -gv$session_event - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------------|-------------|----------------|---------------------| -| SID | bigint(20) | NO | Session 的 ID | -| CON_ID | bigint(20) | NO | 租户的 ID | -| EVENT_ID | bigint(20) | NO | 等待事件的 ID | -| EVENT | varchar(64) | NO | 等待事件的描述 | -| WAIT_CLASS_ID | bigint(20) | NO | 等待事件所属类型的 ID | -| WAIT_CLASS# | bigint(20) | NO | 等待事件所属类型的下标 | -| WAIT_CLASS | varchar(64) | NO | 等待事件所属类型的名称 | -| TOTAL_WAITS | bigint(20) | NO | 等待事件的总等待次数 | -| TOTAL_TIMEOUTS | bigint(20) | NO | 等待事件的总等待超时次数 | -| TIME_WAITED | double | NO | 等待事件的总等待时间,单位 10ms | -| MAX_WAIT | double | NO | 等待事件的最长等待时间,单位 10ms | -| AVERAGE_WAIT | double | NO | 等待事件的平均等待时间,单位 10ms | -| TIME_WAITED_MICRO | bigint(20) | NO | 等待事件的总等待时间(微秒) | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/48.v-session_wait.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/48.v-session_wait.md deleted file mode 100644 index c574c023d..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/48.v-session_wait.md +++ /dev/null @@ -1,40 +0,0 @@ -v$session_wait -=================================== - - - -功能 ------------ - -每个 Session 当前等待事件明细,按照约定,每个等待事件会有三个参数,各自会记录对应的值。 - -相关表/视图 ---------------- - -gv$session_wait - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为空** | **描述** | -|----------------------------|---------------------|------------|------------------------| -| SID | bigint(20) | NO | Session 的 ID | -| CON_ID | bigint(20) | NO | 租户的 ID | -| EVENT | varchar(64) | NO | 等待事件的描述 | -| P1TEXT | varchar(64) | NO | 等待事件的参数 1 的名称 | -| P1 | bigint(20) unsigned | NO | 等待事件参数 1 的值 | -| P2TEXT | varchar(64) | NO | 等待事件的参数 2 的名称 | -| P2 | bigint(20) unsigned | NO | 等待事件参数 2 的值 | -| P3TEXT | varchar(64) | NO | 等待事件的参数 3 的名称 | -| P3 | bigint(20) unsigned | NO | 等待事件参数 3 的值 | -| WAIT_CLASS_ID | bigint(20) | NO | 等待事件所属类型的 ID | -| WAIT_CLASS# | bigint(20) | NO | 等待事件所属类型的下标 | -| WAIT_CLASS | varchar(64) | NO | 等待事件所属类型的名称 | -| STATE | varchar(19) | NO | 该等待事件的状态 | -| WAIT_TIME_MICRO | bigint(20) | NO | 该等待事件等待时间(微秒) | -| TIME_REMAINING_MICRO | bigint(20) | NO | 该等待事件统计该事件点距离超时的时间(微秒) | -| TIME_SINCE_LAST_WAIT_MICRO | bigint(20) | NO | 该等待事件距离上次等待的时间(微秒) | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/49.v-session_wait_history.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/49.v-session_wait_history.md deleted file mode 100644 index 5f5223496..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/49.v-session_wait_history.md +++ /dev/null @@ -1,39 +0,0 @@ -v$session_wait_history -=========================================== - - - -功能 ------------ - -每个 Session 当前等待事件明细,最近 10 次等待事件。 - -相关表/视图 ---------------- - -gv$session_wait_history - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------------------|---------------------|----------------|--------------------| -| SID | bigint(20) | NO | Session ID | -| CON_ID | bigint(20) | NO | 租户 ID | -| SEQ# | bigint(20) | NO | 等待事件序列号 | -| EVENT# | bigint(20) | NO | 等待事件编号 | -| EVENT | varchar(64) | NO | 等待事件的描述 | -| P1TEXT | varchar(64) | NO | 等待事件的参数 1 的名称 | -| P1 | bigint(20) unsigned | NO | 等待事件参数 1 的值 | -| P2TEXT | varchar(64) | NO | 等待事件的参数 2 的名称 | -| P2 | bigint(20) unsigned | NO | 等待事件参数 2 的值 | -| P3TEXT | varchar(64) | NO | 等待事件的参数 3 的名称 | -| P3 | bigint(20) unsigned | NO | 等待事件参数 3 的值 | -| WAIT_TIME_MICRO | bigint(20) | NO | 该等待事件等待时间(微秒) | -| TIME_SINCE_LAST_WAIT_MICRO | bigint(20) | NO | 该等待事件距离上次等待的时间(微秒) | -| WAIT_TIME | double | NO | 等待事件的等待时间,单位为百分之一秒 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/5.gv-session_wait_history.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/5.gv-session_wait_history.md deleted file mode 100644 index e6e321dc6..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/5.gv-session_wait_history.md +++ /dev/null @@ -1,41 +0,0 @@ -gv$session_wait_history -============================================ - - - -功能 ------------ - -gv$session_wait_history 视图用于展示所有服务器上所有 Session 的最近 10 次等待事件的信息。 - -相关表/视图 ---------------- - -__all_virtual_session_wait_history - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------------------|---------------------|----------------|-------------------------| -| SID | bigint(20) | NO | Session ID。 | -| CON_ID | bigint(20) | NO | 租户 ID。 | -| SVR_IP | varchar(32) | NO | 服务器的 IP 地址。 | -| SVR_PORT | bigint(20) | NO | 服务器端口。 | -| SEQ# | varchar(64) | NO | 等待事件序列号。 | -| EVENT# | varchar(64) | NO | 等待事件编号。 | -| EVENT | varchar(64) | NO | 等待事件名称。 | -| P1TEXT | varchar(64) | NO | 等待事件的参数 1 的描述。 | -| P1 | bigint(20) unsigned | NO | 等待事件的参数 1 的值。 | -| P2TEXT | varchar(64) | NO | 等待事件的参数 2 的描述。 | -| P2 | bigint(20) unsigned | NO | 等待事件的参数 2 的值。 | -| P3TEXT | varchar(64) | NO | 等待事件的参数 3 的描述。 | -| P3 | bigint(20) unsigned | NO | 等待事件的参数 3 的值。 | -| WAIT_TIME_MICRO | bigint(20) | NO | 等待事件的等待时间,单位为微秒。 | -| TIME_SINCE_LAST_WAIT_MICRO | bigint(20) | NO | 自上一次等待结束到当前等待的时间,单位为微秒。 | -| WAIT_TIME | double | NO | 等待事件的等待时间,单位为百分之一秒。 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/50.v-sesstat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/50.v-sesstat.md deleted file mode 100644 index 6e1713816..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/50.v-sesstat.md +++ /dev/null @@ -1,28 +0,0 @@ -v$sesstat -============================== - - - -功能 ------------ - -展示 Session 级别的统计事件概况。 - -相关表/视图 ---------------- - -gv$sesstat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------|------------|----------------|----------------| -| SID | bigint(20) | NO | 该 Session 的 ID | -| CON_ID | bigint(20) | NO | 租户的 ID | -| STATISTICS# | bigint(20) | NO | 统计事件的下标 | -| VALUE | bigint(20) | NO | 统计事件发生的次数 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/51.v-sysstat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/51.v-sysstat.md deleted file mode 100644 index 845e57934..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/51.v-sysstat.md +++ /dev/null @@ -1,30 +0,0 @@ -v$sysstat -============================== - - - -功能 ------------ - -租户级别的统计事件概况。 - -相关表/视图 ---------------- - -gv$sysstat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------|-------------|----------------|-------------| -| CON_ID | bigint(20) | NO | 租户的 ID | -| STATISTICS# | bigint(20) | NO | 统计事件的下标 | -| VALUE | bigint(20) | NO | 统计事件对应的结果数值 | -| STAT_ID | bigint(20) | NO | 统计事件的 ID | -| NAME | varchar(64) | NO | 统计事件的名称 | -| CLASS | bigint(20) | NO | 统计事件所属的类型 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/52.v-system_event.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/52.v-system_event.md deleted file mode 100644 index ba0d06496..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/52.v-system_event.md +++ /dev/null @@ -1,35 +0,0 @@ -v$system_event -=================================== - - - -功能 ------------ - -租户级别的等待事件统计。 - -相关表/视图 ---------------- - -gv$system_event - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------|-------------|----------------|----------------------| -| CON_ID | bigint(20) | NO | 租户的 ID | -| EVENT_ID | bigint(20) | NO | 等待事件的 ID | -| EVENT | varchar(64) | NO | 等待事件的描述 | -| WAIT_CLASS_ID | bigint(20) | NO | 等待事件的所属 Class ID | -| WAIT_CLASS | bigint(20) | NO | 等待事件的所属的 Class 下标 | -| WAIT_CLASS | varchar(64) | NO | 等待事件所属的 Class | -| TOTAL_WAITS | bigint(20) | NO | 该等待事件的总等待次数 | -| TOTAL_TIMEOUTS | bigint(20) | NO | 该等待事件的总超时次数 | -| TOTAL_WAITED | double | NO | 该等待事件的总等待时间,单位:10ms | -| AVERAGE_WAIT | double | NO | 该等待事件的平均等待事件,单位:10ms | -| TOTAL_WAITED_MICRO | bigint(20) | NO | 该等待事件的总等待时间(微秒) | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/53.v-memory.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/53.v-memory.md deleted file mode 100644 index bc9f02cbe..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/53.v-memory.md +++ /dev/null @@ -1,30 +0,0 @@ -v$memory -============================= - - - -功能 ------------ - -v$memory 视图用于展示租户级别的内存统计信息。 - -相关表/视图 ---------------- - -gv$memory - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为空** | **描述** | -|-------------|---------------|------------|--------------------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| CONTEXT | varchar(256) | NO | 内存所属 Mod 的名称 | -| COUNT | decimal(20,0) | NO | 内存分配与释放的差值,即当前该 Mod 使用中的内存单元个数 | -| USED | decimal(20,0) | NO | 该 Mod 当前使用的内存数值,单位:Byte | -| ALLOC_COUNT | decimal(20,0) | NO | 该 Mod 申请的内存总个数 | -| FREE_COUNT | decimal(20,0) | NO | 该 Mod 释放的内存总个数 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/54.v-memstore.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/54.v-memstore.md deleted file mode 100644 index 47bc6043c..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/54.v-memstore.md +++ /dev/null @@ -1,30 +0,0 @@ -v$memstore -=============================== - - - -功能 ------------ - -租户级别的 Memstore 统计信息。 - -相关表/视图 ---------------- - -gv$memstore - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|------------|----------------|----------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| ACTIVE | bigint(20) | NO | 当前租户活跃的 Memstore | -| TOTAL | bigint(20) | NO | 当前租户 Memstore 总和 | -| FREEZE_TRIGGER | bigint(20) | NO | 触发 major freeze 的值大小 | -| MEM_LIMIT | bigint(20) | NO | 租户总的内存上限大小 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/55.v-memstore_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/55.v-memstore_info.md deleted file mode 100644 index 24241c58c..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/55.v-memstore_info.md +++ /dev/null @@ -1,37 +0,0 @@ -v$memstore_info -==================================== - - - -功能 ------------ - -该视图用于展示所有服务器上所有租户的所有分区的 Memtable 的一些明细信息。 - -相关表/视图 ---------------- - -gv$memstore_info - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------------|--------------|----------------|----------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| IP | varchar(32) | NO | 服务器的 IP | -| PORT | bigint(20) | NO | 服务器端口 | -| TABLE_ID | bigint(20) | NO | 表 ID | -| PARTITION_ID | bigint(20) | NO | 分区 ID | -| VERSION | varchar(128) | NO | 冻结版本号 | -| BASE_VERSION | bigint(20) | NO | 数据的快照版本号的左边界 | -| MULTI_VERSION_START | bigint(20) | NO | 最小的老版本数据的快照版本号 | -| SNAPSHOT_VERSION | bigint(20) | NO | 数据的快照版本号的右边界 | -| IS_ACTIVE | bigint(20) | NO | 是否是活跃的 | -| USED | bigint(20) | NO | 使用的内存大小,单位为字节 | -| HASH_ITEMS | bigint(20) | NO | Hash 索引中记录的行数 | -| BTREE_ITEMS | bigint(20) | NO | Btree 索引中记录的行数 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/56.v-plan_cache_stat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/56.v-plan_cache_stat.md deleted file mode 100644 index 8df07cef0..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/56.v-plan_cache_stat.md +++ /dev/null @@ -1,38 +0,0 @@ -v$plan_cache_stat -====================================== - - - -功能 ------------ - -该视图记录当前租户在所有 Server 上的每个计划缓存整体的状态。 - -相关表/视图 ---------------- - -gv$plan_cache_stat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------|-------------|----------------|-----------------------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| svr_ip | varchar(32) | NO | IP 地址 | -| svr_port | bigint(20) | NO | 端口号 | -| sql_num | bigint(20) | NO | plan_cache 涉及的 SQL 条数 | -| mem_used | bigint(20) | NO | plan_cache 已经使用的内存 | -| mem_hold | bigint(20) | NO | plan_cache 持有的内存 | -| access_count | bigint(20) | NO | 进行 plan_cache 的次数 | -| hit_count | bigint(20) | NO | 命中 plan_cache 的次数 | -| hit_rate | bigint(20) | NO | plan_cache 的命中率 | -| plan_num | bigint(20) | NO | Plan 的个数 | -| mem_limit | bigint(20) | NO | plan_cache 的内存上限 | -| hash_bucket | bigint(20) | NO | plan_cache hash map 中的 Bucket 的个数 | -| stmtkey_num | bigint(20) | NO | plan_cache 中 stmt_key 的个数 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/57.v-plan_cache_plan_stat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/57.v-plan_cache_plan_stat.md deleted file mode 100644 index 46afeef66..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/57.v-plan_cache_plan_stat.md +++ /dev/null @@ -1,86 +0,0 @@ -v$plan_cache_plan_stat -=========================================== - - - -功能 ------------ - -v$plan_cache_plan_stat 视图记录了当前租户在当前 Server 上的计划缓存中缓存的每一个缓存对象的状态。 -**注意** - - - -该表不仅缓存了 SQL 计划对象,也缓存了 PL 对象(例如匿名块、PL Package 以及 PL Function),某些字段只在特定对象下有效。 - -相关表/视图 ---------------- - -gv$plan_cache_plan_stat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------------|---------------------|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| tenant_id | bigint(20) | NO | 租户 ID。 | -| svr_ip | varchar(32) | NO | 机器 IP。 | -| svr_port | bigint(20) | NO | 机器端口号。 | -| plan_id | bigint(20) | NO | 该计划的 ID。 | -| sql_id | varchar(32) | NO | 缓存对象对应的 SQL ID,如果是 PL 对象,该字段为 NULL。 | -| type | bigint(20) | NO | 对于 SQL 计划缓存,字段表示计划的类型: * 1:表示本地计划 * 2:表示远程计划 * 3:表示分配计划 对于 PL 对象缓存,字段表示 PL 对象的类型: * 1:表示程序 * 2:表示函数 * 3:表示包 * 4:表示匿名块 | -| is_bind_sensitive | bigint(20) | NO | 该计划是否需要打开 ACS。 | -| is_bind_aware | bigint(20) | NO | 该计划已经打开了 ACS。 | -| db_id | bigint(20) unsigned | NO | 数据库的 ID。 | -| statement | varchar(65536) | NO | 对于 SQL 计划,该字段为参数化后的 SQL 语句;对于匿名块对象,该字段为参数化后的匿名块语句;其他对象该字段无效。 | -| query_sql | varchar(65536) | NO | 对于 SQL 计划,该字段为参数化后的 SQL 语句;对于匿名块对象,该字段为参数化后的匿名块语句;其他对象该字段无效。 | -| special_params | varchar(4096) | NO | 表示不可参数化的参数值。 | -| param_infos | varchar(65536) | NO | 表示参数化信息。 | -| sys_vars | varchar(4096) | NO | 影响缓存对象的系统变量的值。 | -| plan_hash | bigint(20) | NO | SQL 计划的 Hash 值。 | -| first_load_time | timestamp(6) | NO | 第一次被加载时间。 | -| schema_version | bigint(20) | NO | Schema 版本号。 | -| merged_version | bigint(20) | NO | 当前缓存的计划对应的合并版本号。 | -| last_active_time | timestamp(6) | NO | 上一次被执行时间。 | -| avg_exe_usec | bigint(20) | NO | 平均执行时间。 | -| slowest_exe_time | timestamp(6) | NO | 最慢执行时间戳。 | -| slowest_exe_usec | bigint(20) | NO | 最慢一次执行耗时。 | -| slow_count | bigint(20) | NO | 当前 SQL 计划成为慢查询的次数。 | -| hit_count | bigint(20) | NO | 被命中次数。 | -| plan_size | bigint(20) | NO | 缓存对象占用的内存大小。 | -| executions | bigint(20) | NO | 执行次数。 | -| disk_reads | bigint(20) | NO | 所有执行物理读次数。 | -| direct_writes | bigint(20) | NO | 所有执行物理写次数。 | -| buffer_gets | bigint(20) | NO | 所有执行逻辑读次数。 | -| application_wait_time | bigint(20) unsigned | NO | 所有 Application 类事件的总时间。 | -| concurrency_wait_time | bigint(20) unsigned | NO | 所有 Concurrency 类事件的总时间。 | -| user_io_wait_time | bigint(20) unsigned | NO | 所有 user_io 类事件的总时间。 | -| rows_processed | bigint(20) | NO | 所有 Schedule 类事件的时间。 | -| elapsed_time | bigint(20) unsigned | NO | 所有执行接收到请求到执行结束所消耗的时间。 | -| cpu_time | bigint(20) unsigned | NO | 所有执行消耗的 CPU 时间。 | -| large_querys | bigint(20) | NO | 被判断为大查询的次数。 | -| delayed_large_querys | bigint(20) | NO | 被判断为大查询且被丢入大查询队列的次数。 | -| delayed_px_querys | bigint(20) | NO | 并行查询被丢回队列重试的次数。 | -| outline_version | bigint(20) | NO | Outline 版本号。 | -| outline_id | bigint(20) | NO | Outline 的 ID,为` -1` 表示不是通过绑定 Outline 生成的计划。 | -| outline_data | varchar(65536) | NO | 计划对应的 Outline 信息。 | -| acs_sel_info | varchar(65536) | NO | 当前 ACS 计划对应的选择率空间。 | -| table_scan | tinyint(4) | NO | 表示该查询是否为主键扫描。 | -| evolution | tinyint(4) | NO | 表示该执行计划是否在演进中。 | -| evo_executions | bigint(20) | NO | 演进次数。 | -| evo_cpu_time | bigint(20) unsigned | NO | 演进过程中总的执行 CPU 时间。 | -| timeout_count | bigint(20) | NO | 超时次数。 | -| ps_stmt_id | bigint(20) | NO | PreparedStatement ID。 | -| sessid | bigint(20) unsigned | NO | 缓存对象所在的 Session ID。 | -| temp_tables | varchar(65536) | NO | SQL 计划中包含的临时表表名,如果没有临时表,字段为空。 | -| is_use_jit | tinyint(4) | NO | SQL 计划是否开启了表达式编译执行。 | -| object_type | varchar(65536) | NO | 缓存对象的类型: * SQL_PLAN * PROCEDURE * FUNCTION * PACKAGE * ANONYMOUS | -| hints_info | varchar(65536) | NO | SQL 计划的 Hint 信息。 | -| hints_all_worked | tinyint(4) | NO | SQL 计划中的 Hint 是否都已经生效。 | -| pl_schema_id | bigint(20) unsigned | NO | 对于非匿名块的 PL 对象,字段为缓存对象的 Schema ID;对于匿名块,字段为 PreparedStatement ID;对于 SQL 计划,该字段无意义。 | -| is_batched_multi_stmt | tinyint(4) | NO | 表示是否为 Batched Multistmt 优化的计划。 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/58.v-plan_cache_plan_explain.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/58.v-plan_cache_plan_explain.md deleted file mode 100644 index 4fd58e6df..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/58.v-plan_cache_plan_explain.md +++ /dev/null @@ -1,40 +0,0 @@ -v$plan_cache_plan_explain -============================================== - - - -功能 ------------ - -该视图用于展示缓存在当前 Server 的计划缓存中的物理执行计划。 -**说明** - - - -该视图仅支持 Get 操作,查询时需要指定 `TENANT_ID`、`PLAN_ID` 字段。 - -相关表/视图 ---------------- - -gv$plan_cache_plan_explain - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------|---------------|----------------|------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| IP | varchar(32) | NO | IP 地址 | -| PORT | bigint(20) | NO | 端口号 | -| PLAN_ID | bigint(20) | NO | 计划的 ID | -| PLAN_DEPTH | bigint(20) | NO | Operator 在展示时的深度 | -| PLAN_LINE_ID | bigint(20) | NO | Operator 的编号 | -| OPERATOR | varchar(128) | NO | Operator 的名称 | -| NAME | varchar(256) | NO | 表的名称 | -| ROWS | bigint(20) | NO | 预估的结果行数 | -| COST | bigint(20) | NO | 预估的代价 | -| PROPERTY | varchar(4096) | NO | 对应 Operator 的信息 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/59.v-sql_audit.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/59.v-sql_audit.md deleted file mode 100644 index 7254ee033..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/59.v-sql_audit.md +++ /dev/null @@ -1,106 +0,0 @@ -v$sql_audit -================================ - - - -功能 ------------ - -该视图用于展示当前 Server 的每一次 SQL 请求的来源、执行状态等统计信息。该视图是按照租户拆分的,除了系统租户,其他租户不能跨租户查询。 - -相关表/视图 ---------------- - -gv$sql_audit - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------------------|---------------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| SVR_IP | varchar(32) | NO | IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口号 | -| REQUEST_ID | bigint(20) | NO | 请求的 ID 号 | -| TRACE_ID | varchar(128) | NO | 本次执行的 ID | -| SID | bigint(20) unsigned | NO | Session 连接 ID | -| CLIENT_IP | varchar(32) | NO | 发送请求的客户端 IP | -| CLIENT_PORT | bigint(20) | NO | 发送请求的客户端端口号 | -| TENANT_ID | bigint(20) | NO | 发送请求的租户 ID | -| TENANT_NAME | varchar(64) | NO | 发送请求的租户名称 | -| EFFECTIVE_TENANT_ID | bigint(20) | NO | 租户 ID | -| USER_ID | bigint(20) | NO | 发送请求的用户 ID | -| USER_NAME | varchar(64) | NO | 发送请求的用户名称 | -| USER_CLIENT_IP | varchar(32) | NO | 发送请求的客户端 IP | -| DB_ID | bigint(20) unsigned | DB_ID | 数据库 ID | -| DB_NAME | varchar(128) | DB_NAME | 数据库名称 | -| SQL_ID | varchar(32) | NO | 该 SQL 的 ID | -| QUERY_SQL | varchar(65536) | NO | 实际的 SQL 语句 | -| PLAN_ID | bigint(20) | NO | 执行计划 ID | -| AFFECTED_ROWS | bigint(20) | NO | 影响行数 | -| RETURN_ROWS | bigint(20) | NO | 返回行数 | -| PARTITION_CNT | bigint(20) | NO | 该请求涉及的分区数 | -| RET_CODE | bigint(20) | NO | 执行结果返回码 | -| QC_ID | bigint(20) unsigned | NO | 并行执行场景下,调度器 ID | -| DFO_ID | bigint(20) | NO | 并行执行场景下,当前执行的子计划 ID | -| SQC_ID | bigint(20) | NO | 并行执行场景下,本地协调器 ID | -| WORKER_ID | bigint(20) | NO | 并行执行场景下,工作线程 ID | -| EVENT | varchar(64) | NO | 最长等待事件名称 | -| P1TEXT | varchar(64) | NO | 等待事件参数 1 | -| P1 | bigint(20) unsigned | NO | 等待事件参数 1 的值 | -| P2TEXT | varchar(64) | NO | 等待事件参数 2 | -| P2 | bigint(20) unsigned | NO | 等待事件参数 2 的值 | -| P3TEXT | varchar(64) | NO | 等待事件参数 3 | -| P3 | bigint(20) unsigned | NO | 等待事件参数 3 的值 | -| LEVEL | bigint(20) | NO | 等待事件的级别 | -| WAIT_CLASS_ID | bigint(20) | NO | 等待事件所属的 Class ID | -| WAIT_CLASS# | bigint(20) | NO | 等待事件所属的 Class 的下标 | -| WAIT_CLASS | varchar(64) | NO | 等待事件所属的 Class 名称 | -| STATE | varchar(19) | NO | 等待事件的状态 | -| WAIT_TIME_MICRO | bigint(20) | NO | 该等待事件所等待的时间,单位:微秒 | -| TOTAL_WAIT_TIME_MICRO | bigint(20) | NO | 执行过程所有等待的总时间,单位:微秒 | -| TOTAL_WAITS | bigint(20) | NO | 执行过程中总等待的次数 | -| RPC_COUNT | bigint(20) | NO | 发送的 RPC 个数 | -| PLAN_TYPE | bigint(20) | NO | 执行计划的类型: * local * remote * distribute | -| IS_INNER_SQL | tinyint(4) | NO | 是否为内部 SQL 请求 | -| IS_EXECUTOR_RPC | tinyint(4) | NO | 当前请求是否为 RPC 请求 | -| IS_HIT_PLAN | tinyint(4) | NO | 是否命中 plan_cache | -| REQUEST_TIME | bigint(20) | NO | 开始执行的时间点 | -| ELAPSED_TIME | bigint(20) | NO | 接收到请求到执行结束所消耗的总时间 | -| NET_TIME | bigint(20) | NO | 发送 RPC 到接收到请求的时间 | -| NET_WAIT_TIME | bigint(20) | NO | 接收到请求到进入队列的时间 | -| QUEUE_TIME | bigint(20) | NO | 请求在队列的等待事件 | -| DECODE_TIME | bigint(20) | NO | 出队列后 Decode 的时间 | -| GET_PLAN_TIME | bigint(20) | NO | 开始 Process 到获得计划的时间 | -| EXECUTE_TIME | bigint(20) | NO | 计划执行所消耗的时间 | -| APPLICATION_WAIT_TIME | bigint(20) unsigned | NO | 所有 application 类事件的总时间 | -| CONCURRENCY_WAIT_TIME | bigint(20) unsigned | NO | 所有 concurrency 类事件的总时间 | -| USER_IO_WAIT_TIME | bigint(20) unsigned | NO | 所有 user_io 类事件的总时间 | -| SCHEDULE_TIME | bigint(20) unsigned | NO | 所有 Schedule 类事件的时间 | -| ROW_CACHE_HIT | bigint(20) | NO | 行缓存命中次数 | -| BLOOM_FILTER_CACHE_HIT | bigint(20) | NO | Bloom Filter 缓存命中次数 | -| BLOCK_CACHE_HIT | bigint(20) | NO | 块缓存命中次数 | -| BLOCK_INDEX_CACHE_HIT | bigint(20) | NO | 块索引缓存命中次数 | -| DISK_READS | bigint(20) | NO | 物理读次数 | -| RETRY_CNT | bigint(20) | NO | 重试次数 | -| TABLE_SCAN | tinyint(4) | NO | 判断该请求是否含全表扫描 | -| CONSISTENCY_LEVEL | bigint(20) | NO | 一致性级别 | -| MEMSTORE_READ_ROW_COUNT | bigint(20) | NO | Memstore 中的读行数 | -| SSSTORE_READ_ROW_COUNT | bigint(20) | NO | Ssstore 中连读的行数 | -| REQUEST_MEMORY_USED | bigint(20) | NO | 该请求消耗的内存 | -| EXPECTED_WORKER_COUNT | bigint(20) | NO | 请求期望的工作线程数 | -| USED_WORKER_COUNT | bigint(20) | NO | 请求实际使用的工作线程数 | -| SCHED_INFO | varchar(16384) | NO | 请求的调度信息 | -| FUSE_ROW_CACHE_HIT | bigint(20) | NO | 暂不支持该字段,字段默认为 NUL | -| PS_STMT_ID | bigint(20) | NO | 请求对应的 Prepare ID | -| TRANSACTION_HASH | bigint(20) unsigned | NO | 请求对应的事务的 Hash 值 | -| REQUEST_TYPE | bigint(20) | NO | 请求对应的类型: * 0:表示非法 * 1:表示是一个内部请求 * 2:表示是一个本地请求,例如,Local 计划 * 3:表示远程请求 * 4:表示分布式请求 * 5:表示 SQL 的 prepare 请求 * 6:表示 SQL 得到 execute stmt 请求 | -| IS_BATCHED_MULTI_STMT | tinyint(4) | NO | 是否进行 batch multi stmt 的优化 | -| OB_TRACE_INFO | varchar(4096) | NO | 用户设置的 Trace 信息 | -| PLAN_HASH | bigint(20) unsigned | NO | 执行计划的 Hash 值 | -| LOCK_FOR_READ_TIME | bigint(20) | NO | 读取数据时等待锁的耗时,单位:微秒 | -| WAIT_TRX_MIGRATE_TIME | bigint(20) | NO | 写入数据时,等待事务因为内部合并机制而需要冻结,冻结过程中位完成的事务需要搬迁出来的耗时,单位:微秒 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/6.gv-system_event.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/6.gv-system_event.md deleted file mode 100644 index a6cebca7f..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/6.gv-system_event.md +++ /dev/null @@ -1,37 +0,0 @@ -gv$system_event -==================================== - - - -功能 ------------ - -展示集群所有租户级别的等待事件。 - -相关表/视图 ---------------- - -__all_virtual_system_event - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------|-------------|----------------|----------------------| -| CON_ID | bigint(20) | NO | 租户 ID | -| SVR_IP | varchar(32) | NO | 信息所在 Server 的 IP | -| SVR_PORT | bigint(20) | NO | 信息所在 Server 的端口号 | -| EVENT_ID | bigint(20) | NO | 等待事件的 ID | -| EVENT | varchar(64) | NO | 等待事件的描述 | -| WAIT_CLASS_ID | bigint(20) | NO | 等待事件的所属 Class ID | -| WAIT_CLASS# | bigint(20) | NO | 等待事件的所属的 Class下标 | -| WAIT_CLASS | varchar(64) | NO | 等待事件所属的 Class | -| TOTAL_WAITS | bigint(20) | NO | 该等待事件的总等待次数 | -| TOTAL_TIMEOUTS | bigint(20) | NO | 该等待事件的总超时次数 | -| TOTAL_WAITED | double | NO | 该等待事件的总等待时间,单位 10ms | -| AVERAGE_WAIT | double | NO | 该等待事件的平均等待事件,单位 10ms | -| TOTAL_WAITED_MICRO | bigint(20) | NO | 该等待事件的总等待时间(微秒) | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/60.v-obrpc_outgoing.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/60.v-obrpc_outgoing.md deleted file mode 100644 index 40a5d4034..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/60.v-obrpc_outgoing.md +++ /dev/null @@ -1,37 +0,0 @@ -v$obrpc_outgoing -===================================== - - - -功能 ------------ - -统计 OBServer 上不同租户所有不同 rpc packet code 的 RPC 数据发送情况。 - -相关表/视图 ---------------- - -gv$obrpc_outgoing - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|--------------|----------------|-----------------------| -| TENANT_ID | bigint(20) | NO | 租户 | -| IP | varchar(32) | NO | IP 地址 | -| PORT | bigint(20) | NO | 端口号 | -| PCODE | bigint(20) | NO | rpc packet code | -| PCODE_NAME | varchar(256) | NO | rpc packet code 对应的名称 | -| COUNT | bigint(20) | NO | 使用次数 | -| TOTAL_TIME | bigint(20) | NO | 总共花费时间 | -| TOTAL_SIZE | bigint(20) | NO | 总共发送数据量大小 | -| FAILURE | bigint(20) | NO | 发送失败次数 | -| TIMEOUT | bigint(20) | NO | 发送超时次数 | -| SYNC | bigint(20) | NO | 同步等待 RPC 请求个数 | -| ASYNC | bigint(20) | NO | 异步回调 RPC 请求个数 | -| LAST_TIMESTAMP | timestamp(6) | NO | 最后更新统计信息时间 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/61.v-obrpc_incoming.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/61.v-obrpc_incoming.md deleted file mode 100644 index c347810ab..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/61.v-obrpc_incoming.md +++ /dev/null @@ -1,36 +0,0 @@ -v$obrpc_incoming -===================================== - - - -功能 ------------ - -v$obrpc_incoming 视图用于统计 OBServer 上不同租户所有的不同 RPC Packet Code 的 RPC 数据接收情况。 - -相关表/视图 ---------------- - -gv$obrpc_incoming - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|--------------|----------------|-----------------------| -| TENANT_ID | bigint(20) | NO | 租户 | -| IP | varchar(32) | NO | IP 地址 | -| PORT | bigint(20) | NO | 端口号 | -| PCODE | bigint(20) | NO | RPC Packet Code | -| PCODE_NAME | varchar(256) | NO | RPC Packet Code 对应的名称 | -| COUNT | bigint(20) | NO | 已接收到的该类型的 RPC 请求的个数 | -| TOTAL_SIZE | bigint(20) | NO | 总共接收数据量 | -| NET_TIME | bigint(20) | NO | 网络时间 | -| WAIT_TIME | bigint(20) | NO | 接收时间到请求被放入队列的时间 | -| QUEUE_TIME | bigint(20) | NO | 在队列中等待的时间 | -| PROCESS_TIME | bigint(20) | NO | 实际处理消耗的时间 | -| LAST_TIMESTAMP | timestamp(6) | NO | 上次更新的时间 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/62.v-sql.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/62.v-sql.md deleted file mode 100644 index 9c22eae33..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/62.v-sql.md +++ /dev/null @@ -1,50 +0,0 @@ -v$sql -========================== - - - -功能 ------------ - -热更新的 SQL 相关统计信息;记录每个 Plan 上统计信息,汇总单个 Plan 多次执行的统计信息;每个 Plan 都会在表中有一行。 - -相关表/视图 ---------------- - -gv$sql - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------------|---------------------|----------------|------------------------------------------------------------------------------------------------------------------| -| CON_ID | bigint(20) | NO | 租户 ID | -| SVR_IP | varchar(32) | NO | 服务器的 IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口号 | -| PLAN_ID | bigint(20) | NO | 执行计划的 ID | -| SQL_ID | varchar(32) | NO | SQL 的标识符 | -| TYPE | bigint(20) | NO | SQL 类型,local remote distribute | -| SQL_TEXT | varchar(4096) | NO | SQL 语句文本 | -| PLAN_HASH_VALUE | bigint(20) | NO | 执行计划的 Hash 值 | -| FIRST_LOAD_TIME | timestamp(6) | NO | 第一次执行时间 | -| LAST_ACTIVE_TIME | timestamp(6) | NO | 上一次执行时间 | -| AVG_EXE_USEC | bigint(20) | NO | 平均执行耗时 | -| SLOWEST_EXE_TIME | timestamp(6) | NO | 最慢执行开始时间点 | -| SLOWEST_EXE_USEC | bigint(20) | NO | 最慢执行消耗时间 | -| SLOW_COUNT | bigint(20) | NO | 慢查询次数统计 | -| HIT_COUNT | bigint(20) | NO | 命中 plan cache 统计 | -| PLAN_SIZE | bigint(20) | NO | 单个 OBServer 上唯一确定 plan_cache 中的一个 plan,它是一个递增的值,由 plan_cache 模块进行管理,每次新加入一个 Plan 到 Plan Cache 中时,都会为其分配一个PLAN_ID | -| EXECUTIONS | bigint(20) | NO | 执行次数 | -| DISK_READS | bigint(20) | NO | 多盘次数 | -| DIRECT_WRITES | bigint(20) | NO | 写盘次数 | -| BUFFER_GETS | bigint(20) | NO | 逻辑读次数 | -| APPLICATION_WAIT_TIME | bigint(20) unsigned | NO | application 类事件等待时间 | -| CONCURRENCY_WAIT_TIME | bigint(20) unsigned | NO | concurrency 类事件等待时间 | -| USER_IO_WAIT_TIME | bigint(20) unsigned | NO | 所有 IO 类事件等待时间 | -| ROWS_PROCESSED | bigint(20) | NO | 所有 Schedule 类事件等待事件 | -| ELAPSED_TIME | bigint(20) unsigned | NO | 接收到处理完成总消耗时间 | -| CPU_TIME | bigint(20) unsigned | NO | 消耗的 CPU 时间 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/63.v-sql_monitor.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/63.v-sql_monitor.md deleted file mode 100644 index 92efb714b..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/63.v-sql_monitor.md +++ /dev/null @@ -1,37 +0,0 @@ -v$sql_monitor -================================== - - - -功能 ------------ - -慢查询的 Plan 层面的统计,每个慢查询都会有一条统计信息,同时记录该 Plan 的 Trace 信息。 - -相关表/视图 ---------------- - -gv$sql_monitor - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------|----------------|----------------|---------------------------------------------------------------------------------------------------------------------| -| CON_ID | bigint(20) | NO | 租户 ID | -| SQL_EXEC_ID | bigint(20) | NO | 唯一确定一个查询语句,他是由查询语句经过快速参数化后得到的字符串的 MD5 值 | -| JOB_ID | bigint(20) | NO | 执行器里面用来区分某个物理执行计划的一个片段。在单台 OBServer 上是全局递增的 | -| TASK_ID | bigint(20) | NO | 分布式执行计划中,用来区分某个 JOB_ID 对应的执行计划片段的一次执行过程。 | -| SVR_IP | varchar(32) | NO | IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口号 | -| SQL_EXEC_START | timestamp(6) | NO | 执行开始时刻 | -| PLAN_ID | bigint(20) | NO | 单个 OBServer 上唯一确定 plan_cache 中的一个 Plan,它是一个递增的值,由 plan_cache 模块进行管理,每次新加入一个 Plan 到 Plan Cache 中的时候,都会为其分配一个 PLAN_ID | -| SCHEDULER_IP | varchar(32) | NO | 调度执行 SQL 的 OBServer 的 IP 地址 | -| SCHEDULER_PORT | bigint(20) | NO | 调度执行 SQL 的 OBServer 的端口号 | -| MONITOR_INFO | varchar(65535) | NO | 相关信息,包括最长等待事件,接收时间等信息 | -| EXTEND_INFO | varchar(65535) | NO | 扩展信息,SQL 执行流程全部 Trace 信息 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/64.v-sql_plan_monitor.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/64.v-sql_plan_monitor.md deleted file mode 100644 index f60f078d0..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/64.v-sql_plan_monitor.md +++ /dev/null @@ -1,104 +0,0 @@ -v$sql_plan_monitor -======================================= - - - -功能 ------------ - -慢查询的 Operation 层面的统计,每个 Operation 会有一条统计信息。 - -相关表/视图 ---------------- - -gv$sql_plan_monitor - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------------------|--------------|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| CON_ID | bigint(20) | NO | 租户 ID | -| KEY | null | NO | 外键,用于和 SQL_MONITOR 相关虚拟表做连接查询 | -| STATUS | null | NO | 算子执行状态: * EXECUTING:执行中 * DONE(ERROR):执行出错 * DONE(FIRST N ROWS):执行成功 * DONE(ALL ROWS):执行成功 * DONE: 执行中断 | -| SVR_IP | varchar(32) | NO | 算子所在机器的 IP | -| SVR_PORT | bigint(20) | NO | 算子所在机器的端口号 | -| TRACE_ID | varchar(64) | NO | 算子的 Trace ID | -| FIRST_REFRESH_TIME | timestamp(6) | NO | 算子开始监控时间 | -| LAST_REFRESH_TIME | timestamp(6) | NO | 算子结束监控时间 | -| FIRST_CHANGE_TIME | timestamp(6) | NO | 算子吐出首行数据时间 | -| LAST_CHANGE_TIME | timestamp(6) | NO | 算子吐出最后一行数据时间 | -| REFRESH_COUNT | null | NO | 统计数据刷新次数 | -| SID | null | NO | Session 的 ID | -| PROCESS_NAME | bigint(20) | NO | 执行线程 ID | -| SQL_ID | null | NO | SQL ID | -| SQL_EXEC_START | null | NO | SQL 执行开始时间 | -| SQL_EXEC_ID | null | NO | SQL 执行 ID | -| SQL_PLAN_HASH_VALUE | null | NO | SQL 计划的 Hash 值 | -| SQL_CHILD_ADDRESS | null | NO | 默认为 NULL | -| PLAN_PARENT_ID | null | NO | 默认为 NULL | -| PLAN_LINE_ID | bigint(20) | NO | 默认为 NULL | -| PLAN_OPERATION | varchar(128) | NO | 执行计划中对应 Operator | -| PLAN_OPTIONS | null | NO | 默认为 NULL | -| PLAN_OBJECT_OWNER | null | NO | 默认为 NULL | -| PLAN_OBJECT_NAME | null | NO | 默认为 NULL | -| PLAN_OBJECT_TYPE | null | NO | 默认为 NULL | -| PLAN_DEPTH | bigint(20) | NO | 算子在计划树中的深度 | -| PLAN_POSITION | null | NO | 算子是父节点的第几个孩子 | -| PLAN_COST | null | NO | 优化器计算出的算子代价 | -| PLAN_CARDINALITY | null | NO | 优化器计算出的算子输出数据行数 | -| PLAN_BYTES | null | NO | 优化器估算出的算子输出数据字节数 | -| PLAN_TIME | null | NO | 优化器计算出的算子执行时间 | -| PLAN_PARTITION_START | null | NO | 默认为 NULL | -| PLAN_PARTITION_STOP | null | NO | 默认为 NULL | -| PLAN_CPU_COST | null | NO | 优化器估算出的算子 CPU 代价 | -| PLAN_IO_COST | null | NO | 优化器估算出的算子 IO 代价 | -| PLAN_TEMP_SPACE | null | NO | 优化器估算出的算子空间占用大小 | -| STARTS | bigint(20) | NO | 算子被 rescan 的次数 | -| OUTPUT_ROWS | bigint(20) | NO | 算子输出的总行数(所有本算子的执行实例行数累加值) | -| IO_INTERCONNECT_BYTES | null | NO | 算子与储存层之间交换的数据字节数 | -| PHYSICAL_READ_REQUESTS | null | NO | 算子发出的 I/O 读请求次数 | -| PHYSICAL_READ_BYTES | null | NO | 算子发出的 I/O 读请求字节数 | -| PHYSICAL_WRITE_REQUESTS | null | NO | 算子发出的 I/O 写请求次数 | -| PHYSICAL_WRITE_BYTES | null | NO | 算子发出的 I/O 写请求字节数 | -| WORKAREA_MEM | null | NO | 算子占用的 workarea 内存量 | -| WORKAREA_MAX_MEM | null | NO | 算子可占用的 workarea 内存上限 | -| WORKAREA_TEMPSEG | null | NO | 算子占用的磁盘 Dump 空间 | -| WORKAREA_MAX_TEMPSEG | null | NO | 算子可占用的最大磁盘 Dump 空间 | -| OTHERSTAT_GROUP_ID | null | NO | 默认为 NULL | -| OTHERSTAT_1_ID | bigint(20) | NO | 预留字段 | -| OTHERSTAT_1_TYPE | null | NO | 预留字段 | -| OTHERSTAT_1_VALUE | bigint(20) | NO | 预留字段 | -| OTHERSTAT_2_ID | bigint(20) | NO | 预留字段 | -| OTHERSTAT_2_TYPE | null | NO | 预留字段 | -| OTHERSTAT_2_VALUE | bigint(20) | NO | 预留字段 | -| OTHERSTAT_3_ID | bigint(20) | NO | 预留字段 | -| OTHERSTAT_3_TYPE | null | NO | 预留字段 | -| OTHERSTAT_3_VALUE | bigint(20) | NO | 预留字段 | -| OTHERSTAT_4_ID | bigint(20) | NO | 预留字段 | -| OTHERSTAT_4_TYPE | null | NO | 预留字段 | -| OTHERSTAT_4_VALUE | bigint(20) | NO | 预留字段 | -| OTHERSTAT_5_ID | bigint(20) | NO | 预留字段 | -| OTHERSTAT_5_TYPE | null | NO | 预留字段 | -| OTHERSTAT_5_VALUE | bigint(20) | NO | 预留字段 | -| OTHERSTAT_6_ID | bigint(20) | NO | 预留字段 | -| OTHERSTAT_6_TYPE | null | NO | 预留字段 | -| OTHERSTAT_6_VALUE | bigint(20) | NO | 预留字段 | -| OTHERSTAT_7_ID | bigint(20) | NO | 预留字段 | -| OTHERSTAT_7_TYPE | null | NO | 预留字段 | -| OTHERSTAT_7_VALUE | bigint(20) | NO | 预留字段 | -| OTHERSTAT_8_ID | bigint(20) | NO | 预留字段 | -| OTHERSTAT_8_TYPE | null | NO | 预留字段 | -| OTHERSTAT_8_VALUE | bigint(20) | NO | 预留字段 | -| OTHERSTAT_9_ID | bigint(20) | NO | 预留字段 | -| OTHERSTAT_9_TYPE | null | NO | 预留字段 | -| OTHERSTAT_9_VALUE | bigint(20) | NO | 预留字段 | -| OTHERSTAT_10_ID | bigint(20) | NO | 预留字段 | -| OTHERSTAT_10_TYPE | null | NO | 预留字段 | -| OTHERSTAT_10_VALUE | bigint(20) | NO | 预留字段 | -| OTHER_XML | null | NO | 其它无法写入预留项中,但需要提供给外部使用的结构化数据。由外部工具负责解析 | -| PLAN_OPERATION_INACTIVE | null | NO | 默认为 NULL | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/65.v-sql_plan_statistics.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/65.v-sql_plan_statistics.md deleted file mode 100644 index c583d853f..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/65.v-sql_plan_statistics.md +++ /dev/null @@ -1,40 +0,0 @@ -v$sql_plan_statistics -========================================== - - - -功能 ------------ - -展示当前 OBServer 的物理执行计划统计信息。 - -相关表/视图 ---------------- - -gv$sql_plan_statistics - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------|----------------|----------------|---------------| -| CON_ID | bigint(20) | NO | 租户 ID | -| SVR_IP | varchar(32) | NO | IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口地址 | -| PLAN_ID | bigint(20) | NO | 物理计划 ID | -| OPERATION_ID | bigint(20) | NO | 物理算子 ID | -| EXECUTIONS | bigint(20) | NO | 累计执行次数 | -| OUTPUT_ROWS | bigint(20) | NO | 累计算子输出行数 | -| INPUT_ROWS | bigint(20) | NO | 累计算子输入行数 | -| RESCAN_TIMES | bigint(20) | NO | 累计 Rescan 的次数 | -| BUFFER_GETS | bigint(20) | NO | Buffer 命中次数 | -| DISK_READS | bigint(20) | NO | 累计物理度盘次数 | -| DISK_WRITES | bigint(20) | NO | 累计物理写盘次数 | -| ELAPSED_TIME | bigint(20) | NO | 累计算子消耗时间 | -| EXTEND_INFO1 | varchar(65535) | NO | 暂未使用 | -| EXTEND_INFO2 | varchar(65535) | NO | 暂未使用 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/66.v-unit.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/66.v-unit.md deleted file mode 100644 index f29ef2364..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/66.v-unit.md +++ /dev/null @@ -1,44 +0,0 @@ -v$unit -=========================== - - - -功能 ------------ - -展示当前机器 Unit 的 Meta 信息。 - -相关表/视图 ---------------- - -gv$unit - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------------|--------------|----------------|---------------------------| -| unit_id | bigint(20) | NO | 单元 ID | -| unit_config_id | bigint(20) | NO | 单元规格 ID | -| unit_config_name | varchar(128) | NO | 单元规格名 | -| resource_pool_id | bigint(20) | NO | 资源池 ID | -| resource_pool_name | varchar(128) | NO | 资源池名 | -| zone | varchar(128) | NO | 所属 Zone | -| tenant_id | bigint(20) | NO | 租户 ID | -| tenant_name | varchar(128) | NO | 租户名称 | -| svr_ip | varchar(32) | NO | IP 地址 | -| svr_port | bigint(20) | NO | 端口 | -| migrate_from_svr_ip | varchar(32) | NO | Unit 的迁移来源 Server 的 IP 地址 | -| migrate_from_svr_port | bigint(20) | NO | Unit 的迁移来源 Server 的端口 | -| max_cpu | double | NO | 最大虚拟 CPU 个数 | -| min_cpu | double | NO | 最小虚拟 CPU 个数 | -| max_memory | bigint(20) | NO | 最大内存使用量 | -| min_memory | bigint(20) | NO | 最小内存使用量 | -| max_iops | bigint(20) | NO | 最大 IOPS | -| min_iops | bigint(20) | NO | 最小 IOPS | -| max_disk_size | bigint(20) | NO | 最大磁盘使用量 | -| max_session_num | bigint(20) | NO | 最大 Session 个数 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/67.v-partition.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/67.v-partition.md deleted file mode 100644 index 589ffe33e..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/67.v-partition.md +++ /dev/null @@ -1,50 +0,0 @@ -v$partition -================================ - - - -功能 ------------ - -当前机器 Partition 的 Meta 信息。 - -相关表/视图 ---------------- - -gv$partition - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------|---------------|----------------|--------------------------------------------------------------------------------------------------------------------------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| table_id | bigint(20) | NO | 表 ID | -| tablegroup_id | bigint(20) | NO | 表组 ID | -| partition_id | bigint(20) | NO | 分区 ID | -| svr_ip | varchar(32) | NO | OBServer IP 地址 | -| svr_port | bigint(20) | NO | OBServer 端口 | -| sql_port | bigint(20) | NO | OBServer SQL 端口 | -| unit_id | bigint(20) | NO | 单元 ID | -| partition_cnt | bigint(20) | NO | 分区个数,该值已不再使用,无意义 | -| zone | varchar(128) | NO | 副本所在 Zone | -| role | bigint(20) | NO | 副本角色 * 1:leader * 2:follower | -| member_list | varchar(3520) | NO | Paxos Group 中的成员列表 | -| row_count | bigint(20) | NO | 行数 | -| data_size | bigint(20) | NO | 数据大小 | -| data_version | bigint(20) | NO | 数据版本号 | -| partition_checksum | bigint(20) | NO | 分区校验码 | -| data_checksum | bigint(20) | NO | 数据校验码 | -| row_checksum | bigint(20) | NO | 行校验码 | -| column_checksum | varchar(8192) | NO | 列校验码 | -| rebuild | bigint(20) | NO | 是否处于 Rebuild 状态 | -| replica_type | bigint(20) | NO | 副本类型 | -| required_size | bigint(20) | NO | 迁移需要的 Size | -| status | varchar(64) | NO | 副本状态 | -| is_restore | bigint(20) | NO | 区分是否为正在逻辑/物理恢复的副本 | -| quorum | bigint(20) | NO | 仅 `role=1`的行的该值有效,表示 Paxos 组应有的成员数,用于计算多数派。 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/68.v-lock_wait_stat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/68.v-lock_wait_stat.md deleted file mode 100644 index 599708946..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/68.v-lock_wait_stat.md +++ /dev/null @@ -1,38 +0,0 @@ -v$lock_wait_stat -===================================== - - - -功能 ------------ - -当前 OBServer 上行锁的状态。 - -相关表/视图 ---------------- - -gv$lock_wait_stat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------------|--------------|----------------|--------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| TABLE_ID | bigint(20) | NO | 表 ID | -| TABLE_NAME | varchar(256) | NO | 表名 | -| ROWKEY | varchar(512) | NO | 主键 | -| SVR_IP | varchar(32) | NO | IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口号 | -| SESSION_ID | bigint(20) | NO | 会话 ID | -| NEED_WAIT | tinyint(4) | NO | 是否需要等锁 | -| RECV_TS | bigint(20) | NO | 收到请求时间戳 | -| LOCK_TS | bigint(20) | NO | 最近一次上锁的时间戳 | -| ABS_TIMEOUT | bigint(20) | NO | 请求超时时刻 | -| TRY_LOCK_TIMES | bigint(20) | NO | 尝试上锁的次数 | -| TIME_AFTER_RECV | bigint(20) | NO | 收到请求到当前的时间间隔 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/69.v-session_longops.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/69.v-session_longops.md deleted file mode 100644 index b76eb0fa6..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/69.v-session_longops.md +++ /dev/null @@ -1,34 +0,0 @@ -v$session_longops -====================================== - - - -功能 ------------ - -展示当前 OBServer 上索引构建的进度。 - -相关表/视图 ---------------- - -gv$session_longops - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------|---------------|----------------|-----------| -| SID | bigint(20) | NO | 会话 ID | -| OPNAME | varchar(128) | NO | 操作名称 | -| TARGET | varchar(128) | NO | 操作对象 | -| SVR_IP | varchar(32) | NO | 操作所在机器 IP | -| SVR_PORT | bigint(20) | NO | 操作所在机器端口号 | -| START_TIME | bigint(20) | NO | 开始时间 | -| ELAPSED_SECONDS | decimal(24,4) | NO | 已经消耗时间 | -| TIME_REMAINING | bigint(20) | NO | 预估剩余需要时间 | -| LAST_UPDATE_TIME | bigint(20) | NO | 统计信息更新时间 | -| MESSAGE | varchar(500) | NO | 备注信息 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/7.gv-sesstat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/7.gv-sesstat.md deleted file mode 100644 index dfa881c6f..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/7.gv-sesstat.md +++ /dev/null @@ -1,31 +0,0 @@ -gv$sesstat -=============================== - - - -功能 ------------ - -所有 OBServer 的 Session 级别的统计事件信息。 - -相关表/视图 ---------------- - -__all_virtual_sesstat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------|-------------|----------------|------------------| -| SID | bigint(20) | NO | Session的 ID | -| CON_ID | bigint(20) | NO | 租户 ID | -| SVR_IP | varchar(32) | NO | 信息所在 Server 的 IP | -| SVR_PORT | bigint(20) | NO | 信息所在 Server 的端口号 | -| STATISTICS# | bigint(20) | NO | 统计事件的下标 | -| VALUE | bigint(20) | NO | 统计事件发生的次数 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/70.v-latch.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/70.v-latch.md deleted file mode 100644 index 8d35fd7a1..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/70.v-latch.md +++ /dev/null @@ -1,39 +0,0 @@ -v$latch -============================ - - - -功能 ------------ - -集群中所有 OBServer 的 latch 信息视图。 - -相关表/视图 ---------------- - -oceanbase.__all_virtual_latch - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------|--------------|----------------|--------------------| -| CON_ID | bigint(20) | NO | 租户 ID | -| SVR_IP | varchar(32) | NO | IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口号 | -| ADDR | varchar(256) | NO | 目前为 NULL | -| LATCH# | bigint(20) | NO | Latch 所属 Class 的下标 | -| LEVEL# | bigint(20) | NO | Latch 所属 Level 的下标 | -| NAME | varchar(256) | NO | Latch 的名称 | -| HASH | bigint(20) | NO | 该值目前为 0 | -| GETS | bigint(20) | NO | Lock 成功次数 | -| MISSES | bigint(20) | NO | Lock 进入等待的次数 | -| SLEEPS | bigint(20) | NO | 总共 yield 的次数 | -| IMMEDIATE_GETS | bigint(20) | NO | try_lock 成功次数 | -| IMMEDIATE_MISSES | bigint(20) | NO | try_lock 失败次数 | -| SPIN_GETS | bigint(20) | NO | 总共 Spin 次数 | -| WAIT_TIME | bigint(20) | NO | 等待的 Sleep 时间 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/71.v-tenant_memstore_allocator_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/71.v-tenant_memstore_allocator_info.md deleted file mode 100644 index 052ca0e2a..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/71.v-tenant_memstore_allocator_info.md +++ /dev/null @@ -1,30 +0,0 @@ -v$tenant_memstore_allocator_info -===================================================== - - - -功能 ------------ - -该视图展示了所连接 OBServer 上的 Memtable 的若干信息,主要用于排查租户 Memstore 内存长时间未释放的问题。每行记录对应单个 Memtable 的信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------------|-------------|----------------|------------------------------------------| -| SVR_IP | varchar(32) | NO | OBServer 的 IP 地址 | -| SVR_PORT | bigint(20) | NO | OBServer 的端口 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| TABLE_ID | bigint(20) | NO | 表 ID | -| PARTITION_ID | bigint(20) | NO | 分区 ID | -| MT_BASE_VERSION | bigint(20) | NO | 该 Memtable 对应的起始事务版本 | -| RETIRE_CLOCK | bigint(20) | NO | 该 Memtable 所属的租户当前 Memstore已分配内存总量 | -| MT_IS_FROZEN | bigint(20) | NO | 该 Memtable 是否已经冻结 | -| MT_PROTECTION_CLOCK | bigint(20) | NO | 该 Memtable 第一次分配内存时,所属租户 Memstore 已分配内存量 | -| MT_SNAPSHOT_VERSION | bigint(20) | NO | 该 Memtable 的快照版本 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/72.v-tenant_px_worker_stat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/72.v-tenant_px_worker_stat.md deleted file mode 100644 index 32af42f95..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/72.v-tenant_px_worker_stat.md +++ /dev/null @@ -1,32 +0,0 @@ -v$tenant_px_worker_stat -============================================ - - - -功能 ------------ - -在并行执行场景中,查看每个线程的执行信息。 - -与 gv$tenant_px_worker_stat 相比,该视图仅能看到当前租户本机的线程。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------|--------------|----------------|--------------| -| session_id | bigint(20) | NO | Session ID | -| tenant_id | bigint(20) | NO | 租户 ID | -| svr_ip | varchar(32) | NO | 机器 IP | -| svr_port | bigint(20) | NO | 机器端口号 | -| trace_id | varchar(128) | NO | Trace ID | -| qc_id | bigint(20) | NO | px 中的 qc_id | -| sqc_id | bigint(20) | NO | px 中的 sqc_id | -| worker_id | bigint(20) | NO | 线程 ID | -| dfo_id | bigint(20) | NO | px 中的 dfo_id | -| start_time | timestamp(6) | NO | 线程开始运行的时间 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/73.v-partition_audit.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/73.v-partition_audit.md deleted file mode 100644 index d98853017..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/73.v-partition_audit.md +++ /dev/null @@ -1,45 +0,0 @@ -v$partition_audit -====================================== - - - -功能 ------------ - -提供分区级别的统计信息,用于分区的性能统计。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------------------|-------------|----------------|-----------------| -| svr_ip | varchar(32) | NO | 机器的 IP | -| svr_port | bigint(20) | NO | 机器的端口号 | -| tenant_id | bigint(20) | NO | 租户 ID | -| table_id | bigint(20) | NO | 表 ID | -| partition_id | bigint(20) | NO | 分区 ID | -| partition_status | bigint(20) | NO | 分区状态 | -| base_row_count | bigint(20) | NO | 基线数据行数,暂不可用 | -| insert_row_count | bigint(20) | NO | 插入行的数量 | -| delete_row_count | bigint(20) | NO | 删除行的数量 | -| update_row_count | bigint(20) | NO | 更新行的数量 | -| query_row_count | bigint(20) | NO | 查询行的数量,暂不可用 | -| insert_sql_count | bigint(20) | NO | 插入语句的数量 | -| delete_sql_count | bigint(20) | NO | 删除语句的数量 | -| update_sql_count | bigint(20) | NO | 更新语句的数量 | -| query_sql_count | bigint(20) | NO | 查询语句的数量,暂不可用 | -| trans_count | bigint(20) | NO | 事务数量 | -| sql_count | bigint(20) | NO | 所有语句的数量 | -| rollback_insert_row_count | bigint(20) | NO | 回滚的插入行的数量,暂不可用 | -| rollback_delete_row_count | bigint(20) | NO | 回滚的删除行的数量,暂不可用 | -| rollback_update_row_count | bigint(20) | NO | 回滚的更新行的数量,暂不可用 | -| rollback_insert_sql_count | bigint(20) | NO | 回滚的插入语句的数量,暂不可用 | -| rollback_delete_sql_count | bigint(20) | NO | 回滚的删除语句的数量,暂不可用 | -| rollback_update_sql_count | bigint(20) | NO | 回滚的更新语句的数量,暂不可用 | -| rollback_trans_count | bigint(20) | NO | 回滚的事务数量,暂不可用 | -| rollback_sql_count | bigint(20) | NO | 回滚的所有语句的数量,暂不可用 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/74.v-ob_cluster.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/74.v-ob_cluster.md deleted file mode 100644 index 560553063..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/74.v-ob_cluster.md +++ /dev/null @@ -1,34 +0,0 @@ -v$ob_cluster -================================= - - - -功能 ------------ - -v$ob_cluster 用于展示当前集群的基本信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------------------|---------------|----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| cluster_id | bigint(20) | NO | 集群唯一 ID。 | -| cluster_name | varchar(4096) | NO | 集群名。 | -| created | timestamp(6) | NO | 集群创建时间。 | -| cluster_role | varchar(4096) | NO | 集群角色: * PRIMARY:表示主集群 * PHYSICAL STANDBY:表示备集群 | -| cluster_status | varchar(4096) | NO | 当前集群状态: * VALID:表示有效状态 * DISABLED:表示禁止同步数据状态 默认是`VALID`状态,用户可以在主库上禁止某一个备集群同步。在 Failover 过程中,新主集群会自动设置其他备集群库为`DISABLED`状态,默认禁止其他备集群与新主集群同步数。 | -| switchover# | bigint(20) | NO | 一次 Switchover 或 Failover 操作的唯一标识。 | -| switchover_status | varchar(4096) | NO | Switchover 状态: * NOT ALLOWED: * 主集群上显示`NOT ALLOWED`表示当前集群不能 Switchover 成备集群。 * 备集群上显示`NOT ALLOWED`表示当前集群不能 Switchover 成主集群。 * TO PRIMARY:只在备集群上显示,表示当前集群可以切换成主集群。 * TO STANDBY:只在主集群上显示,表示当前集群可以切换成备集群。 * SWITCHOVER SWITCHING:主集群 Switchover 成备集群的中间状态。处于该状态的集群不能提供写服务,内部停写日志。 * FAILOVER FLASHBACK:备集群 Failover 成主集群的中间状态,集群正在回滚数据到一致状态。处于该状态的集群不能提供写服务,用户可以持续重试 Failover 命令,直到成功 Failover 成主集群。 * FAILOVER CLEANUP:备集群Failover 成主集群的中间状态,集群正在做最后的清理工作,包括清理无效的 Freeze info、删除无效的 Schema 等。处于该状态的集群提供写服务,但是不能执行 DDL 操作。 | -| switchover_info | varchar(4096) | NO | 展示 Switchover 相关信息,SWITCHOVER_STATUS 的详细说明如下: * NOT ALLOWED:表示为何不允许切换。 * TO STANDBY:表示有哪些备集群可以切为主集群。 * 其他状态时,该列值为空。 具体取值示例: * `CHECK PRIMARY CLUSTER SERVER STATUS`:表示需要校验主集群的 Server 状态,可能存在 Server 不在线的情况。 * `CHECK STADNBY CLUSTER SERVER STATUS`:表示需要校验备集群的 Server 状态,可能存在 Server 不在线的情况。 * `CHECK PRIMARY CLUSTER REBALANCE TASK STATUS`:表示需要校验主集群的负载均衡任务是否完成。 * `CHECK STANDBY CLUSTER REBALANCE TASK STATUS`:表示需要校验备集群的负载均衡任务是否完成。 * `CHECK MERGE STATUS`:表示检查合并状态是否出现 ERROR。 * `NONE SYNCED STANDBY CLUSTER`:没有同步的备集群存在,主集群不能切换为备集群。 * `SYNCED STANDBY CLUSTERS: cluster1, cluster2` :表示处于同步状态的备集群列表。 * `CHECK SYS SCHEMA SYNC STATUS` :表示需要校验备集群中系统租户的 Schema 是否同步完成。 * `CHECK USER SCHEMA SYNC STATUS`:表示需要校验备集群中普通租户的 Schema 是否同步完成。 * `CHECK FREEZE INFO SYNC STATUS`:表示需要校验备集群冻结信息是否同步完成。 * `CHECK ENOUG REPLICA`:表示需要检查备集群的副本个数是否齐全。 * `CHECK REDO LOG SYNC STATUS`:表示需要校验备集群的 REDO 日志是否同步完成。 * `CAN NOT ACCESS CLUSTERS: cluster1, cluster2`:表示某些集群不能访问,需要校验这些备集群的状态。 * `NO CLUSTER IN SWITCHING`:表示没有集群处于`SWITCHING`状态,不能执行`switchover to primary`。该信息是备集群处于`NOT ALLOW`状态时可能展示的信息。 * `INNER ERROR`:表示发生内部错误,需要查看集群日志排查问题,日志关键字为`SWITCHOVER_STATUS`。 * `PRIMARY CLUSTER NOT IN SYNC MODE`:最大保护和最大可用模式下,要求主集群的日志传输参数配置为强同步(`SYNC`)模式,同时,执行 Switchover 后,保护模式不变,并且原主集群变为强同步的备集群。用户可以在主集群上修改自己的日志传输参数为`SYNC`来解决该问题。 * `STANDBY CLUSTER NOT IN SYNC MODE`:最大保护和最大可用模式下,只能选择强同步(`SYNC`)模式的备集群切换为主集群。当备集群没有配置为`SYNC`模式,不允许切换为主集群。 * `PRIMARY CLUSTER HAS REPLICA IN RESTORE` :表示当前主集群有部分副本没有创建完成,不允许执行角色切换。需要用户主动删除这部分副本之后才能继续进行角色切换。 * `STANDBY CLUSTER HAS REPLICA IN RESTORE`:表示当前备集群有部分副本没有创建完成,不允许执行角色切换。需要等副本创建完成才能继续进行角色切换。 * `PRIMARY CLUSTER DOING BACKUP`:表示主集群正在执行备份,不允许执行角色切换,因为切换为备集群后不再支持备份,要求用户先停止备份任务。 * `CHECK OTHER PRIMARY CLUSTE`:表示存在其他主集群,不允许执行角色切换,防止集群出现双主 | -| current_scn | bigint(20) | NO | 当前集群连续已回放的最大快照版本 | -| standby_became_primary_scn | bigint(20) | NO | 备集群强制切换为主集群的快照版本 **注意** 执行 Switchover 不会影响该值,该值在所有正常接入的主集群和备集群上均可查询到,并且主备集群保持一致。 | -| primary_cluster_id | bigint(20) | YES | * 对于备集群,该字段表示它认为的主集群的唯一 ID;如果没有主集群,则该值为 NULL * 对于主集群,该字段为 NULL **注意** 此处与 Oracle 数据库不兼容,Oracle 数据库中,如果主集群之前曾经是备集群,则该字段为上一个主集群的信息;如果主集群没有成为过备集群,则该字段为 NULL。 | -| protection_mode | varchar(4096) | NO | 保护模式: * MAXIMUM PROTECTION:最大保护模式 * MAXIMUM AVAILABILITY:最大可用模式 * MAXIMUM PERFORMANCE:最大性能模式 | -| protection_level | varchar(4096) | NO | 当前集群的保护级别: * MAXIMUM PROTECTION:最大保护级别 * MAXIMUM AVAILABILITY:最大可用级别 * RESYNCHRONIZATION:追赶数据级别 * MAXIMUM PERFORMANCE:最大性能级别 | -| redo_transport_options | varchar(4096) | NO | 当前集群接收日志的传输模式,支持的参数如下: * SYNC/ASYNC * NET_TIMEOUT | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/75.v-ob_standby_status.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/75.v-ob_standby_status.md deleted file mode 100644 index 33a856c38..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/75.v-ob_standby_status.md +++ /dev/null @@ -1,28 +0,0 @@ -v$ob_standby_status -======================================== - - - -功能 ------------ - -如果是主集群,则 v$ob_standby_status 显示所有备集群的状态和配置信息;如果是备信息,则显示为空。 - -字段说明 -------------------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------------|---------------|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| cluster_id | bigint(20) | NO | 集群唯一 ID | -| cluster_name | varchar(4096) | NO | 集群名 | -| cluster_role | varchar(4096) | NO | 集群角色: * PRIMARY:表示主集群 * PHYSICAL STANDBY:表示备集群 | -| cluster_status | varchar(4096) | NO | 当前集群状态: * VALID:表示有效状态 * DISABLED :表示禁止同步数据状态 | -| current_scn | bigint(20) | NO | 当前集群连续已回放的最大快照版本 | -| rootservice_list | varchar(4096) | NO | 本集群 RootServer 列表 | -| redo_transport_options | varchar(4096) | NO | 当前备库的日志传输模式,支持的参数包括: * SYNC * ASYNC * NET_TIMEOUT | -| protection_level | varchar(4096) | NO | 当前集群的保护级别: * MAXIMUM PROTECTION :最大保护级别 * MAXIMUM AVAILABILITY: 最大可用级别 * RESYNCHRONIZATION:追赶数据级别 * MAXIMUM PERFORMANCE:最大性能级别 | -| synchronization_status | varchar(4096) | NO | 当前备集群的同步状态以及不同步的原因,支持的取值如下: * OK:表示与主集群保持同步 * NOT AVAILABLE:表示不能确定同步状态 * CLUSTER VERSION NOT MATCH:表示与主集群的版本不匹配 * SYS SCHEMA NOT SYNC:表示系统租户的 Schema 不同步 * PARTITION LOG NOT SYNC:表示部分分区日志的同步落后 * REPLICA NOT ENOUGH:表示部分分区没有足够的副本数量,达不到多数派要求 * FAILOVER INFO NOT LATEST:表示 FAILOVER INFO 不同步 * ALL CLUSTER INFO NOT SYNC:表示集群信息不同步 * REPLICA IN RESTORE:表示有刚刚创建、正在恢复状态的副本 * CHECK USER SCHEMA SYNC STATUS:表示普通租户的 Schma 数据不同步 * CHECK FREEZE INFO SYNC STATUS:表示冻结信息不同步 * CHECK MERGE STATUS:表示每日合并状态出错 * CHECK ALL SCHEMA EFFECTIVE:表示备集群同步到的 Schema 没有全部生效 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/76.v-ob_cluster_stats.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/76.v-ob_cluster_stats.md deleted file mode 100644 index bfe695994..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/76.v-ob_cluster_stats.md +++ /dev/null @@ -1,25 +0,0 @@ -v$ob_cluster_stats -======================================= - - - -功能 ------------ - -展示本集群所有租户的统计项。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------------------|------------|----------------|--------------------| -| tenant_id | bigint(20) | NO | 租户名 | -| refreshed_schema_version | bigint(20) | NO | 本地刷新的最大的 Schema 版本 | -| ddl_lag | bigint(20) | NO | 本地待回放的 DDL 语句数 | -| min_sys_table_scn | bigint(20) | NO | 系统表最小的快照点 | -| min_user_table_scn | bigint(20) | NO | 用户表最小的快照点 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/77.v-ob_cluster_event_history.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/77.v-ob_cluster_event_history.md deleted file mode 100644 index 13c69203b..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/77.v-ob_cluster_event_history.md +++ /dev/null @@ -1,24 +0,0 @@ -v$ob_cluster_event_history -=============================================== - - - -功能 ------------ - -v$ob_cluster_event_history 用于显示本集群主备库相关的事件历史,用于跟踪主备库运维、切换流程详细信息,报错日志等,方便诊断问题。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------|--------------|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| facility | varchar(64) | NO | 产生事件的模块名: * add cluster :添加集群 * remove cluster :删除集群 * enable cluster synchronization :开启集群同步 * disable cluster synchronization:禁止集群同步 * switchover to physical standby:无损切换到备集群角色 * switchover to primary:无损切换到主集群角色 * failover to primary:有损切换到主集群角色 * convert to physical standby:转换成备集群角色 * set cluster protection mode:设置保护模式 * update protection level in maximum availability mode:最大可用模式下,保护级别的变化 * update sync standby protection level:备集群从`RESYNCHRONIZATION`级别进入`MAXIMIZE AVAILABLE`或者`MAXIMIZE PROTECTION`事件 * amend primary protection level:当主集群的保护级别和保护模式不匹配时,需要推进保护级别或者回滚保护模式 * amend standby protection level:当备集群的保护级别和主集群的保护模式不匹配时,需要调整备集群的保护级别 | -| severity | varchar(256) | YES | 事件的级别: * CONTROL:预期内的状态变更事件,例如,一个操作的开始或者完成,包括 Switchover、Failover、Add cluster、Remove cluster 等。 * INFO:普通消息事件 * WARN:警告消息事件 * ERROR:错误消息事件 | -| error_code | varchar(256) | YES | 错误码,`0 `表示正常 | -| timestamp | timestamp(6) | NO | 日期 | -| message | varchar(256) | YES | 消息内容 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/78.v-ps_stat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/78.v-ps_stat.md deleted file mode 100644 index e5c535d61..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/78.v-ps_stat.md +++ /dev/null @@ -1,26 +0,0 @@ -v$ps_stat -============================== - - - -功能 ------------ - -监控 PS Cache 的整体状态,包括命中率、内存占用、缓存的 item 数目。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|--------------|-------------|----------------|---------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| svr_ip | varchar(32) | NO | 机器 IP | -| svr_port | bigint(20) | NO | 机器端口号 | -| stmt_count | bigint(20) | NO | PS Cache 中目前缓存了多少语句 | -| hit_count | bigint(20) | NO | PS Cache 总的命中次数 | -| access_count | bigint(20) | NO | 访问 PS Cache 的总次数 | -| mem_hold | bigint(20) | NO | PS Cache 占用了多少内存 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/79.v-ps_item_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/79.v-ps_item_info.md deleted file mode 100644 index 4a0290312..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/79.v-ps_item_info.md +++ /dev/null @@ -1,32 +0,0 @@ -v$ps_item_info -=================================== - - - -功能 ------------ - -用于给 prepared statement 提供监控功能,包含 PS Cache 中所有 prepare statement 的基本信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|---------------------|----------------|----------------|----------------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| svr_ip | varchar(32) | NO | 机器 IP | -| svr_port | bigint(20) | NO | 机器端口号 | -| stmt_id | bigint(20) | NO | PS Cache 中对应语句的 stmt_id 信息 | -| db_id | bigint(20) | NO | prepare 语句涉及到的数据库 ID | -| ps_sql | varchar(65536) | NO | prepare 的 SQL 信息 | -| param_count | bigint(20) | NO | prepare 的参数个数信息 | -| stmt_item_ref_count | bigint(20) | NO | stmt_item 的引用计数信息 | -| stmt_info_ref_count | bigint(20) | NO | stmt_info 的引用计数信息 | -| mem_hold | bigint(20) | NO | 该 prepare stmt 占用的内存大小 | -| stmt_type | bigint(20) | NO | 该 prepare stmt 的类型信息 | -| checksum | bigint(20) | NO | 该 prepare stmt 的 checksum | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/8.gv-sysstat.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/8.gv-sysstat.md deleted file mode 100644 index 34883ff86..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/8.gv-sysstat.md +++ /dev/null @@ -1,32 +0,0 @@ -gv$sysstat -=============================== - - - -功能 ------------ - -展示所有 OBServer 的租户级别的统计事件信息。 - -相关表/视图 ---------------- - -__all_virtual_sysstat - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------|-------------|----------------|------------------| -| CON_ID | bigint(20) | NO | 租户 ID | -| SVR_IP | varchar(32) | NO | 信息所在 Server 的 IP | -| SVR_PORT | bigint(20) | NO | 信息所在 Server 的端口号 | -| STATISTIC# | bigint(20) | NO | 统计事件的下标 | -| VALUE | bigint(20) | NO | 统计事件对应的结果数值 | -| STAT_ID | bigint(20) | NO | 统计事件的 ID | -| NAME | varchar(64) | NO | 统计事件的名称 | -| CLASS | bigint(20) | NO | 统计事件所属的类型 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/80.v-sql_workarea.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/80.v-sql_workarea.md deleted file mode 100644 index b67acc6c1..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/80.v-sql_workarea.md +++ /dev/null @@ -1,41 +0,0 @@ -v$sql_workarea -=================================== - - - -功能 ------------ - -之前受 SQL 自动内存管理负责执行的所有 Operator 的 workarea 统计信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------------|--------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------| -| address | varbinary(8) | NO | SQL 对应的 Handle 地址,目前未指定值 | -| hash_value | bigint(0) | NO | 语句的 Hash value 的值 | -| sql_id | varchar(32) | NO | SQL 语句的 SQL 唯一标示 | -| child_number | bigint(0) | NO | 该 cursor 的数量 | -| workarea_address | varbinary(8) | NO | workarea 地址 | -| operation_type | varchar(40) | NO | workarea 操作符类型,例如 Sort、Hash Join、Group by等 | -| operation_id | bigint(20) | NO | 计划树中识别操作符的唯一标示 | -| policy | varchar(10) | NO | workarea 的策略: * MANUAL * AUTO | -| estimated_optimal_size | bigint(20) | NO | 在最优情况下执行操作符的估算内存大小,单位:bytes | -| estimated_onepass_size | bigint(20) | NO | 在 Onepass 场景下,执行操作符估算内存大小(bytes) | -| last_memory_used | bigint(20) | NO | 游标在上次执行使用的内存大小,单位:bytes | -| last_execution | varchar(10) | NO | 上次执行时 workarea 选择的是 optimal、one pass 还是 multi passes | -| last_degree | bigint(20) | NO | 上次执行并行度 | -| total_executions | bigint(20) | NO | 总共执行使用 workarea 的次数 | -| optimal_executions | bigint(20) | NO | 最优场景下执行的次数 | -| onepass_executions | bigint(20) | NO | one pass 场景执行的次数 | -| multipasses_executions | bigint(20) | NO | multi passes 场景执行的次数 | -| active_time | bigint(20) | NO | workarea 活跃时的平均时间(s) | -| max_tempseg_size | bigint(20) | NO | workarea 使用时最大的临时磁盘空间,单位:bytes;如果是 NULL,则表示未使用临时空间 | -| last_tempseg_size | bigint(20) | NO | workarea 上次执行时使用的临时磁盘空间;如果是 NULL,则表示未使用临时空间 | -| con_id | bigint(20) | NO | 租户 ID | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/81.v-sql_workarea_active.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/81.v-sql_workarea_active.md deleted file mode 100644 index 8790da18f..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/81.v-sql_workarea_active.md +++ /dev/null @@ -1,41 +0,0 @@ -v$sql_workarea_active -========================================== - - - -功能 ------------ - -`v$sql_workarea_active` 视图展示当前活跃 Operator 的 Workarea 信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------|--------------|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| sql_hash_value | bigint(0) | NO | 被执行语句的 Hash 值,当前该值为 NULL。 | -| sql_id | varchar(32) | NO | SQL 语句的 SQL 唯一标示。 | -| sql_exec_start | date | NO | SQL 开始执行时间。 | -| sql_exec_id | bigint(20) | NO | SQL 执行唯一标示。 | -| workarea_address | varbinary(8) | NO | Workarea 的地址。 | -| operation_type | varchar(40) | NO | Workarea 的操作符类型,例如 Sort、Hash Join、Group by 等。 | -| operation_id | bigint(20) | NO | 计划树中识别操作符的唯一标示。 | -| policy | varchar(6) | NO | Workarea 的策略: * MANUAL * AUTO | -| sid | bigint(20) | NO | Session 的唯一标示。 | -| qcinst_id | bigint(0) | NO | 查询协调者的实例 ID。 | -| qcsid | bigint(0) | NO | 查询协调者 Session 标示 ID。 | -| active_time | bigint(20) | NO | Workarea 活跃时平均时间,单位:ms。 | -| work_area_size | bigint(20) | NO | 操作符使用 Workarea 的最大值,单位:bytes。 | -| expect_size | bigint(20) | NO | Workarea 期望的大小,单位:bytes。 | -| actual_mem_used | bigint(20) | NO | 申请 workarea 的内存量,单位:bytes。 | -| max_mem_used | bigint(20) | NO | 使用 Workarea 的最大内存使用量,单位:bytes。 | -| number_passes | bigint(20) | NO | Workarea 在哪个模式下运行: * 0:表示 optimal 模式 * 1:表示 one pass 模式 * ≥2:表示 multi pass 模式 | -| tempseg_size | bigint(20) | NO | Workarea 使用的临时空间大小,单位:bytes;如果为 NULL,表示没有发生写临时文件。 | -| tablespace | varchar(20) | NO | 写临时文件的表命名空间;如果为 NULL,表示没有发生写临时文件。 | -| segrfno# | bigint(0) | NO | 写临时文件相关的文件数量;NULL 表示没有发生写临时文件。 | -| segblk# | bigint(0) | NO | Workarea 创建临时文件的 Block 数量;NULL 表示没有发生写临时文件。 | -| con_id | bigint(20) | NO | 租户 ID。 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/82.v-sql_workarea_histogram.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/82.v-sql_workarea_histogram.md deleted file mode 100644 index 55d84b9c0..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/82.v-sql_workarea_histogram.md +++ /dev/null @@ -1,27 +0,0 @@ -v$sql_workarea_histogram -============================================= - - - -功能 ------------ - -展示之前所有 workarea 执行的统计信息,如在区间1M~2M之间全 in-memory 处理的次数、one-pass 次数等。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------------|------------|----------------|------------------------------------------| -| low_optimal_size | bigint(20) | NO | workarea 在 optimal 模式下最低内存量 | -| high_optimal_size | bigint(20) | NO | workarea 在 optimal 模式下最高内存量 | -| optimal_executions | bigint(20) | NO | workarea 在最低和最高区间的最优模式下执行的次数 | -| onepass_executions | bigint(20) | NO | workarea 在最低和最高区间的 one pass 模式下执行的次数 | -| multipasses_executions | bigint(20) | NO | workarea 在最低和最高区间的 multi passes 模式下执行的次数 | -| total_executions | bigint(20) | NO | workarea 总共执行的次数 | -| con_id | bigint(20) | NO | 租户 ID | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/83.v-ob_sql_workarea_memory_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/83.v-ob_sql_workarea_memory_info.md deleted file mode 100644 index 791ac3a85..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/83.v-ob_sql_workarea_memory_info.md +++ /dev/null @@ -1,26 +0,0 @@ -v$ob_sql_workarea_memory_info -================================================== - - - -**功能** - -用于查询 SQL workarea 总体的一些信息,包括最大可用内存、当前使用内存、当前 hold 内存等。通过该视图可以知道当前租户下 workarea 的使用情况,例如内存利用率等。 - -**字段说明** - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|------------------------|------------|----------------|--------------------------------------------------------------------------------------------------------------------------| -| max_workarea_size | bigint(20) | NO | 最大 workarea 内存,由参数决定可以使用多少内存 | -| workarea_hold_size | bigint(20) | NO | workarea 当前 hold 内存大小 **说明** 由于具体的使用量无法从内存管理模块获取到,故只能获取 hold 值。 | -| max_auto_workarea_size | bigint(20) | NO | auto 时,预计最大可用内存大小可以简单认为最大可用内存会根据公式 `max_work_area_size - hold + total_mem_used ` 进行计算得到,表示当前 workarea 情况下,auto 管理的最大内存大小 | -| mem_target | bigint(20) | NO | 当前 workarea 可用内存的目标大小,与 max_auto_work_area 的区别在于该值是 max_auto_work_area 的一定比例 | -| total_mem_used | bigint(20) | NO | 当前 auto 内存使用大小,这里是由 SQL 自动内存管理模块统计的大小,不是真正使用大小 | -| global_mem_bound | bigint(20) | NO | auto 模式下,全局最大可用内存大小 | -| drift_size | bigint(20) | NO | 当前需求内存变化大小,主要用来当波动一定范围,会自动触发重新计算 global bound size | -| workarea_count | bigint(20) | NO | 注册的 operator profile 个数 | -| manual_calc_count | bigint(20) | NO | 非定时触发的计算 global bound size 次数 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/84.v-ob_timestamp_service.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/84.v-ob_timestamp_service.md deleted file mode 100644 index 9fd293e0e..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/84.v-ob_timestamp_service.md +++ /dev/null @@ -1,23 +0,0 @@ -v$ob_timestamp_service -=========================================== - - - -功能 ------------ - -展示系统中各租户使用的时钟源和对应的值。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------|------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| tenant_id | bigint(20) | NO | 租户 ID | -| ts_type | varchar(9) | NO | 时钟源类型: * LOCAL * GLOBAL * HA GLOBAL | -| ts_value | bigint(20) | NO | 时钟值 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/85.v-server_schema_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/85.v-server_schema_info.md deleted file mode 100644 index ff6a820de..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/85.v-server_schema_info.md +++ /dev/null @@ -1,26 +0,0 @@ -v$server_schema_info -========================================= - - - -功能 ------------ - -展示本机的 Schema 信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------------------------|------------|----------------|----------------------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| REFRESHED_SCHEMA_VERSION | bigint(20) | NO | 租户已刷新的 Schema 版本 | -| RECEIVED_SCHEMA_VERSION | bigint(20) | NO | 租户应该要刷新的 Schema 版本 | -| SCHEMA_COUNT | bigint(20) | NO | 租户的 Schema 数量 | -| SCHEMA_SIZE | bigint(20) | NO | 租户的 Schema 大小 | -| MIN_SSTABLE_SCHEMA_VERSION | bigint(20) | NO | 租户 Sstable 上记录的最小 schema_version | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/86.v-merge_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/86.v-merge_info.md deleted file mode 100644 index 5df713822..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/86.v-merge_info.md +++ /dev/null @@ -1,33 +0,0 @@ -v$merge_info -================================= - - - -功能 ------------ - -展示 OceanBase 集群已经完成的合并或转储相关的统计信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为空** | **描述** | -|-------------------|---------------|------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| SVR_IP | varchar(32) | NO | 服务器 IP 地址 | -| SVR_PORT | bigint(20) | NO | 服务器端口号 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| TABLE_ID | bigint(20) | NO | 表 ID | -| PARTITION_ID | bigint(20) | NO | 分区 ID | -| TYPE | varchar(5) | NO | 合并或转储类型: * minor * major | -| ACTION | varchar(64) | NO | 合并或转储具体动作: * mini * mini minor * buffer minor * minor | -| VERSION | varchar(64) | NO | 合并或转储版本号 | -| START_TIME | timestamp(6) | NO | 合并或转储开始时间 | -| END_TIME | timestamp(6) | NO | 合并或转储结束时间 | -| MACRO_BLOCK_COUNT | bigint(20) | NO | 合并或转储宏块总数 | -| REUSE_PCT | decimal(26,2) | NO | 合并或转储宏块重用率 | -| PARALLEL_DEGREE | bigint(20) | NO | 合并或转储并行度 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/87.v-lock.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/87.v-lock.md deleted file mode 100644 index 32717e0af..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/87.v-lock.md +++ /dev/null @@ -1,29 +0,0 @@ -v$lock -=========================== - - - -功能 ------------ - -展示 OceanBase 数据库的行锁信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|----------|---------------------|----------------|-------------------| -| TABLE_ID | bigint(20) | NO | 表 ID | -| ADDR | varchar(512) | NO | 被锁对象的地址 | -| KADDR | bigint(20) unsigned | NO | 锁地址 | -| SID | bigint(20) | NO | 会话持有的 ID | -| TYPE | bigint(20) | NO | 0(行锁) | -| LMODE | bigint(20) | NO | 0(写锁) | -| REQUEST | bigint(0) | YES | NULL | -| CTIME | bigint(21) | NO | 加锁耗时 | -| BLOCK | bigint(20) | NO | 最早被阻塞的 session_id | -| CON_ID | bigint(20) unsigned | NO | 租户 ID | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/88.v-sql_monitor_statname.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/88.v-sql_monitor_statname.md deleted file mode 100644 index 088545805..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/88.v-sql_monitor_statname.md +++ /dev/null @@ -1,32 +0,0 @@ -v$sql_monitor_statname -=========================================== - - - -功能 ------------ - -本表用于解释 GV$SQL_PLAN_MONITOR 的 OTHERSTAT_X_ID 字段中数字的含义。 - -相关视图/表 ---------------- - -无 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------|--------------|----------------|---------------------------| -| CON_ID | null | NO | 租户 ID | -| ID | bigint(20) | NO | 字段 ID | -| GROUP_ID | bigint(20) | NO | 字段分类 ID 。同一类算子,会共享一个分类 ID | -| NAME | varchar(40) | NO | 字段名称 | -| DESCRIPTION | varchar(200) | NO | 字段详细描述 | -| TYPE | bigint(1) | NO | 保留字段 | -| FLAGS | bigint(1) | NO | 保留字段 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/89.v-restore_point.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/89.v-restore_point.md deleted file mode 100644 index 28409f2e5..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/89.v-restore_point.md +++ /dev/null @@ -1,24 +0,0 @@ -v$restore_point -==================================== - - - -功能 ------------ - -显示有关还原点的信息。 - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-----------|--------------|----------------|----------------| -| TENANT_ID | bigint(20) | YES | 租户 ID | -| SNAPSHOT | bigint(20) | NO | 创建还原点时的数据库 SCN | -| TIME | timestamp(6) | NO | 创建还原点时的时间 | -| NAME | varchar(512) | YES | 还原点名称 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/9.gv-sql_audit.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/9.gv-sql_audit.md deleted file mode 100644 index 8dcd21586..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/9.gv-sql_audit.md +++ /dev/null @@ -1,106 +0,0 @@ -gv$sql_audit -================================= - - - -功能 ------------ - -该视图用于展示所有 Server 上每一次 SQL 请求的来源、执行状态等统计信息。该视图是按照租户拆分的,除了系统租户,其他租户不能跨租户查询。 - -相关表/视图 ---------------- - -__all_virtual_sql_audit - -字段说明 -------------- - - - -| **字段名称** | **类型** | **是否可以为 NULL** | **描述** | -|-------------------------|---------------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| SVR_IP | varchar(32) | NO | IP 地址 | -| SVR_PORT | bigint(20) | NO | 端口号 | -| REQUEST_ID | bigint(20) | NO | 请求的 ID 号 | -| TRACE_ID | varchar(128) | NO | 该语句的 trace_id | -| SID | bigint(20) unsigned | NO | Session 连接 ID | -| CLIENT_IP | varchar(32) | NO | 发送请求的客户端 IP | -| CLIENT_PORT | bigint(20) | NO | 发送请求的客户端端口号 | -| TENANT_ID | bigint(20) | NO | 发送请求的租户 ID | -| TENANT_NAME | varchar(64) | NO | 发送请求的租户名称 | -| EFFECTIVE_TENANT_ID | bigint(20) | NO | 租户 ID | -| USER_ID | bigint(20) | NO | 发送请求的用户 ID | -| USER_NAME | varchar(64) | NO | 发送请求的用户名称 | -| USER_CLIENT_IP | varchar(32) | NO | 发送请求的客户端 IP | -| DB_ID | bigint(20) unsigned | DB_ID | 数据库 ID | -| DB_NAME | varchar(128) | DB_NAME | 数据库名称 | -| SQL_ID | varchar(32) | NO | 该 SQL 的 ID | -| QUERY_SQL | varchar(65536) | NO | 实际的 SQL 语句 | -| PLAN_ID | bigint(20) | NO | 执行计划的 ID | -| AFFECTED_ROWS | bigint(20) | NO | 影响行数 | -| RETURN_ROWS | bigint(20) | NO | 返回行数 | -| PARTITION_CNT | bigint(20) | NO | 该请求涉及的分区数 | -| RET_CODE | bigint(20) | NO | 执行结果返回码 | -| QC_ID | bigint(20) unsigned | NO | 并行执行场景下,调度器 ID | -| DFO_ID | bigint(20) | NO | 并行执行场景下,当前执行的子计划 ID | -| SQC_ID | bigint(20) | NO | 并行执行场景下,本地协调器 ID | -| WORKER_ID | bigint(20) | NO | 并行执行场景下,工作线程 ID | -| EVENT | varchar(64) | NO | 最长等待事件名称 | -| P1TEXT | varchar(64) | NO | 等待事件参数 1 | -| P1 | bigint(20) unsigned | NO | 等待事件参数 1 的值 | -| P2TEXT | varchar(64) | NO | 等待事件参数 2 | -| P2 | bigint(20) unsigned | NO | 等待事件参数 2 的值 | -| P3TEXT | varchar(64) | NO | 等待事件参数 3 | -| P3 | bigint(20) unsigned | NO | 等待事件参数 3 的值 | -| LEVEL | bigint(20) | NO | 等待事件的级别 | -| WAIT_CLASS_ID | bigint(20) | NO | 等待事件所属的 Class ID | -| WAIT_CLASS# | bigint(20) | NO | 等待事件所属的 Class 的下标 | -| WAIT_CLASS | varchar(64) | NO | 等待事件所属的 Class 名称 | -| STATE | varchar(19) | NO | 等待事件的状态 | -| WAIT_TIME_MICRO | bigint(20) | NO | 该等待事件所等待的时间,单位:微秒 | -| TOTAL_WAIT_TIME_MICRO | bigint(20) | NO | 执行过程所有等待的总时间,单位:微秒 | -| TOTAL_WAITS | bigint(20) | NO | 执行过程总等待的次数 | -| RPC_COUNT | bigint(20) | NO | 发送的 RPC 个数 | -| PLAN_TYPE | bigint(20) | NO | 执行计划类型: * local * remote * distribute | -| IS_INNER_SQL | tinyint(4) | NO | 是否为内部 SQL 请求 | -| IS_EXECUTOR_RPC | tinyint(4) | NO | 当前请求是否为 RPC 请求 | -| IS_HIT_PLAN | tinyint(4) | NO | 是否命中 plan_cache | -| REQUEST_TIME | bigint(20) | NO | 开始执行时间点 | -| ELAPSED_TIME | bigint(20) | NO | 接收到请求到执行结束所消耗的总时间 | -| NET_TIME | bigint(20) | NO | 发送 RPC 到接收到请求的时间 | -| NET_WAIT_TIME | bigint(20) | NO | 接收到请求到进入队列的时间 | -| QUEUE_TIME | bigint(20) | NO | 请求在队列的等待时间 | -| DECODE_TIME | bigint(20) | NO | 出队列后 decode 的时间 | -| GET_PLAN_TIME | bigint(20) | NO | 开始 process 到获得计划的时间 | -| EXECUTE_TIME | bigint(20) | NO | 计划执行所消耗的时间 | -| APPLICATION_WAIT_TIME | bigint(20) unsigned | NO | 所有 application 类事件的总时间 | -| CONCURRENCY_WAIT_TIME | bigint(20) unsigned | NO | 所有 concurrency 类事件的总时间 | -| USER_IO_WAIT_TIME | bigint(20) unsigned | NO | 所有 user_io 类事件的总时间 | -| SCHEDULE_TIME | bigint(20) unsigned | NO | 所有 Schedule 类事件的时间 | -| ROW_CACHE_HIT | bigint(20) | NO | 行缓存命中次数 | -| BLOOM_FILTER_CACHE_HIT | bigint(20) | NO | bloom filter 缓存命中次数 | -| BLOCK_CACHE_HIT | bigint(20) | NO | 块缓存命中次数 | -| BLOCK_INDEX_CACHE_HIT | bigint(20) | NO | 块索引缓存命中次数 | -| DISK_READS | bigint(20) | NO | 物理读次数 | -| RETRY_CNT | bigint(20) | NO | 重试次数 | -| TABLE_SCAN | tinyint(4) | NO | 判断该请求是否含全表扫描 | -| CONSISTENCY_LEVEL | bigint(20) | NO | 一致性级别 | -| MEMSTORE_READ_ROW_COUNT | bigint(20) | NO | MEMSTORE 中的读行数 | -| SSSTORE_READ_ROW_COUNT | bigint(20) | NO | SSSTORE 中连读的行数 | -| REQUEST_MEMORY_USED | bigint(20) | NO | 该请求消耗的内存 | -| EXPECTED_WORKER_COUNT | bigint(20) | NO | 请求期望的工作线程数 | -| USED_WORKER_COUNT | bigint(20) | NO | 请求实际使用的工作线程数 | -| SCHED_INFO | varchar(16384) | NO | 请求的调度信息 | -| FUSE_ROW_CACHE_HIT | bigint(20) | NO | 暂不支持该字段,字段默认为 NULL | -| PS_STMT_ID | bigint(20) | NO | 请求对应的 prepare id | -| TRANSACTION_HASH | bigint(20) unsigned | NO | 请求对应的事务的 Hash 值 | -| REQUEST_TYPE | bigint(20) | NO | 请求对应的类型: * 0:表示非法 * 1:表示是一个内部请求 * 2:表示是一个本地请求,例如,Local 计划 * 3:表示远程请求 * 4:表示分布式请求 * 5:表示 SQL 的 prepare 请求 * 6:表示 SQL 得到 execute stmt 请求 | -| IS_BATCHED_MULTI_STMT | tinyint(4) | NO | 是否进行 batch multi stmt 的优化 | -| OB_TRACE_INFO | varchar(4096) | NO | 用户设置的 Trace 信息 | -| PLAN_HASH | bigint(20) unsigned | NO | 执行计划的 Hash 值 | -| LOCK_FOR_READ_TIME | bigint(20) | NO | 读取数据时等待锁的耗时,单位:微秒 | -| WAIT_TRX_MIGRATE_TIME | bigint(20) | NO | 写入数据时,等待事务因为内部合并机制而需要冻结,冻结过程中位完成的事务需要搬迁出来的耗时,单位:微秒 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/90.v-ob_cluster_failover_info.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/90.v-ob_cluster_failover_info.md deleted file mode 100644 index 9713f2a22..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/90.v-ob_cluster_failover_info.md +++ /dev/null @@ -1,25 +0,0 @@ -v$ob_cluster_failover_info -=============================================== - - - -功能 ------------------------ - -v$ob_cluster_failover_info 用于展示每一次每个租户的 Failover 信息。 - -字段说明 -------------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|----------------|------------|------------|---------------------| -| failover# | bigint(20) | NO | Failover 操作的唯一标识 ID | -| tenant_id | bigint(20) | NO | 租户 ID | -| sys_table_scn | bigint(20) | NO | 系统表的快照点 | -| user_table_scn | bigint(20) | NO | 用户表的快照点 | -| schema_version | bigint(20) | NO | Schema 版本 | - - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/91.v-encrypted_tables.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/91.v-encrypted_tables.md deleted file mode 100644 index bc4ff0a21..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/91.v-encrypted_tables.md +++ /dev/null @@ -1,30 +0,0 @@ -v$encrypted_tables -======================================= - - - -功能 ------------------------ - -v$encrypted_tables 用于展示开启加密功能的表的加密状态。 - -字段说明 -------------------------- - - - -| **字段名称** | **类型** | **是否可以为空** | **描述** | -|------------------|---------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| TABLE_ID | bigint(20) | NO | 表 ID | -| TABLE_NAME | varchar(256) | NO | 表名称 | -| TABLESPACE_ID | bigint(20) | NO | 表空间 ID | -| ENCRYPTIONALG | varchar(30) | NO | 加密算法名: * AES-128 * AES-192 * AES-256 * SM4 | -| ENCRYPTED | varchar(3) | NO | 是否完成加密: * YES * NO | -| ENCRYPTEDKEY | varchar(33) | NO | 经过主密钥加密后的加密密钥 | -| MASTERKEYID | bigint(20) unsigned | NO | 主密钥版本 | -| BLOCKS_ENCRYPTED | decimal(20,0) | NO | 加密宏块的数量 | -| BLOCKS_DECRYPTED | decimal(21,0) | NO | 未加密宏块的数量 | -| STATUS | varchar(10) | | 加密状态: * NORMAL:正常状态 * ENCRYPTING:加密中 * DECRYPTING:解密中 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/92.v-encrypted_tablespaces.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/92.v-encrypted_tablespaces.md deleted file mode 100644 index bba46ecf1..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/92.v-encrypted_tablespaces.md +++ /dev/null @@ -1,28 +0,0 @@ -v$encrypted_tablespaces -============================================ - - - -功能 ------------------------ - -v$encrypted_tablespaces 用于展示开启加密功能的表空间的加密状态。 - -字段说明 -------------------------- - - - -| **字段名称** | **类型** | **是否可以为空** | **描述** | -|------------------|---------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| TENANT_ID | bigint(20) | NO | 租户 ID | -| TABLESPACE_ID | bigint(20) | NO | 表空间 ID | -| ENCRYPTIONALG | varchar(30) | NO | 加密算法名: * AES-128 * AES-192 * AES-256 * SM4 | -| ENCRYPTED | varchar(3) | NO | 是否完成加密: * YES * NO | -| ENCRYPTEDKEY | varchar(33) | NO | 经过主密钥加密后的加密密钥 | -| MASTERKEYID | bigint(20) unsigned | NO | 主密钥版本 | -| BLOCKS_ENCRYPTED | decimal(20,0) | NO | 加密宏块的数量 | -| BLOCKS_DECRYPTED | decimal(21,0) | NO | 未加密宏块的数量 | -| STATUS | varchar(10) | NO | 加密状态: * NORMAL:正常状态 * ENCRYPTING:加密中 * DECRYPTING:解密中 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/93.v-sstable.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/93.v-sstable.md deleted file mode 100644 index 9f66f7a47..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/93.v-sstable.md +++ /dev/null @@ -1,41 +0,0 @@ -v$sstable -============================== - - - -功能 ------------------------ - -`v$sstable` 视图用于展示租户的 SSTable 信息。 - -字段说明 -------------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|--------------------------------|---------------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| TABLE_TYPE | bigint(20) | NO | 表的类型 | -| TABLE_ID | bigint(20) | NO | 表 ID | -| TABLE_NAME | varchar(256) | NO | 表名 | -| TENANT_ID | bigint(20) | NO | 租户 ID | -| PARTITION_ID | bigint(20) | NO | 分区 ID | -| INDEX_ID | bigint(20) | NO | 主表或索引表的 ID | -| BASE_VERSION | bigint(20) | NO | 该表中存储数据的 `trans_version` 范围的最小值 | -| MULTI_VERSION_START | bigint(20) | NO | 该表中多版本数据的起始 `trans_version` | -| SNAPSHOT_VERSION | bigint(20) | NO | 该表中存储数据的 `trans_version` 范围的最大值 | -| START_LOG_TS | bigint(20) unsigned | NO | 该表中数据的日志时间戳范围的左边界 | -| END_LOG_TS | bigint(20) unsigned | NO | 该表中数据的日志时间戳范围的右边界 | -| MAX_LOG_TS | bigint(20) unsigned | NO | 该表中数据的日志时间戳范围的最大值 | -| VERSION | bigint(20) | NO | 该表的版本 | -| LOGICAL_DATA_VERSION | bigint(20) | NO | 该表的逻辑数据版本 | -| SIZE | bigint(20) | NO | 该表的大小 | -| IS_ACTIVE | bigint(20) | NO | 该表是否处于活跃状态 | -| REF | bigint(20) | NO | 该表引用的计数 | -| WRITE_REF | bigint(20) | NO | 该表写引用的计数 | -| TRX_COUNT | bigint(20) | NO | 该表上活跃事务的数量 | -| PENDING_LOG_PERSISTING_ROW_CNT | bigint(20) | NO | 持久化 Redo Log 的回收数量 | -| UPPER_TRANS_VERSION | bigint(20) | NO | 该表中存储数据的 `trans_version` 的上限 | -| CONTAIN_UNCOMMITTED_ROW | tinyint(4) | NO | 该表中是否包含未提交的事务行: * 0:表示该表中不包含未提交的事务行 * 1:表示该表中包含未提交的事务行 | - - diff --git a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/94.v-ob_trans_table_status.md b/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/94.v-ob_trans_table_status.md deleted file mode 100644 index f9a1e95ba..000000000 --- a/docs/docs-cn/13.reference-guide/1.system-view/3.performance-view/94.v-ob_trans_table_status.md +++ /dev/null @@ -1,25 +0,0 @@ -v$ob_trans_table_status -============================================ - - - -功能 ------------------------ - -从 OceanBase 数据库 V3.0.0 版本开始,系统开始支持转储未提交的事务,而未提交事务中的数据可能会转储到 SSTable 中,故将这些未提交的事务称为脏事务,一般比较大的事务容易成为脏事务。 - -`v$ob_trans_table_status` 视图用于展示当前租户每次冻结后产生的脏事务的详细信息。 - -字段说明 -------------------------- - - - -| 字段名称 | 类型 | 是否可以为 NULL | 描述 | -|--------------|------------|------------|---------------| -| TABLE_ID | bigint(20) | NO | 表 ID | -| PARTITION_ID | bigint(20) | NO | 分区 ID | -| END_LOG_ID | bigint(20) | NO | 已持久化的事务日志的 ID | -| TRANS_CNT | bigint(20) | NO | 脏事务的数量 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/1.overview-of-system-variables.md b/docs/docs-cn/13.reference-guide/2.system-variable/1.overview-of-system-variables.md deleted file mode 100644 index ef516960d..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/1.overview-of-system-variables.md +++ /dev/null @@ -1,35 +0,0 @@ -系统变量概述 -=========================== - - - -OceanBase 数据库的系统变量主要分为全局变量和 Session 变量: - -* 全局变量:表示 Global 级别的修改,数据库同一租户内的不同用户共享全局变量。全局变量的修改不会随会话的退出而失效。此外,全局变量修改后,对当前已打开的 Session 不生效,需要重新建立 Session 才能生效。 - - - -* Session 变量:表示 Session 级别的修改。当客户端连接到数据库后,数据库会复制全局变量来自动生成 Session 变量。Session 变量的修改仅对当前 Session 生效。 - - - - - - -与系统配置项对比 ------------------------------ - - - -| 对比项 | 系统配置项 | 系统变量 | -|------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 生效范围 | 分为集群、Zone、机器和租户。 | 分为租户的 Global 或 Session 级别。 | -| 生效方式 | * 动态生效:`edit_level` 为`dynamic_effective`。 * 重启生效:`edit_level` 为 `static_effective` 。 | * 设置 Session 级别的变量仅对当前 Session 有效,对其他 Session 无效。 * 设置 Global 级别的变量对当前 Session 无效,需要重新登录建立新的 Session 才会生效。 | -| 修改方式 | * 支持通过 SQL 语句修改,示例如下: ```sql obclient> Alter SYSTEM SET schema_history_expire_time='1h' ``` * 支持通过启动参数修改,示例如下: ```sql cd /home/admin && ./bin/observer -o "schema_history_expire_time='1h'" ``` | 仅支持通过 SQL 语句修改,示例如下: * MySQL 模式 ```sql obclient> SET ob_query_timeout = 20000000; obclient> SET GLOBAL ob_query_timeout = 20000000; ``` * Oracle 模式 ```sql obclient> SET ob_query_timeout = 20000000; obclient> ALTER SYSTEM SET ob_query_timeout = 20000000; ``` | -| 持久化 | 持久化到内部表与配置文件,可以在 `/home/admin/oceanbase/etc/observer.config.bin` 与 `/home/admin/oceanbase/etc/observer.config.bin.history` 文件中查询该配置项。 | 仅 GLOBAL 级别的变量会持久化,SESSION 级别的变量不会进行持久化。 | -| 生命周期 | 长,从进程启动到退出。 | 短,需要租户的 Schema 创建成功以后才生效。 | -| 查询方式 | 可以使用 `SHOW PARAMETERS` 语句查询。 | 可以使用 `SHOW [GLOBAL] VARIABLES` 语句查询。 | - - - -本章主要介绍 OceanBase 数据库中的所有系统变量及其缺省值说明(包括参数含义、取值范围和使用说明等)。系统变量的查看和设置相关操作,请参见 [租户管理变量](../../6.administrator-guide/3.basic-database-management/5.tenants/9.tenant-management-variables.md)章节。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/10.character_set_system.md b/docs/docs-cn/13.reference-guide/2.system-variable/10.character_set_system.md deleted file mode 100644 index 376bcb466..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/10.character_set_system.md +++ /dev/null @@ -1,15 +0,0 @@ -character_set_system -========================================= - -character_set_system 设置服务器使用的字符集。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | string | -| 默认值 | utf8mb4 | -| 取值范围 | utf8mb4 | -| 生效范围 | * GLOBAL * SESSION | -| 是否可以修改 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/100.parallel_servers_target.md b/docs/docs-cn/13.reference-guide/2.system-variable/100.parallel_servers_target.md deleted file mode 100644 index e202a2493..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/100.parallel_servers_target.md +++ /dev/null @@ -1,14 +0,0 @@ -parallel_servers_target -============================================ - -parallel_servers_target 用于设置每个 Server 上的大查询排队条件。当并行执行(Parallel eXecution,PX)线程池中有指定的空闲线程数时才调度新查询。 - - -| **属性** | **描述** | -|--------|----------------------------| -| 参数类型 | int | -| 默认值 | 0 | -| 取值范围 | \[0, 9223372036854775807\] | -| 生效范围 | GLOBAL | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/101.ob_trx_idle_timeout.md b/docs/docs-cn/13.reference-guide/2.system-variable/101.ob_trx_idle_timeout.md deleted file mode 100644 index 6d7063468..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/101.ob_trx_idle_timeout.md +++ /dev/null @@ -1,16 +0,0 @@ -ob_trx_idle_timeout -======================================== - -ob_trx_idle_timeout 用于设置事务空闲超时时间,即事务中两条语句之间的执行间隔超过该值时超时,单位为微秒。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 120000000 | -| 取值范围 | \[100000000,+∞) | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/102.block_encryption_mode.md b/docs/docs-cn/13.reference-guide/2.system-variable/102.block_encryption_mode.md deleted file mode 100644 index 9f22a9d02..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/102.block_encryption_mode.md +++ /dev/null @@ -1,16 +0,0 @@ -block_encryption_mode -========================================== - -block_encryption_mode 用于指定在函数 aes_encrypt 和 aes_decrypt 中使用的加密算法。 - - -| **属性** | **描述** | -|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | enum | -| 默认值 | aes-128-ecb | -| 取值范围 | * aes-128-ecb * aes-192-ecb * aes-256-ecb * aes-128-cbc * aes-192-cbc * aes-256-cbc * aes-128-cfb1 * aes-192-cfb1 * aes-256-cfb1 * aes-128-cfb8 * aes-192-cfb8 * aes-256-cfb8 * aes-128-cfb128 * aes-192-cfb128 * aes-256-cfb128 * aes-128-ofb * aes-192-ofb * aes-256-ofb | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/103.ob_reserved_meta_memory_percentage.md b/docs/docs-cn/13.reference-guide/2.system-variable/103.ob_reserved_meta_memory_percentage.md deleted file mode 100644 index 3fda67f04..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/103.ob_reserved_meta_memory_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_reserved_meta_memory_percentage -======================================================= - -ob_reserved_meta_memory_percentage 用于设置租户预留内存的比例,主要存储 Meta 相关的结构信息。 - - -| **属性** | **描述** | -|---------|----------| -| 参数类型 | int | -| 默认值 | 10 | -| 取值范围 | \[1,100) | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/104.ob_check_sys_variable.md b/docs/docs-cn/13.reference-guide/2.system-variable/104.ob_check_sys_variable.md deleted file mode 100644 index aa49058f7..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/104.ob_check_sys_variable.md +++ /dev/null @@ -1,21 +0,0 @@ -ob_check_sys_variable -========================================== - - -**说明** - - - -该变量暂未使用。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 0 * 1 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/105.tracefile_identifier.md b/docs/docs-cn/13.reference-guide/2.system-variable/105.tracefile_identifier.md deleted file mode 100644 index 56c383e0e..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/105.tracefile_identifier.md +++ /dev/null @@ -1,17 +0,0 @@ -tracefile_identifier -========================================= - -tracefile_identifier 用于在日志中增加指定内容,便于筛选行迭代跟踪日志。 - - -| **属性** | **描述** | -|---------|---------| -| 参数类型 | varchar | -| 默认值 | 空字符串 | -| 取值范围 | NULL | -| 生效范围 | SESSION | -| 是否参与序列化 | 是 | - - - -使用 TRACING、STAT 两个 HINT 能够指示执行器在算子执行过程中打印每一行内容,为了让这些内容易于搜索识别,可以使用 tracefile_identifier 指定一个字符串,例如 `XXXYYYZZZ` 、 `MY_TRACE` 等和行内容一起输出到日志中,易于搜索。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/106.transaction_isolation.md b/docs/docs-cn/13.reference-guide/2.system-variable/106.transaction_isolation.md deleted file mode 100644 index d5d9be484..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/106.transaction_isolation.md +++ /dev/null @@ -1,15 +0,0 @@ -transaction_isolation -========================================== - -transaction_isolation 用于设置事务的隔离级别。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | varchar | -| 默认值 | READ-COMMITTED | -| 取值范围 | * READ-UNCOMMITTED * READ-COMMITTED * REPEATABLE-READ * SERIALIZABLE | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/107.ob_trx_lock_timeout.md b/docs/docs-cn/13.reference-guide/2.system-variable/107.ob_trx_lock_timeout.md deleted file mode 100644 index 3e82ea3c3..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/107.ob_trx_lock_timeout.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_trx_lock_timeout -======================================== - -ob_trx_lock_timeout 用于设置事务的等锁超时时长,单位为微秒。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | -1 | -| 取值范围 | 有效取值范围:\[0,+∞) | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/108.validate_password_check_user_name.md b/docs/docs-cn/13.reference-guide/2.system-variable/108.validate_password_check_user_name.md deleted file mode 100644 index 395e6cbdf..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/108.validate_password_check_user_name.md +++ /dev/null @@ -1,15 +0,0 @@ -validate_password_check_user_name -====================================================== - -validate_password_check_user_name 用于设置用户密码是否可以和用户名相同。 - - -| **属性** | **描述** | -|---------|-----------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | enum | -| 默认值 | on | -| 取值范围 | * on:表示用户密码可以和用户名相同 * off:表示用户密码不可以和用户名相同 | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/109.validate_password_length.md b/docs/docs-cn/13.reference-guide/2.system-variable/109.validate_password_length.md deleted file mode 100644 index 05bf341e8..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/109.validate_password_length.md +++ /dev/null @@ -1,15 +0,0 @@ -validate_password_length -============================================= - -validate_password_length 设置用户密码最小长度。 - - -| **属性** | **描述** | -|---------|------------------| -| 参数类型 | uint | -| 默认值 | 0 | -| 取值范围 | \[0,2147483647\] | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/11.collation_connection.md b/docs/docs-cn/13.reference-guide/2.system-variable/11.collation_connection.md deleted file mode 100644 index 828e60b5e..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/11.collation_connection.md +++ /dev/null @@ -1,18 +0,0 @@ -collation_connection -========================================= - -collation_connection 用于设置连接使用的字符集和字符序。 - - -| **属性** | **描述** | -|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | string | -| 默认值 | utf8mb4_general_ci | -| 取值范围 | * utf8mb4_general_ci * utf8mb4_bin * utf8mb4_unicode_ci * gbk_bin * gbk_chinese_ci * gb18030_bin * gb18030_chinese_ci * utf16_general_ci * utf16_bin * utf16_unicode_ci * binary | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | -| 是否可以为空 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/110.validate_password_mixed_case_count.md b/docs/docs-cn/13.reference-guide/2.system-variable/110.validate_password_mixed_case_count.md deleted file mode 100644 index 6aab8c88a..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/110.validate_password_mixed_case_count.md +++ /dev/null @@ -1,16 +0,0 @@ -validate_password_mixed_case_count -======================================================= - -validate_password_mixed_case_count 用于设置用户密码至少包含的大写字母个数以及至少包含的小写字母个数。 - - -| **属性** | **描述** | -|---------|------------------| -| 参数类型 | uint | -| 默认值 | 0 | -| 取值范围 | \[0,2147483647\] | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/111.validate_password_number_count.md b/docs/docs-cn/13.reference-guide/2.system-variable/111.validate_password_number_count.md deleted file mode 100644 index 93f52ab3f..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/111.validate_password_number_count.md +++ /dev/null @@ -1,15 +0,0 @@ -validate_password_number_count -=================================================== - -validate_password_number_count 用于设置用户密码至少包含的数字个数。 - - -| **属性** | **描述** | -|---------|------------------| -| 参数类型 | uint | -| 默认值 | 0 | -| 取值范围 | \[0,2147483647\] | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/112.validate_password_policy.md b/docs/docs-cn/13.reference-guide/2.system-variable/112.validate_password_policy.md deleted file mode 100644 index a4cab8122..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/112.validate_password_policy.md +++ /dev/null @@ -1,15 +0,0 @@ -validate_password_policy -============================================= - -validate_password_policy 用于设置密码检查策略。 - - -| **属性** | **描述** | -|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | enum | -| 默认值 | LOW | -| 取值范围 | * LOW:表示仅包含密码常见的检测 * MEDIUM:表示包括密码长度检测、大写字母个数检测、小写字母个数检测、数字个数检测、特殊字符个数检测、用户名密码相同检测 | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/113.validate_password_special_char_count.md b/docs/docs-cn/13.reference-guide/2.system-variable/113.validate_password_special_char_count.md deleted file mode 100644 index cea5d10ce..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/113.validate_password_special_char_count.md +++ /dev/null @@ -1,15 +0,0 @@ -validate_password_special_char_count -========================================================= - -validate_password_special_char_count 用于设置用户密码至少包含的特殊字符个数。 - - -| **属性** | **描述** | -|---------|------------------| -| 参数类型 | uint | -| 默认值 | 0 | -| 取值范围 | \[0,2147483647\] | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/114.default_password_lifetime.md b/docs/docs-cn/13.reference-guide/2.system-variable/114.default_password_lifetime.md deleted file mode 100644 index 4ff78a487..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/114.default_password_lifetime.md +++ /dev/null @@ -1,15 +0,0 @@ -default_password_lifetime -============================================== - -default_password_lifetime 用于设置密码的过期时间。 - - -| **属性** | **描述** | -|---------|-------------| -| 参数类型 | uint | -| 默认值 | 0 | -| 取值范围 | \[0,65535\] | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/115.ob_trace_info.md b/docs/docs-cn/13.reference-guide/2.system-variable/115.ob_trace_info.md deleted file mode 100644 index 08339e179..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/115.ob_trace_info.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_trace_info -================================== - -ob_trace_info 用于透传 trace 信息,该信息最终可透持久化到 REDO 日志中。 - - -| **属性** | **描述** | -|--------|-------------------| -| 参数类型 | varchar | -| 默认值 | 空字符串 | -| 取值范围 | 字符串长度为\[0, 4096\] | -| 生效范围 | SESSION | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/116.secure_file_priv.md b/docs/docs-cn/13.reference-guide/2.system-variable/116.secure_file_priv.md deleted file mode 100644 index 1e5168218..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/116.secure_file_priv.md +++ /dev/null @@ -1,35 +0,0 @@ -secure_file_priv -===================================== - -secure_file_priv 控制导入或导出到文件时可以访问的路径。仅 DBA 可以设置该变量,其他人无法设置。 - - -| **属性** | **描述** | -|-----------|---------| -| 参数类型 | varchar | -| 默认值 | NULL | -| 取值范围 | ALL | -| 生效范围 | GLOBAL | -| 是否影响计划的生成 | 是 | -| 是否可为空 | 是 | - - - -对于该变量的值: - -* 如果设置为空串,则表示没有限制,任意路径均可以访问。 - - - -* 如果设置为路径名,则仅该路径下的文件可以被导入或导出。 - - - -* 如果设置为 `NULL`,则表示导入、导出被禁用。 - - - - - - -新建租户时,默认值将被设为 `NULL`,即导入、导出被禁用。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/117.ob_pl_block_timeout.md b/docs/docs-cn/13.reference-guide/2.system-variable/117.ob_pl_block_timeout.md deleted file mode 100644 index a4f1445ce..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/117.ob_pl_block_timeout.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_pl_block_timeout -======================================== - -ob_pl_block_timeout 用于设置 PL 的最大超时时间,单位 us。 - - -| 属性 | 描述 | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 3216672000000000 | -| 取值范围 | \[0, 9223372036854775807\] | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/118.performance_schema.md b/docs/docs-cn/13.reference-guide/2.system-variable/118.performance_schema.md deleted file mode 100644 index f783416bc..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/118.performance_schema.md +++ /dev/null @@ -1,15 +0,0 @@ -performance_schema -======================================= - -performance_schema 用于向客户端声明是否支持 performance 信息的查询。 - - -| 属性 | 描述 | -|--------|-----------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | OFF | -| 取值范围 | * ON:支持 * OFF:不支持 | -| 生效范围 | GLOBAL | -| 是否重启生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/119.transaction_read_only.md b/docs/docs-cn/13.reference-guide/2.system-variable/119.transaction_read_only.md deleted file mode 100644 index b8c65696f..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/119.transaction_read_only.md +++ /dev/null @@ -1,23 +0,0 @@ -transaction_read_only -========================================== - -transaction_read_only 配置项用于控制是否只允许开启只读事务。 -**注意** - - - -当前该变量暂未启用,即设置后不会生效。 - - -| 属性 | 描述 | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | False | -| 取值范围 | * True * False | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是,即远程执行、分布式执行场景下,变量会参与序列化 | -| 是否重启生效 | 否 | - - - -当 transaction_read_only 设置为 `True` 时,不允许执行 DML 语句。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/12.collation_database.md b/docs/docs-cn/13.reference-guide/2.system-variable/12.collation_database.md deleted file mode 100644 index 896b93e2c..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/12.collation_database.md +++ /dev/null @@ -1,16 +0,0 @@ -collation_database -======================================= - -collation_database 设置创建数据库默认字符集和字符序。 - - -| **属性** | **描述** | -|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | string | -| 默认值 | utf8mb4_general_ci | -| 取值范围 | * utf8mb4_general_ci * utf8mb4_bin * utf8mb4_unicode_ci * gbk_bin * gbk_chinese_ci * gb18030_bin * gb18030_chinese_ci * utf16_general_ci * utf16_bin * utf16_unicode_ci * binary | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否可以为空 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/120.resource_manager_plan.md b/docs/docs-cn/13.reference-guide/2.system-variable/120.resource_manager_plan.md deleted file mode 100644 index a6c64aafa..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/120.resource_manager_plan.md +++ /dev/null @@ -1,17 +0,0 @@ -resource_manager_plan -========================================== - -`resource_manager_plan` 用于激活资源管理计划,以适当的参数限制不同负载使用 CPU 的额度。 - - -| 属性 | 描述 | -|--------|---------------| -| 参数类型 | varchar | -| 默认值 | "" | -| 取值范围 | N/A | -| 生效范围 | GLOBAL | -| 是否重启生效 | 否,设置后 10s 内生效 | - - - -租户内的普通线程和并行执行线程会相互抢占 CPU 资源,通过为租户指定资源隔离计划,可以控制资源抢占策略,限制资源的使用量。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/13.collation_server.md b/docs/docs-cn/13.reference-guide/2.system-variable/13.collation_server.md deleted file mode 100644 index 5b2575988..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/13.collation_server.md +++ /dev/null @@ -1,16 +0,0 @@ -collation_server -===================================== - -collation_server 用于设置服务器默认字符集和字符序。 - - -| **属性** | **描述** | -|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | string | -| 默认值 | utf8mb4_general_ci | -| 取值范围 | * utf8mb4_general_ci * utf8mb4_bin * utf8mb4_unicode_ci * gbk_bin * gbk_chinese_ci * gb18030_bin * gb18030_chinese_ci * utf16_general_ci * utf16_bin * utf16_unicode_ci * binary | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否可以为空 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/14.interactive_timeout.md b/docs/docs-cn/13.reference-guide/2.system-variable/14.interactive_timeout.md deleted file mode 100644 index 7026fb806..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/14.interactive_timeout.md +++ /dev/null @@ -1,14 +0,0 @@ -interactive_timeout -======================================== - -interactive_timeout 用于设置服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在 mysql_real_connect() 中使用 CLIENT_INTERACTIVE 选项的客户端。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 28800 | -| 取值范围 | \[1, 31536000\] | -| 生效范围 | * GLOBAL * SESSION | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/15.last_insert_id.md b/docs/docs-cn/13.reference-guide/2.system-variable/15.last_insert_id.md deleted file mode 100644 index 49e5caf01..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/15.last_insert_id.md +++ /dev/null @@ -1,14 +0,0 @@ -last_insert_id -=================================== - -last_insert_id 用于返回本 Session 最后一次插入的自增字段值。 - - -| **属性** | **描述** | -|--------|-----------------------------| -| 参数类型 | unit | -| 默认值 | 0 | -| 取值范围 | \[0, 18446744073709551615\] | -| 生效范围 | SESSION | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/16.max_allowed_packet.md b/docs/docs-cn/13.reference-guide/2.system-variable/16.max_allowed_packet.md deleted file mode 100644 index 4c39d7e6c..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/16.max_allowed_packet.md +++ /dev/null @@ -1,23 +0,0 @@ -max_allowed_packet -======================================= - -max_allowed_packet 用于设置最大网络包大小,单位是 Byte。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 4194304 | -| 取值范围 | \[1024,1073741824\] | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - - -**说明** - - - -该变量不能通过 `ALTER SESSION SET xxx = yyy; `语句的方式使其仅在当前 Session 生效,只能通过 `SET GLOBAL xxx = yyy` 语句这种全局生效的修改方式。 使用时一般客户端与 Server 端均需要调整。 - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/17.sql_mode.md b/docs/docs-cn/13.reference-guide/2.system-variable/17.sql_mode.md deleted file mode 100644 index f6583d061..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/17.sql_mode.md +++ /dev/null @@ -1,14 +0,0 @@ -sql_mode -============================= - -sql_mode 用于设置 SQL 模式,不同的 SQL 模式对于插入等行为有很大影响。 - - -| **属性** | **描述** | -|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | varchar | -| 默认值 | STRICT_ALL_TABLES | -| 取值范围 | * STRICT_ALL_TABLES * STRICT_TRANS_TABLES * ONLY_FULL_GROUP_BY * PAD_CHAR_TO_FULL_LENGTH | -| 生效范围 | * GLOBAL * SESSION | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/18.time_zone.md b/docs/docs-cn/13.reference-guide/2.system-variable/18.time_zone.md deleted file mode 100644 index 401b26265..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/18.time_zone.md +++ /dev/null @@ -1,15 +0,0 @@ -time_zone -============================== - -time_zone 用于设置当前租户会话使用的时区,支持 `'+08:00' `的 offset 形式和 `Asia/Shanghai `的地域形式取值。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | varchar | -| 默认值 | +8:00 | -| 取值范围 | -12:59 \~ +13:00 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/19.tx_isolation.md b/docs/docs-cn/13.reference-guide/2.system-variable/19.tx_isolation.md deleted file mode 100644 index be72aefe6..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/19.tx_isolation.md +++ /dev/null @@ -1,16 +0,0 @@ -tx_isolation -================================= - -tx_isolation 用于设置事务隔离级别。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | varchar | -| 默认值 | READ-COMMITTED | -| 取值范围 | * READ-UNCOMMITTED * READ-COMMITTED * REPEATABLE-READ * SERIALIZABLE | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/2.auto_increment_increment-1.md b/docs/docs-cn/13.reference-guide/2.system-variable/2.auto_increment_increment-1.md deleted file mode 100644 index 35abfa223..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/2.auto_increment_increment-1.md +++ /dev/null @@ -1,16 +0,0 @@ -auto_increment_increment -============================================= - -auto_increment_increment 用于设置自增步长,仅用于 MySQL 客户端登录。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | uint | -| 默认值 | 1 | -| 取值范围 | \[1, 65535\] | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/20.version_comment.md b/docs/docs-cn/13.reference-guide/2.system-variable/20.version_comment.md deleted file mode 100644 index eb6204219..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/20.version_comment.md +++ /dev/null @@ -1,16 +0,0 @@ -version_comment -==================================== - -version_comment 用于设置 OBServer 的版本信息。 - - -| **属性** | **描述** | -|--------|-----------------| -| 参数类型 | varchar | -| 默认值 | OceanBase 1.0.0 | -| 取值范围 | N/A | -| 生效范围 | GLOBAL | -| 是否可修改 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/21.wait_timeout.md b/docs/docs-cn/13.reference-guide/2.system-variable/21.wait_timeout.md deleted file mode 100644 index c4c1c95a1..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/21.wait_timeout.md +++ /dev/null @@ -1,16 +0,0 @@ -wait_timeout -================================= - -wait_timeout 用于设置服务器关闭非交互连接之前等待活动的秒数。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 28800 | -| 取值范围 | \[1, 31536000\] | -| 生效范围 | * GLOBAL * SESSION | - - - -在会话启动时,会根据全局 wait_timeout 的值或全局 interactive_timeout 的值来初始化会话 wait_timeout 的值,具体根据全局 wait_timeout 的值还是全局 interactive_timeout 的值取决于客户端类型。客户端类型由 `mysql_real_connect()` 的连接选项 CLIENT_INTERACTIVE 定义。 interactive_timeout 变量相关信息请参见 **[](gi9a68)** [interactive_timeout](../../14.reference-guide-oracle-mode/2.system-variable-1/13.interactive_timeout-1.md)。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/22.binlog_row_image.md b/docs/docs-cn/13.reference-guide/2.system-variable/22.binlog_row_image.md deleted file mode 100644 index 6d6b69b81..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/22.binlog_row_image.md +++ /dev/null @@ -1,25 +0,0 @@ -binlog_row_image -===================================== - -binlog_row_image 用于控制是否记录全列日志。 - -全列日志与非全列日志的定义如下: - -对于 update/delete 的 DML 语句,如果 OBServer 同时记录了所有列的新值和旧值,则称之为全列日志;如果 OBServer 只记录了新值而没有旧值,则为非全列日志。 - - -| **属性** | **描述** | -|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | enum | -| 默认值 | FULL | -| 取值范围 | * FULL:表示记录所有列 * MINIMAL:表示只记录 DML 操作中修改的列,提升主从复制吞吐量,减少 binlog 大小、网络资源和服务器内存占用 * NOBLOB:目前暂不支持 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与消息序列化 | 是 | -| 是否影响 SQL 执行计划生成 | 是 | - - -**说明** - - - -通过 `SET GLOBAL binlog_row_image= 'xxx' `命令修改变量后,不会影响已连接的 Session,包括发起修改的 Session。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/23.character_set_filesystem.md b/docs/docs-cn/13.reference-guide/2.system-variable/23.character_set_filesystem.md deleted file mode 100644 index 41342b809..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/23.character_set_filesystem.md +++ /dev/null @@ -1,15 +0,0 @@ -character_set_filesystem -============================================= - -character_set_filesystem 用于设置文件系统字符集类型。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | string | -| 默认值 | BINARY | -| 取值范围 | BINARY | -| 生效范围 | * GLOBAL * SESSION | -| 是否可以为空 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/24.connect_timeout.md b/docs/docs-cn/13.reference-guide/2.system-variable/24.connect_timeout.md deleted file mode 100644 index 8a1f54b06..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/24.connect_timeout.md +++ /dev/null @@ -1,14 +0,0 @@ -connect_timeout -==================================== - -connect_timeout 用于设置连接超时时间,单位为微妙。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 10 | -| 取值范围 | \[2, 31536000\] | -| 生效范围 | * GLOBAL * SESSION | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/25.datadir.md b/docs/docs-cn/13.reference-guide/2.system-variable/25.datadir.md deleted file mode 100644 index e59f9c1bb..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/25.datadir.md +++ /dev/null @@ -1,20 +0,0 @@ -datadir -============================ - -datadir 用于设置数据存储的本地磁盘路径。 -**说明** - - - -该变量仅用于兼容,OceanBase 数据库当前暂未实现该变量的功能。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | varchar | -| 默认值 | /usr/local/mysql/data/ | -| 取值范围 | N/A | -| 生效范围 | * GLOBAL * SESSION | -| 是否可修改 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/26.debug_sync.md b/docs/docs-cn/13.reference-guide/2.system-variable/26.debug_sync.md deleted file mode 100644 index 59ee95e64..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/26.debug_sync.md +++ /dev/null @@ -1,21 +0,0 @@ -debug_sync -=============================== - -debug_sync 用于在 debug 时设置同步点,与 MySQL 兼容。 -**说明** - - - -只有 debug_sync_timeout 配置项的值不为 0 时,该变量的设置才有效。 - - -| **属性** | **描述** | -|--------|------------| -| 参数类型 | varchar | -| 默认值 | 空字符串 | -| 取值范围 | 无 | -| 生效范围 | SESSION | -| 是否可见 | 否,所有租户均不可见 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/27.div_precision_increment.md b/docs/docs-cn/13.reference-guide/2.system-variable/27.div_precision_increment.md deleted file mode 100644 index 404cdab52..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/27.div_precision_increment.md +++ /dev/null @@ -1,17 +0,0 @@ -div_precision_increment -============================================ - -div_precision_increment 用于设置除法结果精度在被除数精度基础上的增量,是 MySQL 兼容功能。 - - -| **属性** | **描述** | -|----------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 4 | -| 取值范围 | \[0, 30\] | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/28.explicit_defaults_for_timestamp.md b/docs/docs-cn/13.reference-guide/2.system-variable/28.explicit_defaults_for_timestamp.md deleted file mode 100644 index dec5d6a14..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/28.explicit_defaults_for_timestamp.md +++ /dev/null @@ -1,17 +0,0 @@ -explicit_defaults_for_timestamp -==================================================== - -explicit_defaults_for_timestamp 用于指定 timestamp 数据类型在处理默认值和空值时是否启用非标准行为。 - - -| **属性** | **描述** | -|----------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | ON | -| 取值范围 | * OFF:不启用 * ON:启用 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/29.group_concat_max_len.md b/docs/docs-cn/13.reference-guide/2.system-variable/29.group_concat_max_len.md deleted file mode 100644 index da9aac0a7..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/29.group_concat_max_len.md +++ /dev/null @@ -1,15 +0,0 @@ -group_concat_max_len -========================================= - -group_concat_max_len 用于设置允许的 GROUP_CONCAT() 函数结果的最大长度,单位为字节。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | uint | -| 默认值 | 1024 | -| 取值范围 | \[4, 18446744073709551615\] | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/3.auto_increment_offset.md b/docs/docs-cn/13.reference-guide/2.system-variable/3.auto_increment_offset.md deleted file mode 100644 index 408714a20..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/3.auto_increment_offset.md +++ /dev/null @@ -1,15 +0,0 @@ -auto_increment_offset -========================================== - -auto_increment_offset 用于确定 AUTO_INCREMENT 列值的起点。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | uint | -| 默认值 | 1 | -| 取值范围 | \[1, 65535\] | -| 生效范围 | * GLOBAL * SESSION | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/30.identity.md b/docs/docs-cn/13.reference-guide/2.system-variable/30.identity.md deleted file mode 100644 index c38800d96..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/30.identity.md +++ /dev/null @@ -1,15 +0,0 @@ -identity -============================= - -identity 和变量 last_insert_id 是同义词,可以通过 `select @@identity` 查询。 - - -| **属性** | **描述** | -|--------|-----------------------------| -| 参数类型 | uint | -| 默认值 | 0 | -| 取值范围 | \[0, 18446744073709551615\] | -| 生效范围 | SESSION | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/31.lower_case_table_names.md b/docs/docs-cn/13.reference-guide/2.system-variable/31.lower_case_table_names.md deleted file mode 100644 index 66f3aeac1..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/31.lower_case_table_names.md +++ /dev/null @@ -1,21 +0,0 @@ -lower_case_table_names -=========================================== - -lower_case_table_names 用于设置是否对大小写敏感。 - - -| **属性** | **描述** | -|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 1 | -| 取值范围 | * 0:表示表名将按指定存储,并且比较区分大小写 * 1:表示表名以小写形式存储在磁盘上,并且比较不区分大小写 * 2:表示表名按指定存储,但以小写形式进行比较 | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | -| 是否可修改 | 否,仅在 OBServer 启动的命令行上指定,启动后不能再通过 SQL 语句修改。 | - - -**说明** - - - -该变量仅在 MySQL 模式下对 DataBase 和 Table 对象名生效。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/32.net_read_timeout.md b/docs/docs-cn/13.reference-guide/2.system-variable/32.net_read_timeout.md deleted file mode 100644 index 05c768e12..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/32.net_read_timeout.md +++ /dev/null @@ -1,32 +0,0 @@ -net_read_timeout -===================================== - -net_read_timeout 用于中断读之前等待连接的其它数据的秒数。 -**说明** - - - -该变量仅用于兼容,OceanBase 数据库当前暂未实现该变量的功能。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 30 | -| 取值范围 | \[1, 31536000\] | -| 生效范围 | * GLOBAL * SESSION | - - - -其中: - -* 当服务器从客户端读数时,net_read_timeout 指控制何时中断的超时值。 - - - -* 当服务器向客户端写时,net_write_timeout 指控制何时中断的超时值。 - - - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/33.net_write_timeout.md b/docs/docs-cn/13.reference-guide/2.system-variable/33.net_write_timeout.md deleted file mode 100644 index 7d96ee1d0..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/33.net_write_timeout.md +++ /dev/null @@ -1,32 +0,0 @@ -net_write_timeout -====================================== - -net_write_timeout 用于设置中断写之前等待块写入连接的秒数。 -**说明** - - - -该变量仅用于兼容,OceanBase 数据库当前暂未实现该变量的功能。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 60 | -| 取值范围 | \[1, 31536000\] | -| 生效范围 | * GLOBAL * SESSION | - - - -其中: - -* 当服务器从客户端读数时,net_read_timeout 指控制何时中断的超时值。 - - - -* 当服务器向客户端写时,net_write_timeout 指控制何时中断的超时值。 - - - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/34.read_only.md b/docs/docs-cn/13.reference-guide/2.system-variable/34.read_only.md deleted file mode 100644 index 312eefb09..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/34.read_only.md +++ /dev/null @@ -1,19 +0,0 @@ -read_only -============================== - -read_only 用于设置租户是否为只读模式。 - - -| **属性** | **描述** | -|--------|-----------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 0 | -| 取值范围 | * 1:租户为只读模式 * 0:租户为读写模式 | -| 生效范围 | GLOBAL | - - -**说明** - - - -设置后,会影响该租户下的所有普通用户,不影响 root 权限用户。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/35.sql_auto_is_null.md b/docs/docs-cn/13.reference-guide/2.system-variable/35.sql_auto_is_null.md deleted file mode 100644 index f63fd6bbc..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/35.sql_auto_is_null.md +++ /dev/null @@ -1,28 +0,0 @@ -sql_auto_is_null -===================================== - -sql_auto_is_null 会被一些特殊的驱动程序,例如 ODBC 使用,用于获取最后插入行的自增列值。 - - -| **属性** | **描述** | -|----------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | OFF | -| 取值范围 | * OFF * ON | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - - -当 sql_auto_is_null 为 `ON` 时,与下面两条语句等价: - -```sql -// CREATE TABLE t1 (auto_inc_column auto_increment, j int); -obclient> SELECT * FROM t1 WHERE auto_inc_column is null; - -obclient> SELECT * FROM t1 WHERE auto_inc_column = last_insert_id(); -``` - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/36.sql_select_limit.md b/docs/docs-cn/13.reference-guide/2.system-variable/36.sql_select_limit.md deleted file mode 100644 index 941771c26..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/36.sql_select_limit.md +++ /dev/null @@ -1,16 +0,0 @@ -sql_select_limit -===================================== - -sql_select_limit 用于设置一个 select 查询允许返回的最大行数。如果一个 select 中包含了 limit 语句,那么 limit 的值比 sql_select_limit 的优先级高,默认不限制 select 返回的行数。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 9223372036854775807 | -| 取值范围 | \[0, 9223372036854775807\] | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/37.timestamp.md b/docs/docs-cn/13.reference-guide/2.system-variable/37.timestamp.md deleted file mode 100644 index 5178c843f..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/37.timestamp.md +++ /dev/null @@ -1,15 +0,0 @@ -timestamp -============================== - -TIMESTAMP 是时间戳,单位为秒,该变量影响 `select now(6) `的结果。 - - -| **属性** | **描述** | -|--------|--------------------| -| 参数类型 | numeric | -| 默认值 | 0 | -| 取值范围 | \[0, 253402272000) | -| 生效范围 | SESSION | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/38.tx_read_only.md b/docs/docs-cn/13.reference-guide/2.system-variable/38.tx_read_only.md deleted file mode 100644 index 1ef72cb2d..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/38.tx_read_only.md +++ /dev/null @@ -1,20 +0,0 @@ -tx_read_only -================================= - -tx_read_only 用于设置是否为只读事务。 - - -| **属性** | **描述** | -|---------|-------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 0 | -| 取值范围 | * 1:只读事务 * 0:不是只读事务 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - -**说明** - - - -设置后,仅影响该用户,不影响其他用户。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/39.version.md b/docs/docs-cn/13.reference-guide/2.system-variable/39.version.md deleted file mode 100644 index 65e715b47..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/39.version.md +++ /dev/null @@ -1,16 +0,0 @@ -version -============================ - -version 用于设置服务器的版本号。 - - -| **属性** | **描述** | -|--------|---------| -| 参数类型 | varchar | -| 默认值 | 5.6.25 | -| 取值范围 | N/A | -| 生效范围 | GLOBAL | -| 是否可修改 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/4.autocommit.md b/docs/docs-cn/13.reference-guide/2.system-variable/4.autocommit.md deleted file mode 100644 index 52a5be13e..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/4.autocommit.md +++ /dev/null @@ -1,16 +0,0 @@ -autocommit -=============================== - -autocommit 用于设置是否自动提交事务。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 1:自动提交 * 0:不自动提交 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/40.sql_warnings.md b/docs/docs-cn/13.reference-guide/2.system-variable/40.sql_warnings.md deleted file mode 100644 index f46123253..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/40.sql_warnings.md +++ /dev/null @@ -1,15 +0,0 @@ -sql_warnings -================================= - -sql_warnings 用于在出现告警时控制单行 INSERT 语句是否生成信息字符串。 - - -| **属性** | **描述** | -|--------|-----------------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | OFF | -| 取值范围 | * ON:生成一个信息字符串 * OFF:不生成信息字符串 | -| 生效范围 | * GLOBAL * SESSION | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/41.max_user_connections.md b/docs/docs-cn/13.reference-guide/2.system-variable/41.max_user_connections.md deleted file mode 100644 index 40ac4b7f0..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/41.max_user_connections.md +++ /dev/null @@ -1,19 +0,0 @@ -max_user_connections -========================================= - -max_user_connections 用于指定单个用户可以向 OBServer 建立的连接数,设置为 0 时表示不限制连接数。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | uint | -| 默认值 | 0 | -| 取值范围 | \[0, 4294967295\] | -| 生效范围 | * GLOBAL * SESSION | - - -**说明** - - - -该变量不能通过 `alter session set xxx = yyy; `语句的方式使其仅在当前 Session 生效,只能通过 `set global xxx = yyy` 语句的方式使全局生效。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/42.init_connect.md b/docs/docs-cn/13.reference-guide/2.system-variable/42.init_connect.md deleted file mode 100644 index d666b2c5e..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/42.init_connect.md +++ /dev/null @@ -1,14 +0,0 @@ -init_connect -================================= - -init_connect 用于设置服务器为每个连接的客户端执行的字符串,该字符串由一条或多条 SQL 语句组成,用分号分隔。 - - -| **属性** | **描述** | -|--------|---------| -| 参数类型 | varchar | -| 默认值 | N/A | -| 取值范围 | N/A | -| 生效范围 | GLOBAL | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/43.license.md b/docs/docs-cn/13.reference-guide/2.system-variable/43.license.md deleted file mode 100644 index ebefcc82b..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/43.license.md +++ /dev/null @@ -1,16 +0,0 @@ -license -============================ - -license 用于设置 license 的类型。 - - -| **属性** | **描述** | -|--------|---------| -| 参数类型 | varchar | -| 默认值 | 空字符串 | -| 取值范围 | N/A | -| 生效范围 | GLOBAL | -| 是否可修改 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/44.net_buffer_length.md b/docs/docs-cn/13.reference-guide/2.system-variable/44.net_buffer_length.md deleted file mode 100644 index b2200aa2c..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/44.net_buffer_length.md +++ /dev/null @@ -1,19 +0,0 @@ -net_buffer_length -====================================== - -net_buffer_length 用于设置 OBServer 能接受的 SQL Query 的大小。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 16384 | -| 取值范围 | \[1024, 1048576\] | -| 生效范围 | * GLOBAL * SESSION | - - -**说明** - - - -该变量不能通过 `alter session set xxx = yyy; `语句的方式使其仅在当前 Session 生效,只能通过 `set global xxx = yyy` 语句的方式使全局生效。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/45.system_time_zone.md b/docs/docs-cn/13.reference-guide/2.system-variable/45.system_time_zone.md deleted file mode 100644 index 91cd4f6d3..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/45.system_time_zone.md +++ /dev/null @@ -1,17 +0,0 @@ -system_time_zone -===================================== - -system_time_zone 用于设置服务器机器系统时区。 - - -| **属性** | **描述** | -|---------|-------------------------------------------| -| 参数类型 | varchar | -| 默认值 | CST | -| 取值范围 | N/A | -| 生效范围 | GLOBAL | -| 是否可修改 | 否,仅在 OBServer 启动的命令行上指定,启动后不能再通过 SQL 语句修改 | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/46.query_cache_size.md b/docs/docs-cn/13.reference-guide/2.system-variable/46.query_cache_size.md deleted file mode 100644 index 694129dbf..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/46.query_cache_size.md +++ /dev/null @@ -1,15 +0,0 @@ -query_cache_size -===================================== - -query_cache_size 用于设置分配给存储历史查询结果的内存,即尚未使用的内存,单位为 Byte。 - - -| **属性** | **描述** | -|--------|-----------------------------| -| 参数类型 | uint | -| 默认值 | 1048576 | -| 取值范围 | \[0, 18446744073709551615\] | -| 生效范围 | GLOBAL | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/47.query_cache_type.md b/docs/docs-cn/13.reference-guide/2.system-variable/47.query_cache_type.md deleted file mode 100644 index e099f15de..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/47.query_cache_type.md +++ /dev/null @@ -1,15 +0,0 @@ -query_cache_type -===================================== - -query_cache_type 用于查询缓存类型。 - - -| **属性** | **描述** | -|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | varchar | -| 默认值 | OFF | -| 取值范围 | * OFF:不缓存或检索结果。 * ON:缓存除了 `SELECT SQL_NO_CACHE ...`查询的所有结果。 * DEMAND:只缓存 `SELECT SQL_CACHE ... `查询的结果。 | -| 生效范围 | * GLOBAL * SESSION | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/48.sql_quote_show_create.md b/docs/docs-cn/13.reference-guide/2.system-variable/48.sql_quote_show_create.md deleted file mode 100644 index 6fd327afe..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/48.sql_quote_show_create.md +++ /dev/null @@ -1,14 +0,0 @@ -sql_quote_show_create -========================================== - -sql_quote_show_create 用于设置是否为 `SHOW CREATE TABLE` 和 `SHOW CREATE DATABASE` 语句启动引用标识符。 - - -| **属性** | **描述** | -|--------|---------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | true | -| 取值范围 | * true:启用 * false:不启用 | -| 生效范围 | * GLOBAL * SESSION | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/49.max_sp_recursion_depth.md b/docs/docs-cn/13.reference-guide/2.system-variable/49.max_sp_recursion_depth.md deleted file mode 100644 index c5733675b..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/49.max_sp_recursion_depth.md +++ /dev/null @@ -1,15 +0,0 @@ -max_sp_recursion_depth -=========================================== - -max_sp_recursion_depth 用于设置可以递归调用任一指定存储过程的最大层次。默认值为 0 ,表示当前存储过程不可递归调用。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 0 | -| 取值范围 | \[0, 255\] | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/5.character_set_client.md b/docs/docs-cn/13.reference-guide/2.system-variable/5.character_set_client.md deleted file mode 100644 index 2e6b8f576..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/5.character_set_client.md +++ /dev/null @@ -1,17 +0,0 @@ -character_set_client -========================================= - -character_set_client 用于设置客户端发送语句的字符集。 - - -| **属性** | **描述** | -|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | string | -| 默认值 | utf8mb4 | -| 取值范围 | * utf8mb4 * binary * gbk | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否可以为空 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/50.sql_safe_updates.md b/docs/docs-cn/13.reference-guide/2.system-variable/50.sql_safe_updates.md deleted file mode 100644 index 1a7295d72..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/50.sql_safe_updates.md +++ /dev/null @@ -1,21 +0,0 @@ -sql_safe_updates -===================================== - -sql_safe_updates 用于设置是否启用 MySQL 的 SQL 安全模式,默认为关闭。 -**说明** - - - -该变量仅用于兼容,OceanBase 数据库当前暂未实现该变量的功能。 - - -| **属性** | **描述** | -|---------|--------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 0 | -| 取值范围 | * 0:表示 FALSE,即关闭 * 1:表示 TRUE,即开启 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/51.ob_proxy_partition_hit.md b/docs/docs-cn/13.reference-guide/2.system-variable/51.ob_proxy_partition_hit.md deleted file mode 100644 index 6202c17a2..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/51.ob_proxy_partition_hit.md +++ /dev/null @@ -1,17 +0,0 @@ -ob_proxy_partition_hit -=========================================== - -ob_proxy_partition_hit 用于设置 OBProxy 是否将 SQL 语句请求的数据发送到这些数据主 Partition 所在的 OBServer 上。 - - -| **属性** | **描述** | -|--------|-----------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 1:是 * 0:否 | -| 生效范围 | SESSION | -| 是否可修改 | 否 | -| 是否可见 | 否,所有租户均不可见 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/52.ob_log_level.md b/docs/docs-cn/13.reference-guide/2.system-variable/52.ob_log_level.md deleted file mode 100644 index c422db784..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/52.ob_log_level.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_log_level -================================= - -ob_log_level 用于设置 Session 级的日志级别,如果不指定则使用系统中的日志级别。 - - -| **属性** | **描述** | -|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | varchar | -| 默认值 | disabled | -| 取值范围 | * trace * info * warn * error | -| 生效范围 | * GLOBAL * SESSION | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/53.ob_max_parallel_degree.md b/docs/docs-cn/13.reference-guide/2.system-variable/53.ob_max_parallel_degree.md deleted file mode 100644 index a8ec77e74..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/53.ob_max_parallel_degree.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_max_parallel_degree -=========================================== - -ob_max_parallel_degree 用于设置每次请求最大的并发数。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 16 | -| 取值范围 | NULL | -| 生效范围 | * GLOBAL * SESSION | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/54.ob_query_timeout.md b/docs/docs-cn/13.reference-guide/2.system-variable/54.ob_query_timeout.md deleted file mode 100644 index f46f5e0ad..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/54.ob_query_timeout.md +++ /dev/null @@ -1,16 +0,0 @@ -ob_query_timeout -===================================== - -ob_query_timeout 用于设置查询超时时间,单位是微秒。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 10000000 | -| 取值范围 | NULL | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/55.ob_read_consistency.md b/docs/docs-cn/13.reference-guide/2.system-variable/55.ob_read_consistency.md deleted file mode 100644 index d6e882862..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/55.ob_read_consistency.md +++ /dev/null @@ -1,17 +0,0 @@ -ob_read_consistency -======================================== - -`ob_read_consistency` 用于设置读一致性级别。 - - -| **属性** | **描述** | -|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | enum | -| 默认值 | STRONG | -| 取值范围 | * 0:空字符串 * 1:FROZEN * 2:WEAK * 3:STRONG | -| 生效范围 | * Global * Session | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/56.ob_enable_transformation.md b/docs/docs-cn/13.reference-guide/2.system-variable/56.ob_enable_transformation.md deleted file mode 100644 index ebd72673c..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/56.ob_enable_transformation.md +++ /dev/null @@ -1,17 +0,0 @@ -ob_enable_transformation -============================================= - -ob_enable_transformation 用于设置是否开启 SQL 优化器的改写功能。 - - -| **属性** | **描述** | -|----------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 0:不开启 * 1:开启 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/57.ob_trx_timeout.md b/docs/docs-cn/13.reference-guide/2.system-variable/57.ob_trx_timeout.md deleted file mode 100644 index beeb5641f..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/57.ob_trx_timeout.md +++ /dev/null @@ -1,16 +0,0 @@ -ob_trx_timeout -=================================== - -ob_trx_timeout 用于设置事务超时时间,单位为微秒。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 100000000 | -| 取值范围 | NULL | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/58.ob_enable_plan_cache.md b/docs/docs-cn/13.reference-guide/2.system-variable/58.ob_enable_plan_cache.md deleted file mode 100644 index a4b2a8eef..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/58.ob_enable_plan_cache.md +++ /dev/null @@ -1,16 +0,0 @@ -ob_enable_plan_cache -========================================= - -ob_enable_plan_cache 用于设置是否打开 Plan Cache。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 0:关闭 * 1:打开 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/59.ob_enable_index_direct_select.md b/docs/docs-cn/13.reference-guide/2.system-variable/59.ob_enable_index_direct_select.md deleted file mode 100644 index 5f75ca1c4..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/59.ob_enable_index_direct_select.md +++ /dev/null @@ -1,17 +0,0 @@ -ob_enable_index_direct_select -================================================== - -ob_enable_index_direct_select 用于设置是否允许用户直接查询索引表。 - - -| **属性** | **描述** | -|----------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 0 | -| 取值范围 | * 0:不允许 * 1:允许 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/6.character_set_connection.md b/docs/docs-cn/13.reference-guide/2.system-variable/6.character_set_connection.md deleted file mode 100644 index 6749765c0..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/6.character_set_connection.md +++ /dev/null @@ -1,17 +0,0 @@ -character_set_connection -============================================= - -character_set_connection 用于设置收到语句后应转换的字符集。 - - -| **属性** | **描述** | -|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | string | -| 默认值 | utf8mb4 | -| 取值范围 | * utf8mb4 * binary * gbk | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否可以为空 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/60.ob_proxy_set_trx_executed.md b/docs/docs-cn/13.reference-guide/2.system-variable/60.ob_proxy_set_trx_executed.md deleted file mode 100644 index d6b46da94..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/60.ob_proxy_set_trx_executed.md +++ /dev/null @@ -1,17 +0,0 @@ -ob_proxy_set_trx_executed -============================================== - -ob_proxy_set_trx_executed 用于设置用户是否通过 OBProxy 发送 `START TRANSACTION Syntax` 给 OBServer。 - - -| **属性** | **描述** | -|--------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 0 | -| 取值范围 | * 0:不发送 * 1:发送 | -| 生效范围 | SESSION | -| 是否可修改 | 否 | -| 是否可见 | 否,所有租户均不可见 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/61.ob_enable_aggregation_pushdown.md b/docs/docs-cn/13.reference-guide/2.system-variable/61.ob_enable_aggregation_pushdown.md deleted file mode 100644 index eac829e7f..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/61.ob_enable_aggregation_pushdown.md +++ /dev/null @@ -1,16 +0,0 @@ -ob_enable_aggregation_pushdown -=================================================== - -ob_enable_aggregation_pushdown 用于设置是否允许聚合操作下压。 - - -| **属性** | **描述** | -|----------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 0:不允许 * 1:允许 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/62.ob_last_schema_version.md b/docs/docs-cn/13.reference-guide/2.system-variable/62.ob_last_schema_version.md deleted file mode 100644 index 129c4f8d4..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/62.ob_last_schema_version.md +++ /dev/null @@ -1,16 +0,0 @@ -ob_last_schema_version -=========================================== - -ob_last_schema_version 用于设置该 Session 中最新使用的 Schema 版本号。 - -当 Proxy 的同一个连接对应到多个 Server 时,需要使用该系统变量进行 Schema 同步,故该变量只在 Session 级别生效。 - - -| **属性** | **描述** | -|--------|----------------------------| -| 参数类型 | int | -| 默认值 | 0 | -| 取值范围 | \[0, 9223372036854775807\] | -| 生效范围 | SESSION | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/63.ob_global_debug_sync.md b/docs/docs-cn/13.reference-guide/2.system-variable/63.ob_global_debug_sync.md deleted file mode 100644 index e03ea533a..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/63.ob_global_debug_sync.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_global_debug_sync -========================================= - -ob_global_debug_sync 用于 debug 时设置同步点,与 debug_sync 不同,设置此变量会影响所有 Session。只有 debug_sync_timeout 配置项的值不为 0 时,该设置才有效。 - - -| **属性** | **描述** | -|--------|------------| -| 参数类型 | varchar | -| 默认值 | 空字符串 | -| 取值范围 | 无 | -| 生效范围 | SESSION | -| 是否可见 | 否,所有租户均不可见 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/64.ob_proxy_global_variables_version.md b/docs/docs-cn/13.reference-guide/2.system-variable/64.ob_proxy_global_variables_version.md deleted file mode 100644 index 8d3e6561b..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/64.ob_proxy_global_variables_version.md +++ /dev/null @@ -1,18 +0,0 @@ -ob_proxy_global_variables_version -====================================================== - -ob_proxy_global_variables_version 用于设置 OBServer 返回给 OBproxy 所需的全局变量的最新版本信息。 - - -| **属性** | **描述** | -|--------|-----------------| -| 参数类型 | int | -| 默认值 | 5 | -| 取值范围 | \[0, INT64_MAX) | -| 生效范围 | SESSION | -| 是否可修改 | 否 | -| 是否可见 | 否,所有租户均不可见 | - - - -执行 `select @@ob_proxy_global_variables_version` 语句时将返回当前全局变量的最新版本号。默认值为 0,用户不可修改。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/65.ob_enable_trace_log.md b/docs/docs-cn/13.reference-guide/2.system-variable/65.ob_enable_trace_log.md deleted file mode 100644 index 13727d894..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/65.ob_enable_trace_log.md +++ /dev/null @@ -1,16 +0,0 @@ -ob_enable_trace_log -======================================== - -ob_enable_trace_log 用于设置是否使用 trace 日志。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 0 | -| 取值范围 | * 0:不使用 * 1:使用 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/66.ob_enable_hash_group_by.md b/docs/docs-cn/13.reference-guide/2.system-variable/66.ob_enable_hash_group_by.md deleted file mode 100644 index 3ac93e381..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/66.ob_enable_hash_group_by.md +++ /dev/null @@ -1,17 +0,0 @@ -ob_enable_hash_group_by -============================================ - -ob_enable_hash_group_by 用于设置是否打开 Hash Group by 的路径。 - - -| **属性** | **描述** | -|----------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 0:不允许 * 1:允许 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/67.ob_enable_blk_nestedloop_join.md b/docs/docs-cn/13.reference-guide/2.system-variable/67.ob_enable_blk_nestedloop_join.md deleted file mode 100644 index 512e67c65..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/67.ob_enable_blk_nestedloop_join.md +++ /dev/null @@ -1,17 +0,0 @@ -ob_enable_blk_nestedloop_join -================================================== - -ob_enable_blk_nestedloop_join 用于设置是否允许打开 block nested loop join。 - - -| **属性** | **描述** | -|----------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 0 | -| 取值范围 | * 0:不允许 * 1:允许 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/68.ob_bnl_join_cache_size.md b/docs/docs-cn/13.reference-guide/2.system-variable/68.ob_bnl_join_cache_size.md deleted file mode 100644 index 65bd8c90e..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/68.ob_bnl_join_cache_size.md +++ /dev/null @@ -1,16 +0,0 @@ -ob_bnl_join_cache_size -=========================================== - -ob_bnl_join_cache_size 用于设置 batch nest loop join 一次 cache 多少数据做一次 batch。 - - -| **属性** | **描述** | -|----------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 10485760 | -| 取值范围 | \[1, 9223372036854775807\] | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/69.ob_org_cluster_id.md b/docs/docs-cn/13.reference-guide/2.system-variable/69.ob_org_cluster_id.md deleted file mode 100644 index 7e700e857..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/69.ob_org_cluster_id.md +++ /dev/null @@ -1,18 +0,0 @@ -ob_org_cluster_id -====================================== - -ob_org_cluster_id 用于设置 OceanBase 集群的 CLUSTER_ID。 - -通常情况下不需要设置 ob_org_cluster_id 变量,OceanBase 数据库生成日志(clog)时会使用缺省值(即每一个 OceanBase 集群的 CLUSTER_ID)。DRC 在复制数据写入目标集群时,需要在 Session 中将该变量设置为日志中所带的 CLUSTER_ID,以免数据被循环复制。 - - -| **属性** | **描述** | -|---------|-------------------| -| 参数类型 | int | -| 默认值 | 0 | -| 取值范围 | \[0, 4294967295\] | -| 生效范围 | SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/7.character_set_database.md b/docs/docs-cn/13.reference-guide/2.system-variable/7.character_set_database.md deleted file mode 100644 index 1b8648337..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/7.character_set_database.md +++ /dev/null @@ -1,15 +0,0 @@ -character_set_database -=========================================== - -character_set_database 用于设置默认数据库的字符集。 - - -| **属性** | **描述** | -|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | string | -| 默认值 | utf8mb4 | -| 取值范围 | * utf8mb4 * binary * gbk * gb18030 * utf16 | -| 生效范围 | * GLOBAL * SESSION | -| 是否可以为空 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/70.ob_plan_cache_percentage.md b/docs/docs-cn/13.reference-guide/2.system-variable/70.ob_plan_cache_percentage.md deleted file mode 100644 index 5ffa012b3..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/70.ob_plan_cache_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_plan_cache_percentage -============================================= - -ob_plan_cache_percentage 用于设置计划缓存可以使用的租户内存资源的百分比。 - - -| **属性** | **描述** | -|---------|------------| -| 参数类型 | int | -| 默认值 | 5 | -| 取值范围 | \[0, 100\] | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/71.ob_plan_cache_evict_high_percentage.md b/docs/docs-cn/13.reference-guide/2.system-variable/71.ob_plan_cache_evict_high_percentage.md deleted file mode 100644 index 95be9ac06..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/71.ob_plan_cache_evict_high_percentage.md +++ /dev/null @@ -1,16 +0,0 @@ -ob_plan_cache_evict_high_percentage -======================================================== - -ob_plan_cache_evict_high_percentage 用于设置触发计划缓存逐出的计划缓存限制的内存使用百分比。 - - -| **属性** | **描述** | -|---------|------------| -| 参数类型 | int | -| 默认值 | 90 | -| 取值范围 | \[0, 100\] | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/72.ob_plan_cache_evict_low_percentage.md b/docs/docs-cn/13.reference-guide/2.system-variable/72.ob_plan_cache_evict_low_percentage.md deleted file mode 100644 index 6bed8d75c..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/72.ob_plan_cache_evict_low_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_plan_cache_evict_low_percentage -======================================================= - -ob_plan_cache_evict_low_percentage 用于设置停止计划缓存逐出的计划缓存限制的内存使用百分比。 - - -| **属性** | **描述** | -|---------|------------| -| 参数类型 | int | -| 默认值 | 50 | -| 取值范围 | \[0, 100\] | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/73.recyclebin.md b/docs/docs-cn/13.reference-guide/2.system-variable/73.recyclebin.md deleted file mode 100644 index f8b24190f..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/73.recyclebin.md +++ /dev/null @@ -1,16 +0,0 @@ -recyclebin -=============================== - -recyclebin 用于设置是否开启回收站功能。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 0 | -| 取值范围 | * 0:不开启 * 1:开启 | -| 生效范围 | * GLOBAL * SESSION | - - - -启用回收站后,删除的表及其依赖对象将放置在回收站中;当禁用回收站时,删除的表及其依赖对象不会放置在回收站中,会直接删除。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/74.ob_capability_flag.md b/docs/docs-cn/13.reference-guide/2.system-variable/74.ob_capability_flag.md deleted file mode 100644 index 8199ccc37..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/74.ob_capability_flag.md +++ /dev/null @@ -1,17 +0,0 @@ -ob_capability_flag -======================================= - -ob_capability_flag 是 OBServer 能够提供的能力,用于和 Proxy 连接时进行能力协商,告知 Proxy 当前 OBServer 支持哪些功能,不支持哪些功能。 - - -| **属性** | **描述** | -|--------|----------------------------| -| 参数类型 | uint | -| 默认值 | 0 | -| 取值范围 | \[0,18446744073709551615\] | -| 生效范围 | SESSION | -| 是否可修改 | 否 | -| 是否可见 | 否,对所有租户均不可见 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/75.ob_stmt_parallel_degree.md b/docs/docs-cn/13.reference-guide/2.system-variable/75.ob_stmt_parallel_degree.md deleted file mode 100644 index 407805e1f..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/75.ob_stmt_parallel_degree.md +++ /dev/null @@ -1,22 +0,0 @@ -ob_stmt_parallel_degree -============================================ - -ob_stmt_parallel_degree 用于设置查询的并行度,即可以并行运行的任务数。 -**说明** - - - -该变量已不再使用。 - - -| **属性** | **描述** | -|----------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 1 | -| 取值范围 | \[1, 10240\] | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/76.is_result_accurate.md b/docs/docs-cn/13.reference-guide/2.system-variable/76.is_result_accurate.md deleted file mode 100644 index 4a9cc53f7..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/76.is_result_accurate.md +++ /dev/null @@ -1,16 +0,0 @@ -is_result_accurate -======================================= - -当查询带有 topk 提示时,is_result_accurate 表示结果是否正确。 - - -| **属性** | **描述** | -|---------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 0:不正确 * 1:正确 | -| 生效范围 | SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/77.error_on_overlap_time.md b/docs/docs-cn/13.reference-guide/2.system-variable/77.error_on_overlap_time.md deleted file mode 100644 index 981dcad35..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/77.error_on_overlap_time.md +++ /dev/null @@ -1,16 +0,0 @@ -error_on_overlap_time -========================================== - -error_on_overlap_time 是动态参数,用于设置夏令时重叠区时间发生歧义时是否作报错处理。 - - -| **属性** | **描述** | -|---------|-------------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | OFF | -| 取值范围 | * ON:进行报错处理 * OFF:不进行报错处理 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/78.ob_compatibility_mode.md b/docs/docs-cn/13.reference-guide/2.system-variable/78.ob_compatibility_mode.md deleted file mode 100644 index 92739c65d..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/78.ob_compatibility_mode.md +++ /dev/null @@ -1,17 +0,0 @@ -ob_compatibility_mode -========================================== - -ob_compatibility_mode 用于指定租户的兼容模式。该系统变量只能在创建租户时指定,租户创建好之后则无法修改。 - - -| **属性** | **描述** | -|---------|---------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | enum | -| 默认值 | MYSQL | -| 取值范围 | * MYSQL:表示兼容 MYSQL * ORACLE:表示兼容 ORACLE | -| 生效范围 | * GLOBAL * SESSION | -| 是否可修改 | 否 | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/79.ob_create_table_strict_mode.md b/docs/docs-cn/13.reference-guide/2.system-variable/79.ob_create_table_strict_mode.md deleted file mode 100644 index 7c4f5dc27..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/79.ob_create_table_strict_mode.md +++ /dev/null @@ -1,14 +0,0 @@ -ob_create_table_strict_mode -================================================ - -`ob_create_table_strict_mode` 是动态变量,用于设置建表的严格模式。 - - -| **属性** | **描述** | -|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 1:表示会严格按照 Locality 建立副本,任何副本建立失败,则建表失败。 * 0:表示全类型副本至少有 1 个,Paxos 成员组副本达到多数,则建表成功。 | -| 生效范围 | * GLOBAL * SESSION | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/8.character_set_results.md b/docs/docs-cn/13.reference-guide/2.system-variable/8.character_set_results.md deleted file mode 100644 index a82715aa8..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/8.character_set_results.md +++ /dev/null @@ -1,16 +0,0 @@ -character_set_results -========================================== - -character_set_results 用于设置服务器在将结果集或错误消息发送回客户端之前应转换为的字符集。 - - -| **属性** | **描述** | -|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | string | -| 默认值 | utf8mb4 | -| 取值范围 | * utf8mb4 * binary * gbk | -| 生效范围 | * GLOBAL * SESSION | -| 是否可以为空 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/80.ob_sql_work_area_percentage.md b/docs/docs-cn/13.reference-guide/2.system-variable/80.ob_sql_work_area_percentage.md deleted file mode 100644 index 5f06a240e..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/80.ob_sql_work_area_percentage.md +++ /dev/null @@ -1,14 +0,0 @@ -ob_sql_work_area_percentage -================================================ - -ob_sql_work_area_percentage 用于 SQL 执行的租户内存百分比限制。 - - -| **属性** | **描述** | -|--------|------------| -| 参数类型 | int | -| 默认值 | 5 | -| 取值范围 | \[0, 100\] | -| 生效范围 | GLOBAL | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/81.ob_route_policy.md b/docs/docs-cn/13.reference-guide/2.system-variable/81.ob_route_policy.md deleted file mode 100644 index 7664cca2d..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/81.ob_route_policy.md +++ /dev/null @@ -1,16 +0,0 @@ -ob_route_policy -==================================== - -ob_route_policy 用于设置 OBProxy 或 Java 客户端与 OBServer 内部重试的路由策略。 - - -| **属性** | **描述** | -|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | enum | -| 默认值 | 1 | -| 取值范围 | * 1:READONLY_ZONE_FIRST * 2:ONLY_READONLY_ZONE * 3:UNMERGE_ZONE_FIRST * 4:UNMERGE_FOLLOWER_FIRST | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/82.ob_enable_transmission_checksum.md b/docs/docs-cn/13.reference-guide/2.system-variable/82.ob_enable_transmission_checksum.md deleted file mode 100644 index 62a27b7b3..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/82.ob_enable_transmission_checksum.md +++ /dev/null @@ -1,16 +0,0 @@ -ob_enable_transmission_checksum -==================================================== - -ob_enable_transmission_checksum 用于设置 Proxy 和 Server 之间是否进行数据包校验和,设置后实时生效。 - - -| **属性** | **描述** | -|---------|--------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 0:不进行校验和 * 1:进行校验和 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/83.foreign_key_checks.md b/docs/docs-cn/13.reference-guide/2.system-variable/83.foreign_key_checks.md deleted file mode 100644 index 8000b7556..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/83.foreign_key_checks.md +++ /dev/null @@ -1,17 +0,0 @@ -foreign_key_checks -================== - -foreign_key_checks 用于设置是否在 DML 中检查外建约束。 - -| **属性** | **描述** | -|---------|------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 0:不检查外键约束 * 1:检查外键约束 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - -**说明** - -说明:该变量设置后,仅对 DML 操作有效,DDL 操作不受影响。 - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/84.ob_enable_truncate_flashback.md b/docs/docs-cn/13.reference-guide/2.system-variable/84.ob_enable_truncate_flashback.md deleted file mode 100644 index 54dcc1c8c..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/84.ob_enable_truncate_flashback.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_enable_truncate_flashback -================================================= - -ob_enable_truncate_flashback 用于设置是否启用表截断的闪回。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 0 | -| 取值范围 | * 0:不启用 * 1:启用 | -| 生效范围 | * GLOBAL * SESSION | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/85.ob_tcp_invited_nodes.md b/docs/docs-cn/13.reference-guide/2.system-variable/85.ob_tcp_invited_nodes.md deleted file mode 100644 index d0ad7eda5..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/85.ob_tcp_invited_nodes.md +++ /dev/null @@ -1,14 +0,0 @@ -ob_tcp_invited_nodes -========================================= - -`ob_tcp_invited_nodes` 用于设置租户的 IP 白名单,支持百分号(%) 、短横线(_) 和 IP(多个 IP 之间用逗号分隔),支持 IP 列表匹配、掩码匹配和模糊匹配。 - - -| **属性** | **描述** | -|--------|---------------| -| 参数类型 | varchar | -| 默认值 | 127.0.0.1,::1 | -| 取值范围 | 字符串长度小于 1024 | -| 生效范围 | GLOBAL | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/86.sql_throttle_current_priority.md b/docs/docs-cn/13.reference-guide/2.system-variable/86.sql_throttle_current_priority.md deleted file mode 100644 index 29e18e2cf..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/86.sql_throttle_current_priority.md +++ /dev/null @@ -1,15 +0,0 @@ -sql_throttle_current_priority -================================================== - -sql_throttle_current_priority 用于设置限流优先级,只有 sql_throttle_current_priority 小于 sql_throttle_priority 的那些 Session 上的请求才会被限流。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | int | -| 默认值 | 100 | -| 取值范围 | 无取值范围,推荐值100 | -| 生效范围 | * GLOBAL * SESSION | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/87.sql_throttle_priority.md b/docs/docs-cn/13.reference-guide/2.system-variable/87.sql_throttle_priority.md deleted file mode 100644 index 3c372cc7f..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/87.sql_throttle_priority.md +++ /dev/null @@ -1,20 +0,0 @@ -sql_throttle_priority -========================================== - -sql_throttle_priority 用于设置限流优先级。只有 sql_throttle_current_priority 小于 sql_throttle_priority 的那些 Session 上的请求才会被限流。 - - -| **属性** | **描述** | -|--------|---------------------------------------------------| -| 参数类型 | int | -| 默认值 | -1 | -| 取值范围 | 无取值范围,实际使用时与 sql_throttle_current_priority 的取值相关 | -| 生效范围 | GLOBAL | - - -**说明** - - - -如果查询的优先级小于此值,则可能不允许执行查询。 - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/88.sql_throttle_rt.md b/docs/docs-cn/13.reference-guide/2.system-variable/88.sql_throttle_rt.md deleted file mode 100644 index d0b2a89fe..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/88.sql_throttle_rt.md +++ /dev/null @@ -1,15 +0,0 @@ -sql_throttle_rt -==================================== - -sql_throttle_rt 用于指定 RT 值,单位为微秒。如果查询的 RT 值不小于该值,则不允许执行该查询。 - - -| **属性** | **描述** | -|--------|-----------------| -| 参数类型 | numeric | -| 默认值 | -1 | -| 取值范围 | 无取值范围,与实际业务负载相关 | -| 生效范围 | GLOBAL | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/89.sql_throttle_network.md b/docs/docs-cn/13.reference-guide/2.system-variable/89.sql_throttle_network.md deleted file mode 100644 index 7fc734b2b..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/89.sql_throttle_network.md +++ /dev/null @@ -1,14 +0,0 @@ -sql_throttle_network -========================================= - -sql_throttle_network 用于指定请求排队时间,如果请求排队时间大于或等于该值,则不允许执行查询。 - - -| **属性** | **描述** | -|--------|---------------| -| 参数类型 | numeric | -| 默认值 | -1 | -| 取值范围 | 与系统负载相关,单位 us | -| 生效范围 | GLOBAL | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/9.character_set_server.md b/docs/docs-cn/13.reference-guide/2.system-variable/9.character_set_server.md deleted file mode 100644 index 262c56957..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/9.character_set_server.md +++ /dev/null @@ -1,15 +0,0 @@ -character_set_server -========================================= - -character_set_server 用于设置服务器字符集。 - - -| **属性** | **描述** | -|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | string | -| 默认值 | utf8mb4 | -| 取值范围 | * utf8mb4 * binary * gbk * gb18030 * utf16 | -| 生效范围 | * GLOBAL * SESSION | -| 是否可以为空 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/90.auto_increment_cache_size.md b/docs/docs-cn/13.reference-guide/2.system-variable/90.auto_increment_cache_size.md deleted file mode 100644 index ce6fb7475..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/90.auto_increment_cache_size.md +++ /dev/null @@ -1,16 +0,0 @@ -auto_increment_cache_size -============================================== - -auto_increment_cache_size 用于设置缓存的自增值个数。 - - -| **属性** | **描述** | -|---------|------------------| -| 参数类型 | int | -| 默认值 | 1000000 | -| 取值范围 | \[1, 100000000\] | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/91.ob_enable_jit.md b/docs/docs-cn/13.reference-guide/2.system-variable/91.ob_enable_jit.md deleted file mode 100644 index 711f388dc..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/91.ob_enable_jit.md +++ /dev/null @@ -1,17 +0,0 @@ -ob_enable_jit -================================== - -ob_enable_jit 用于设置 JIT 执行引擎模式。 - - -| **属性** | **描述** | -|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | enum | -| 默认值 | OFF | -| 取值范围 | * OFF:当前 Session 不开启表达式编译执行。 * AUTO:当前 Session 表达式编译执行只有在 SQL 执行平均 RT 大于 1s 时才开启。 * FORCE:当前 Session 强制开启表达式编译执行功能。 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | -| 是否影响计划生成 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/92.ob_timestamp_service.md b/docs/docs-cn/13.reference-guide/2.system-variable/92.ob_timestamp_service.md deleted file mode 100644 index 44e74cfad..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/92.ob_timestamp_service.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_timestamp_service -========================================= - -ob_timestamp_service 用于指定使用何种时间戳服务。 - - -| **属性** | **描述** | -|---------|-------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | enum | -| 默认值 | GTS | -| 取值范围 | * LTS * GTS * HA_GTS | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/93.plugin_dir.md b/docs/docs-cn/13.reference-guide/2.system-variable/93.plugin_dir.md deleted file mode 100644 index 3e2105e8e..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/93.plugin_dir.md +++ /dev/null @@ -1,14 +0,0 @@ -plugin_dir -=============================== - -plugin_dir 用于设置存放插件 DLL 的路径。 - - -| **属性** | **描述** | -|--------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | varchar | -| 默认值 | ./plugin_dir/ | -| 取值范围 | NULL | -| 生效范围 | * GLOBAL * SESSION | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/94.undo_retention.md b/docs/docs-cn/13.reference-guide/2.system-variable/94.undo_retention.md deleted file mode 100644 index f8552efe4..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/94.undo_retention.md +++ /dev/null @@ -1,39 +0,0 @@ -undo_retention -=================================== - -`undo_retention` 表示系统应保留的多版本数据范围,单位为秒,在转储时控制多版本数据的回收。 - - -| **属性** | **描述** | -|--------|-------------| -| 参数类型 | int | -| 默认值 | 0 | -| 取值范围 | \[0, 2^32^) | -| 生效范围 | GLOBAL | - - - -OceanBase 数据库转储的数据会保留多个版本的历史数据行,您可以通过 `undo_retention `来控制转储中保留的多版本数据范围。 - -其中: - -* 当 `undo_retention` 的值为 `0` 时,表示未开启多版本转储,即转储文件仅保留当前最新版本的行数据。 - - - - - - - - -* 当 `undo_retention` 的值大于 `0` 时,表示开启多版本转储,并且转储文件保留这段时间(多少秒)以内的多版本行数据。 - - - - - -**注意** - - - -租户开启多版本转储后,大版本合并会保留对应的增量转储文件,但 Major SSTable 中不会存放多版本数据。建议该参数不要设置过大,防止因参数过大而导致保留的 SSTable 数量超限。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/95.ob_sql_audit_percentage.md b/docs/docs-cn/13.reference-guide/2.system-variable/95.ob_sql_audit_percentage.md deleted file mode 100644 index 99d400b05..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/95.ob_sql_audit_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_sql_audit_percentage -============================================ - -ob_sql_audit_percentage 用于设置 SQL Audit 内存上限占当前租户内存的百分比。 - - -| **属性** | **描述** | -|---------|------------| -| 参数类型 | int | -| 默认值 | 10 | -| 取值范围 | \[0, 100\] | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/96.ob_enable_sql_audit.md b/docs/docs-cn/13.reference-guide/2.system-variable/96.ob_enable_sql_audit.md deleted file mode 100644 index 0cdd4f11e..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/96.ob_enable_sql_audit.md +++ /dev/null @@ -1,17 +0,0 @@ -ob_enable_sql_audit -======================================== - -ob_enable_sql_audit 用于控制当前租户是否开启 SQL Audit 功能。 - - -| **属性** | **描述** | -|---------|------------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | true | -| 取值范围 | * true:表示开启 * false:表示关闭 | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - - -enable_sql_audit 为 false 时,全部的租户均不会开启 sql audit 功能。 diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/97.optimizer_use_sql_plan_baselines.md b/docs/docs-cn/13.reference-guide/2.system-variable/97.optimizer_use_sql_plan_baselines.md deleted file mode 100644 index 210b522d7..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/97.optimizer_use_sql_plan_baselines.md +++ /dev/null @@ -1,15 +0,0 @@ -optimizer_use_sql_plan_baselines -===================================================== - -`optimizer_use_sql_plan_baselines` 用于控制优化器是否会使用 Plan Baseline 计划。 - - -| **属性** | **描述** | -|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 0:表示在新生成计划时,不再考虑 Plan Baseline 中的计划,直接使用优化器生成新计划并执行。 * 1: 表示在新生成计划时,优化器会优先使用Plan Baseline 计划,对于新的不同计划则验证通过后才使用。 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/98.optimizer_capture_sql_plan_baselines.md b/docs/docs-cn/13.reference-guide/2.system-variable/98.optimizer_capture_sql_plan_baselines.md deleted file mode 100644 index fe45e4f0c..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/98.optimizer_capture_sql_plan_baselines.md +++ /dev/null @@ -1,15 +0,0 @@ -optimizer_capture_sql_plan_baselines -========================================================= - -`optimizer_capture_sql_plan_baselines` 用于控制是否自动捕获新计划到 Plan Baseline。 - - -| **属性** | **描述** | -|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | bool | -| 默认值 | 1 | -| 取值范围 | * 0:表示不自动捕获新计划到 plan baseline中。 * 1:表示对于新生成的计划,如果该 SQL 没有对应的 Plan Baseline,则将该计划加入到 SQL Plan Baseline, 已有 Plan Baseline 且与新计划不同, 则会触发计划演进进行验证,确定是否需要将新计划替换老的 Plan Baseline。 | -| 生效范围 | * GLOBAL * SESSION | -| 是否参与序列化 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/2.system-variable/99.parallel_max_servers.md b/docs/docs-cn/13.reference-guide/2.system-variable/99.parallel_max_servers.md deleted file mode 100644 index 6bbcb43d6..000000000 --- a/docs/docs-cn/13.reference-guide/2.system-variable/99.parallel_max_servers.md +++ /dev/null @@ -1,16 +0,0 @@ -parallel_max_servers -========================================= - -parallel_max_servers 用于设置每个 Server 上并行执行(Parallel eXecution,PX)线程池的大小。 - - -| **属性** | **描述** | -|---------|-------------| -| 参数类型 | int | -| 默认值 | 0 | -| 取值范围 | \[0, 1800\] | -| 生效范围 | GLOBAL | -| 是否参与序列化 | 是 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/1.system-configuration-items-overview-1_2894363.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/1.system-configuration-items-overview-1_2894363.md deleted file mode 100644 index 83c8279a4..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/1.system-configuration-items-overview-1_2894363.md +++ /dev/null @@ -1,71 +0,0 @@ -系统配置项概述 -============================ - -OceanBase 数据库的配置项对应 OceanBase 数据库的集群参数,通过配置项可以控制集群的负载均衡、合并时间、合并方式、资源分配和模块开关等。 - -生效方式 -------------------------- - -配置项一般分为动态生效和重启生效两种方式,大部分配置项为动态生效方式,即不需要重启 OBServer 即可生效。 - -参数级别 -------------------------- - -OceanBase 数据库的配置项分为集群级别和租户级别。 - -查询某个配置项为集群级别还是租户级别的方法如下: - -```sql -obclient> SHOW PARAMETERS LIKE 'max_syslog_file_count'; -+-------+----------+----------------+----------+-----------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ -| zone | svr_type | svr_ip | svr_port | name | data_type | value | info - | section | scope | source | edit_level | -+-------+----------+----------------+----------+-----------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ -| zone2 | observer | -xx.xx.xx.xx - | 2882 | max_syslog_file_count | NULL | 0 | specifies the maximum number of the log files that can co-exist before the log file recycling kicks in. Each log file can occupy at most 256MB disk space. When this value is set to 0, no log file will be removed. Range: [0, +∞) in integer | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | -| zone2 | observer | xx.xx.xx.xx | 2882 | max_syslog_file_count | NULL | 0 | specifies the maximum number of the log files that can co-exist before the log file recycling kicks in. Each log file can occupy at most 256MB disk space. When this value is set to 0, no log file will be removed. Range: [0, +∞) in integer | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | -| zone3 | observer | xx.xx.xx.xx | 2882 | max_syslog_file_count | NULL | 0 | specifies the maximum number of the log files that can co-exist before the log file recycling kicks in. Each log file can occupy at most 256MB disk space. When this value is set to 0, no log file will be removed. Range: [0, +∞) in integer | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | -| zone1 | observer | xx.xx.xx.xx | 2882 | max_syslog_file_count | NULL | 0 | specifies the maximum number of the log files that can co-exist before the log file recycling kicks in. Each log file can occupy at most 256MB disk space. When this value is set to 0, no log file will be removed. Range: [0, +∞) in integer | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | -| zone1 | observer | xx.xx.xx.xx | 2882 | max_syslog_file_count | NULL | 0 | specifies the maximum number of the log files that can co-exist before the log file recycling kicks in. Each log file can occupy at most 256MB disk space. When this value is set to 0, no log file will be removed. Range: [0, +∞) in integer | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | -+-------+----------+----------------+----------+-----------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+ -5 rows in set (0.02 sec) -``` - - - -其中,`scope` 列对应的值为 `CLUSTER` 表示该配置项为集群级别;如果 `scope` 列对应的值为 `TENANT`,则表示该配置项为租户级别。 - -管理权限 -------------------------- - -配置项的管理遵循以下管理规则: - -* 系统租户可以查看和设置所有其他租户(包括系统租户)的配置项。 - - - -* 普通租户只能查看和设置本租户的配置项。 - - - - - - -当 OBServer 启动后,如果未指定配置项,则系统会使用指定配置项的默认值。更多配置项的查看和设置操作请参见 [集群参数管理](../../6.administrator-guide/3.basic-database-management/1.oceanbase-cluster-management/7.cluster-parameter-management/1.overview-of-cluster-parameter-management.md) 章节。 - -与系统变量对比 ----------------------------- - - - -| 对比项 | 系统配置项 | 系统变量 | -|------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 生效范围 | 分为集群、Zone、机器和租户。 | 分为租户的 Global 或 Session 级别。 | -| 生效方式 | * 动态生效:`edit_level` 为`dynamic_effective`。 * 重启生效:`edit_level` 为 `static_effective` 。 | * 设置 Session 级别的变量仅对当前 Session 有效,对其他 Session 无效。 * 设置 Global 级别的变量对当前 Session 无效,需要重新登录建立新的 Session 才会生效。 | -| 修改方式 | * 支持通过 SQL 语句修改,示例如下: ```sql obclient> Alter SYSTEM SET schema_history_expire_time='1h' ``` * 支持通过启动参数修改,示例如下: ```sql cd /home/admin && ./bin/observer -o "schema_history_expire_time='1h'" ``` | 仅支持通过 SQL 语句修改,示例如下: * MySQL 模式 ```sql obclient> SET ob_query_timeout = 20000000; obclient> SET GLOBAL ob_query_timeout = 20000000; ``` * Oracle 模式 ```sql obclient> SET ob_query_timeout = 20000000; obclient> ALTER SYSTEM SET ob_query_timeout = 20000000; ``` | -| 持久化 | 持久化到内部表与配置文件,可以在 `/home/admin/oceanbase/etc/observer.config.bin` 与 `/home/admin/oceanbase/etc/observer.config.bin.history` 文件中查询该配置项。 | 仅 GLOBAL 级别的变量会持久化,SESSION 级别的变量不会进行持久化。 | -| 生命周期 | 长,从进程启动到退出。 | 短,需要租户的 Schema 创建成功以后才生效。 | -| 查询方式 | 可以使用 `SHOW PARAMETERS` 语句查询。 | 可以使用 `SHOW [GLOBAL] VARIABLES` 语句查询。 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/10.balancer_task_timeout.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/10.balancer_task_timeout.md deleted file mode 100644 index b1f91723f..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/10.balancer_task_timeout.md +++ /dev/null @@ -1,14 +0,0 @@ -balancer_task_timeout -========================================== - -balancer_task_timeout 用于设置负载均衡等后台任务的超时时间。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 时间类型 | -| 默认值 | 20m,表示 20 分钟 | -| 取值范围 | \[1s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/100.internal_sql_execute_timeout.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/100.internal_sql_execute_timeout.md deleted file mode 100644 index 297a7eb21..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/100.internal_sql_execute_timeout.md +++ /dev/null @@ -1,14 +0,0 @@ -internal_sql_execute_timeout -================================================= - -internal_sql_execute_timeout 用于设置系统内部 DML 请求的时间间隔。 - - -| **属性** | **描述** | -|------------------|-------------------| -| 参数类型 | 时间类型 | -| 默认值 | 30s | -| 取值范围 | \[1000us, 10min\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/101.large_query_worker_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/101.large_query_worker_percentage.md deleted file mode 100644 index 1f467551a..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/101.large_query_worker_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -large_query_worker_percentage -================================================== - -large_query_worker_percentage 用于设置预留给处理大查询的工作线程百分比。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 双精度浮点数 | -| 默认值 | 30 | -| 取值范围 | \[0, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/102.large_query_threshold.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/102.large_query_threshold.md deleted file mode 100644 index 93cd07ad4..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/102.large_query_threshold.md +++ /dev/null @@ -1,15 +0,0 @@ -large_query_threshold -========================================== - -large_query_threshold 用于设置查询执行时间的阈值。超过时间的请求可能被暂停,暂停后自动被判断为大查询,执行大查询调度策略。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 5s | -| 取值范围 | \[1ms, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/103.leak_mod_to_check.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/103.leak_mod_to_check.md deleted file mode 100644 index 713e9b9c4..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/103.leak_mod_to_check.md +++ /dev/null @@ -1,15 +0,0 @@ -leak_mod_to_check -====================================== - -leak_mod_to_check 用于内存泄露检查,是属于内部调试的功能。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串 | -| 默认值 | none | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/104.lease_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/104.lease_time.md deleted file mode 100644 index f97f0f66a..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/104.lease_time.md +++ /dev/null @@ -1,16 +0,0 @@ -lease_time -=============================== - -lease_time 用于设置心跳租约时长。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 时间类型 | -| 默认值 | 10s | -| 取值范围 | \[1s, 5min\] | -| 是否重启 OBServer 生效 | 否 | - - - -RootService 在心跳租约时长内未收到 OBServer 的心跳信息,则认为 OBServer 为脱机状态。 一般不建议修改该配置项。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/105.location_cache_cpu_quota.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/105.location_cache_cpu_quota.md deleted file mode 100644 index 2d800884d..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/105.location_cache_cpu_quota.md +++ /dev/null @@ -1,14 +0,0 @@ -location_cache_cpu_quota -============================================= - -location_cache_cpu_quota 用于设置位置缓存模块使用的 CPU 配额。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 双精度浮点数 | -| 默认值 | 5 | -| 取值范围 | \[0, 10\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/106.location_cache_expire_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/106.location_cache_expire_time.md deleted file mode 100644 index 98bff25e6..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/106.location_cache_expire_time.md +++ /dev/null @@ -1,15 +0,0 @@ -location_cache_expire_time -=============================================== - -location_cache_expire_time 用于设置分区位置缓存中分区位置信息的过期时长。不建议修改。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 600s | -| 取值范围 | \[1s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/107.location_cache_priority.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/107.location_cache_priority.md deleted file mode 100644 index ec415af95..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/107.location_cache_priority.md +++ /dev/null @@ -1,15 +0,0 @@ -location_cache_priority -============================================ - -location_cache_priority 用于设置位置缓存在系统缓存服务中的优先级。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 1000 | -| 取值范围 | \[1s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/108.location_cache_refresh_min_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/108.location_cache_refresh_min_interval.md deleted file mode 100644 index 63ab8d15c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/108.location_cache_refresh_min_interval.md +++ /dev/null @@ -1,15 +0,0 @@ -location_cache_refresh_min_interval -======================================================== - -location_cache_refresh_min_interval 用于设置位置缓存刷新请求的最小间隔,防止产生过多刷新请求造成系统压力过大。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 100ms | -| 取值范围 | \[0s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/109.location_fetch_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/109.location_fetch_concurrency.md deleted file mode 100644 index 16401c614..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/109.location_fetch_concurrency.md +++ /dev/null @@ -1,14 +0,0 @@ -location_fetch_concurrency -=============================================== - -location_fetch_concurrency 用于设置单机 location_cache 刷新的最大并发数。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 整型 | -| 默认值 | 20 | -| 取值范围 | \[1, 1000\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/11.balancer_tolerance_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/11.balancer_tolerance_percentage.md deleted file mode 100644 index 511b10ff0..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/11.balancer_tolerance_percentage.md +++ /dev/null @@ -1,14 +0,0 @@ -balancer_tolerance_percentage -================================================== - -balancer_tolerance_percentage 用于设置负载均衡策略中,租户内多个 UNIT 间磁盘不均衡程度的宽容度,如果在均值 + 或 - 宽容度范围之内,不会触发执行均衡动作。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 10 | -| 取值范围 | \[1, 99\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/110.location_refresh_thread_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/110.location_refresh_thread_count.md deleted file mode 100644 index 8a60091fe..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/110.location_refresh_thread_count.md +++ /dev/null @@ -1,15 +0,0 @@ -location_refresh_thread_count -================================================== - -location_refresh_thread_count 用于设置 OBServer 从 RootService 中获取分区位置信息的线程数量。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 4 | -| 取值范围 | \[2, 64\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/111.log_archive_checkpoint_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/111.log_archive_checkpoint_interval.md deleted file mode 100644 index 0f6faf054..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/111.log_archive_checkpoint_interval.md +++ /dev/null @@ -1,14 +0,0 @@ -log_archive_checkpoint_interval -==================================================== - -log_archive_checkpoint_interval 用于设置冷数据的日志归档检查点的时间间隔。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 30s | -| 取值范围 | \[5s, 1h\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/112.log_archive_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/112.log_archive_concurrency.md deleted file mode 100644 index 3524cd692..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/112.log_archive_concurrency.md +++ /dev/null @@ -1,14 +0,0 @@ -log_archive_concurrency -============================================ - -log_archive_concurrency 用于设置日志归档的并发度。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/113.log_restore_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/113.log_restore_concurrency.md deleted file mode 100644 index c157c8673..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/113.log_restore_concurrency.md +++ /dev/null @@ -1,14 +0,0 @@ -log_restore_concurrency -============================================ - -log_restore_concurrency 用于设置恢复日志的并发度。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 10 | -| 取值范围 | \[1, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/114.major_freeze_duty_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/114.major_freeze_duty_time.md deleted file mode 100644 index 3cba8505c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/114.major_freeze_duty_time.md +++ /dev/null @@ -1,15 +0,0 @@ -major_freeze_duty_time -=========================================== - -major_freeze_duty_time 用于设置每日定时冻结和合并的触发时刻。 - - -| **属性** | **描述** | -|------------------|------------------| -| 参数类型 | 时刻 | -| 默认值 | 02:00 | -| 取值范围 | \[00:00, 23:59\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/115.max_kept_major_version_number.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/115.max_kept_major_version_number.md deleted file mode 100644 index 2c69ae0ab..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/115.max_kept_major_version_number.md +++ /dev/null @@ -1,15 +0,0 @@ -max_kept_major_version_number -================================================== - -max_kept_major_version_number 用于设置数据保留的冻结版本数量。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 2 | -| 取值范围 | \[1, 16\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/116.max_string_print_length.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/116.max_string_print_length.md deleted file mode 100644 index 1d760670b..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/116.max_string_print_length.md +++ /dev/null @@ -1,15 +0,0 @@ -max_string_print_length -============================================ - -max_string_print_length 用于设置打印系统日志时,单行日志最大长度。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 500 | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/117.max_syslog_file_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/117.max_syslog_file_count.md deleted file mode 100644 index ea70390f6..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/117.max_syslog_file_count.md +++ /dev/null @@ -1,16 +0,0 @@ -max_syslog_file_count -========================================== - -max_syslog_file_count 用于设置在回收日志文件之前可以容纳的日志文件数量。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - -每个日志文件最多可以占用 256 MB 的磁盘空间。 当该配置项的值为 0 时,不会删除任何日志文件。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/118.merge_stat_sampling_ratio.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/118.merge_stat_sampling_ratio.md deleted file mode 100644 index ae79ad3c0..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/118.merge_stat_sampling_ratio.md +++ /dev/null @@ -1,14 +0,0 @@ -merge_stat_sampling_ratio -============================================== - -merge_stat_sampling_ratio 用于设置合并时候数据列统计信息的采样率。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 100 | -| 取值范围 | \[0, 100\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/119.major_compact_trigger.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/119.major_compact_trigger.md deleted file mode 100644 index 82ca308b8..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/119.major_compact_trigger.md +++ /dev/null @@ -1,16 +0,0 @@ -major_compact_trigger -========================================== - -major_compact_trigger 用于设置多少次小合并触发一次全局合并。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 整型 | -| 默认值 | 5 | -| 取值范围 | \[0, 65535\] | -| 是否重启 OBServer 生效 | 否 | - - - -当 major_compact_trigger 配置项的取值为 0 时,表示关闭小合并。该配置项与配置项 minor_freeze_times 的功能相同。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/12.balancer_emergency_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/12.balancer_emergency_percentage.md deleted file mode 100644 index 33b88539f..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/12.balancer_emergency_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -balancer_emergency_percentage -================================================== - -balancer_emergency_percentage 用于设置 UNIT 负载阈值,即当 UNIT 负载超过该阈值时,允许开启副本向外迁移,即使在合并期间也执行负载均衡。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 80 | -| 取值范围 | \[1, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/120.memory_chunk_cache_size.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/120.memory_chunk_cache_size.md deleted file mode 100644 index 56d8f1d35..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/120.memory_chunk_cache_size.md +++ /dev/null @@ -1,16 +0,0 @@ -memory_chunk_cache_size -============================================ - -memory_chunk_cache_size 用于设置内存分配器缓存的内存块容量。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 容量单位 | -| 默认值 | 0M | -| 取值范围 | \[0M, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - -当 memory_chunk_cache_size 配置项的值为 0 时,表示系统自适应。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/121.memory_limit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/121.memory_limit.md deleted file mode 100644 index 0cb45a9c7..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/121.memory_limit.md +++ /dev/null @@ -1,48 +0,0 @@ -memory_limit -================================= - -memory_limit 表示可用的总内存大小。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 容量单位 | -| 默认值 | 0 | -| 取值范围 | \[0M, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - -memory_limit 的默认值为 0。如果该值不为 0,则系统会忽略 memory_limit_percentage 的设置而优先使用 memory_limit 配置的值。例如,一台物理机的内存为 100 G,memory_limit_percentage 设置为 80,表示使用 80% 的内存,而 memory_limit 参数设置为 90G,则实际物理机上 OceanBase 数据库可分配的内存使用 memory_limit 的配置,即 90 G。 - -使用注意事项: - -* memory_limit 的默认单位为 MB。 - - 例如,`memory_limit='40G' `表示设置 OceanBase 数据库进程的使用内存上限是40 GB。由于默认单位为 MB,则 `memory_limit=40960 `与 `memory_limit='40G' `设置的值相同。 - - -* memory_limit 的值目前无上限。如果设置的内存最大上限超过了实际的物理内存总和,则会导致系统中其他按总内存计算的值偏大。 - - - -* 如果希望限制运行中的 OceanBase 数据库的内存大小,可以直接修改 memory_limit 的值,使其达到预期。设置后,后台参数 Reload 线程会使其动态生效,无需重启。但是在设置时,需要保证 memory_limit 的值小于系统总 hold 值。 - - - **注意** - - - - `memory_limit `的值必须大于 OBServer 实际已使用的内存。 - - 查询当前已使用的内存数(单位:GB)的方法如下: - - ```sql - obclient> SELECT value/1024/1024/1024 used_gb FROM v$sysstat WHERE name LIKE '%observer memory%' AND con_id = 1 AND stat_id=140008 AND name='observer memory used size'; - ``` - - - - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/122.memory_limit_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/122.memory_limit_percentage.md deleted file mode 100644 index 69168b64c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/122.memory_limit_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -memory_limit_percentage -============================================ - -memory_limit_percentage 用于设置系统总可用内存大小占总内存大小的百分比。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 80 | -| 取值范围 | \[10, 90\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/123.memory_reserved.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/123.memory_reserved.md deleted file mode 100644 index 520b243dd..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/123.memory_reserved.md +++ /dev/null @@ -1,15 +0,0 @@ -memory_reserved -==================================== - -memory_reserved 用于设置系统预留内存的大小。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 容量单位 | -| 默认值 | 500M | -| 取值范围 | \[10M, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/124.merge_thread_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/124.merge_thread_count.md deleted file mode 100644 index 69965508f..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/124.merge_thread_count.md +++ /dev/null @@ -1,16 +0,0 @@ -merge_thread_count -======================================= - -`merge_thread_count` 用于设置每日合并工作的线程数。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0, 256\] | -| 是否重启 OBServer 生效 | 否 | - - - -该配置项的值为 `0` 时,合并的工作进程数的计算方式为 `min{10,cpu_cnt*0.3}`,其中 `cpu_cnt` 为系统 CPU 的数量。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/125.merger_check_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/125.merger_check_interval.md deleted file mode 100644 index 0db8acc3b..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/125.merger_check_interval.md +++ /dev/null @@ -1,15 +0,0 @@ -merger_check_interval -========================================== - -merger_check_interval 用于设置合并状态检查线程的调度间隔。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 时间类型 | -| 默认值 | 10m,表示 10 分钟 | -| 取值范围 | \[10s, 60m\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/126.merger_completion_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/126.merger_completion_percentage.md deleted file mode 100644 index df43011cf..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/126.merger_completion_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -merger_completion_percentage -================================================= - -merger_completion_percentage 用于设置合并完成副本数的百分比阈值,达到该阈值则认为本轮合并完成调度。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 100 | -| 取值范围 | \[5, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/127.merger_switch_leader_duration_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/127.merger_switch_leader_duration_time.md deleted file mode 100644 index 9c8e996f6..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/127.merger_switch_leader_duration_time.md +++ /dev/null @@ -1,15 +0,0 @@ -merger_switch_leader_duration_time -======================================================= - -merger_switch_leader_duration_time 用于设置每日合并时批量切主的时间间隔。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 3m,表示 3 分钟 | -| 取值范围 | \[0s, 30\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/128.merger_warm_up_duration_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/128.merger_warm_up_duration_time.md deleted file mode 100644 index fc5160917..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/128.merger_warm_up_duration_time.md +++ /dev/null @@ -1,15 +0,0 @@ -merger_warm_up_duration_time -================================================= - -merger_warm_up_duration_time 用于设置合并时,新版基线数据的预热时间。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 时间类型 | -| 默认值 | 0s | -| 取值范围 | \[0s, 60m\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/129.max_px_worker_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/129.max_px_worker_count.md deleted file mode 100644 index 79fe90bf9..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/129.max_px_worker_count.md +++ /dev/null @@ -1,15 +0,0 @@ -max_px_worker_count -======================================== - -max_px_worker_count 用于设置 SQL 并行查询引擎使用的最大线程数。 - - -| **属** **性** | **描述** | -|------------------|--------------| -| 参数类型 | 整型 | -| 默认值 | 64 | -| 取值范围 | \[0, 65535\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/13.balance_blacklist_failure_threshold.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/13.balance_blacklist_failure_threshold.md deleted file mode 100644 index 8e953d73e..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/13.balance_blacklist_failure_threshold.md +++ /dev/null @@ -1,14 +0,0 @@ -balance_blacklist_failure_threshold -======================================================== - -balance_blacklist_failure_threshold 用于设置副本迁移等后台任务连续失败次数的阈值。副本迁移等后台任务连续失败次数超过该阈值后,将被放入黑名单。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 整型 | -| 默认值 | 5 | -| 取值范围 | \[0, 1000\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/130.migration_disable_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/130.migration_disable_time.md deleted file mode 100644 index b3eb26810..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/130.migration_disable_time.md +++ /dev/null @@ -1,15 +0,0 @@ -migration_disable_time -=========================================== - -migration_disable_time 用于设置因磁盘满等原因导致某个节点数据迁入失败时的暂停迁入时长。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 3600s | -| 取值范围 | \[1s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/131.min_observer_version.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/131.min_observer_version.md deleted file mode 100644 index 1c94be0ed..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/131.min_observer_version.md +++ /dev/null @@ -1,15 +0,0 @@ -min_observer_version -========================================= - -`min_observer_version` 用于设置本集群最低的 OBServer 应用程序版本号。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串 | -| 默认值 | 3.1.0 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/132.minor_deferred_gc_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/132.minor_deferred_gc_time.md deleted file mode 100644 index 966dcf0f6..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/132.minor_deferred_gc_time.md +++ /dev/null @@ -1,15 +0,0 @@ -minor_deferred_gc_time -=========================================== - -minor_deferred_gc_time 用于设置合并之后 SSTable 延迟回收的时间间隔。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 时间类型 | -| 默认值 | 0s | -| 取值范围 | \[0s, 24h\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/133.minor_freeze_times.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/133.minor_freeze_times.md deleted file mode 100644 index 512d341ff..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/133.minor_freeze_times.md +++ /dev/null @@ -1,19 +0,0 @@ -minor_freeze_times -======================================= - -minor_freeze_times 用于设置多少次小合并触发一次全局合并。值为 0 时,表示关闭小合并。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 整型 | -| 默认值 | 5 | -| 取值范围 | \[0, 65535\] | -| 是否重启 OBServer 生效 | 否 | - - -**说明** - - - -minor_freeze_times 配置项与 major_compact_trigger 配置项具有相同功能。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/134.minor_warm_up_duration_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/134.minor_warm_up_duration_time.md deleted file mode 100644 index 267ecdd4c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/134.minor_warm_up_duration_time.md +++ /dev/null @@ -1,16 +0,0 @@ -minor_warm_up_duration_time -================================================ - -minor_warm_up_duration_time 用于设置小合并产生新转储文件的预热时间。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 时间类型 | -| 默认值 | 30s | -| 取值范围 | \[0s, 60m\] | -| 是否重启 OBServer 生效 | 否 | - - - -当 minor_warm_up_duration_time 配置项的值为 0s 时,表示不进行预热。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/135.mysql_port.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/135.mysql_port.md deleted file mode 100644 index b9a7d5346..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/135.mysql_port.md +++ /dev/null @@ -1,15 +0,0 @@ -mysql_port -=============================== - -mysql_port 用于设置 SQL 服务协议端口号。 - - -| **属性** | **描述** | -|------------------|-----------------| -| 参数类型 | 整型 | -| 默认值 | 2880 | -| 取值范围 | \[1025, 65535\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/136.minor_merge_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/136.minor_merge_concurrency.md deleted file mode 100644 index 4cf41f71c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/136.minor_merge_concurrency.md +++ /dev/null @@ -1,14 +0,0 @@ -minor_merge_concurrency -============================================ - -minor_merge_concurrency 用于设置小合并时的并发线程数。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0, 64\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/137.multiblock_read_gap_size.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/137.multiblock_read_gap_size.md deleted file mode 100644 index c00f22438..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/137.multiblock_read_gap_size.md +++ /dev/null @@ -1,14 +0,0 @@ -multiblock_read_gap_size -============================================= - -multiblock_read_gap_size 用于设置一次 IO 聚合读取块缓存的最大容量。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 容量单位 | -| 默认值 | 0K | -| 取值范围 | \[0k, 2M\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/138.multiblock_read_size.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/138.multiblock_read_size.md deleted file mode 100644 index eb2d0f9f2..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/138.multiblock_read_size.md +++ /dev/null @@ -1,15 +0,0 @@ -multiblock_read_size -========================================= - -multiblock_read_size 用于设置读取数据时 IO 聚合大小。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 容量单位 | -| 默认值 | 128k | -| 取值范围 | \[0K, 2M\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/139.micro_block_merge_verify_level.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/139.micro_block_merge_verify_level.md deleted file mode 100644 index 859ae6602..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/139.micro_block_merge_verify_level.md +++ /dev/null @@ -1,14 +0,0 @@ -micro_block_merge_verify_level -=================================================== - -micro_block_merge_verify_level 用于设置合并时宏块的校验级别。 - - -| **属性** | **描述** | -|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 整型 | -| 默认值 | 2 | -| 取值范围 | * 0:表示不做校验 * 1:表示验证编码算法,将读取编码后的微块以确保数据正确 * 2:表示验证编码和压缩算法,除编码验证外,还将对压缩块进行解压缩以确保数据正确 * 3:表示验证编码,压缩算法和丢失写保护 | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/14.balance_blacklist_retry_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/14.balance_blacklist_retry_interval.md deleted file mode 100644 index c0fdbee49..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/14.balance_blacklist_retry_interval.md +++ /dev/null @@ -1,15 +0,0 @@ -balance_blacklist_retry_interval -===================================================== - -balance_blacklist_retry_interval 用于设置副本迁移等后台任务被放入黑名单后的重试时间间隔。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 时间类型 | -| 默认值 | 30m,表示 30 分钟 | -| 取值范围 | \[0s, 180m\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/140.migrate_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/140.migrate_concurrency.md deleted file mode 100644 index ed2291ef5..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/140.migrate_concurrency.md +++ /dev/null @@ -1,14 +0,0 @@ -migrate_concurrency -======================================== - -migrate_concurrency 用于控制控制内部数据迁移的并发度。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 10 | -| 取值范围 | \[0, 64\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/141.minor_compact_trigger.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/141.minor_compact_trigger.md deleted file mode 100644 index 7b09cfec9..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/141.minor_compact_trigger.md +++ /dev/null @@ -1,16 +0,0 @@ -minor_compact_trigger -========================================== - -minor_compact_trigger 用于控制分层转储触发向下一层下压的阈值。当该层的 Mini SSTable 总数达到设定的阈值时,所有 SSTable 都会被下压到下一层,组成新的 Minor SSTable。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 2 | -| 取值范围 | \[0, 16\] | -| 是否重启 OBServer 生效 | 否 | - - - -当 minor_compact_trigger 的值为 0 时,OceanBase 数据库仍会进行分层转储,即此时 MemTable 仍然会 Dump 为 Mini SSTable,但后续会立即调度下压合并生成新的 Minor SSTable,替代原有的 Minor SSTable。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/142.memstore_limit_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/142.memstore_limit_percentage.md deleted file mode 100644 index 876ee244b..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/142.memstore_limit_percentage.md +++ /dev/null @@ -1,20 +0,0 @@ -memstore_limit_percentage -============================================== - -memstore_limit_percentage 用于设置租户使用 memstore 的内存占其总可用内存的百分比。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 50 | -| 取值范围 | \[1, 99\] | -| 是否重启 OBServer 生效 | 否 | - - - -memstore_limit_percentage 配置项用于计算 Memstore_limit 的值: - -memstore_limit_percentage = memstore_limit / min_memory - -其中,min_memory 为创建租户时指定的值。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/143.net_thread_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/143.net_thread_count.md deleted file mode 100644 index 4c27f58d7..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/143.net_thread_count.md +++ /dev/null @@ -1,16 +0,0 @@ -net_thread_count -===================================== - -net_thread_count 用于设置网络 I/O 线程数。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 12 | -| 取值范围 | \[1, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - -当 net_thread_count 配置项值为 8 时,表示 RPC 和 MySQL 的 libeasy 的 I/O 线程各为 8 个线程。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/144.obconfig_url.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/144.obconfig_url.md deleted file mode 100644 index 794a606dd..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/144.obconfig_url.md +++ /dev/null @@ -1,15 +0,0 @@ -obconfig_url -================================= - -obconfig_url 用于设置 OBConfig 服务的 URL 地址。OBServer 从指定 URL 获取 RootService 的地址。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串类型 | -| 默认值 | 空值 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/145.ob_enable_batched_multi_statement.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/145.ob_enable_batched_multi_statement.md deleted file mode 100644 index 00ea52931..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/145.ob_enable_batched_multi_statement.md +++ /dev/null @@ -1,14 +0,0 @@ -ob_enable_batched_multi_statement -====================================================== - -ob_enable_batched_multi_statement 用于设置是否启用批处理多条语句的功能。 - - -| **属性** | **描述** | -|------------------|---------------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * False:不启用 * True:启用 | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/146.partition_table_check_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/146.partition_table_check_interval.md deleted file mode 100644 index 709ce7b0e..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/146.partition_table_check_interval.md +++ /dev/null @@ -1,15 +0,0 @@ -partition_table_check_interval -=================================================== - -partition_table_check_interval 用于设置 OBServer 从分区表中删除不存在的副本的时间间隔。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 时间类型 | -| 默认值 | 30m,表示 30 分钟 | -| 取值范围 | \[1m, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/147.partition_table_scan_batch_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/147.partition_table_scan_batch_count.md deleted file mode 100644 index 3191bd294..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/147.partition_table_scan_batch_count.md +++ /dev/null @@ -1,15 +0,0 @@ -partition_table_scan_batch_count -===================================================== - -partition_table_scan_batch_count 用于设置批量读取分区表信息的数量。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 整型 | -| 默认值 | 999 | -| 取值范围 | \[1, 65536\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/148.plan_cache_evict_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/148.plan_cache_evict_interval.md deleted file mode 100644 index 58952d0f7..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/148.plan_cache_evict_interval.md +++ /dev/null @@ -1,15 +0,0 @@ -plan_cache_evict_interval -============================================== - -plan_cache_evict_interval 用于设置执行计划缓存的淘汰时间间隔。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 30s | -| 取值范围 | \[0s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/149.px_task_size.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/149.px_task_size.md deleted file mode 100644 index 737452cbc..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/149.px_task_size.md +++ /dev/null @@ -1,15 +0,0 @@ -px_task_size -================================= - -px_task_size 用于设置 SQL 并行查询引擎每个任务处理的数据量大小。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 容量单位 | -| 默认值 | 2M | -| 取值范围 | \[2M, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/15.backup_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/15.backup_concurrency.md deleted file mode 100644 index 31c5f3233..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/15.backup_concurrency.md +++ /dev/null @@ -1,15 +0,0 @@ -backup_concurrency -======================================= - -backup_concurrency 用于设置备份时写文件系统的并发数量。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/150.px_workers_per_cpu_quota.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/150.px_workers_per_cpu_quota.md deleted file mode 100644 index f37ddc478..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/150.px_workers_per_cpu_quota.md +++ /dev/null @@ -1,14 +0,0 @@ -px_workers_per_cpu_quota -============================================= - -px_workers_per_cpu_quota 用于设置并行执行工作线程数的比例。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 10 | -| 取值范围 | \[0, 20\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/151.replica_safe_remove_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/151.replica_safe_remove_time.md deleted file mode 100644 index d21577a75..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/151.replica_safe_remove_time.md +++ /dev/null @@ -1,15 +0,0 @@ -replica_safe_remove_time -============================================= - -replica_safe_remove_time 用于设置已删除副本可以被清理的安全保留时间。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 2h | -| 取值范围 | \[1m, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/152.resource_hard_limit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/152.resource_hard_limit.md deleted file mode 100644 index 54686e811..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/152.resource_hard_limit.md +++ /dev/null @@ -1,30 +0,0 @@ -resource_hard_limit -======================================== - -resource_hard_limit 用于分配 unit 。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 整型 | -| 默认值 | 100 | -| 取值范围 | \[1, 10000\] | -| 是否重启 OBServer 生效 | 否 | - - - -resource_hard_limit 与 resource_soft_limit 配置项一起配合使用。 - -* 如果 Server 的资源占用比少于 resource_soft_limit,则按 best_fit 来分配 Unit; - - - -* 如果 Server 的资源占用比大于 resource_soft_limit,则按照 leaset_load 来分配 Unit。 - - - - - - -在分配 CPU 和内存等资源时,资源总量是实际数量乘以该百分比的值。最终 Server 资源占比不能超过 resource_hard_limit。 - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/153.resource_soft_limit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/153.resource_soft_limit.md deleted file mode 100644 index da9624b90..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/153.resource_soft_limit.md +++ /dev/null @@ -1,16 +0,0 @@ -resource_soft_limit -======================================== - -resource_soft_limit 用于设置是否开启 Unit 均衡。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 整型 | -| 默认值 | 50 | -| 取值范围 | \[1, 10000\] | -| 是否重启 OBServer 生效 | 否 | - - - -当 resource_soft_limit 配置项取值小于 100 时, 表示 Unit 均衡开关打开;当时 resource_soft_limit 配置项取值大于等于 100 时,表示 Unit 均衡开关关闭。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/154.rootservice_async_task_queue_size.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/154.rootservice_async_task_queue_size.md deleted file mode 100644 index 15cb38db8..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/154.rootservice_async_task_queue_size.md +++ /dev/null @@ -1,15 +0,0 @@ -rootservice_async_task_queue_size -====================================================== - -rootservice_async_task_queue_size 用于设置 RootService 内部异步任务队列的大小。 - - -| **属性** | **描述** | -|------------------|---------------| -| 参数类型 | 整型 | -| 默认值 | 16384 | -| 取值范围 | \[8, 131072\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/155.rootservice_async_task_thread_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/155.rootservice_async_task_thread_count.md deleted file mode 100644 index 092f4dd11..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/155.rootservice_async_task_thread_count.md +++ /dev/null @@ -1,15 +0,0 @@ -rootservice_async_task_thread_count -======================================================== - -rootservice_async_task_thread_count 用于设置 RootService 内部异步任务使用的线程池大小。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 4 | -| 取值范围 | \[1, 10\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/156.rootservice_list.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/156.rootservice_list.md deleted file mode 100644 index 5a8ddff94..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/156.rootservice_list.md +++ /dev/null @@ -1,15 +0,0 @@ -rootservice_list -===================================== - -rootservice_list 用于显示 RootService 及其副本所在的机器列表。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串 | -| 默认值 | 空值 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/157.rootservice_ready_check_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/157.rootservice_ready_check_interval.md deleted file mode 100644 index 34331a145..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/157.rootservice_ready_check_interval.md +++ /dev/null @@ -1,15 +0,0 @@ -rootservice_ready_check_interval -===================================================== - -rootservice_ready_check_interval 用于设置 RootService 启动后等待和检查集群状态的时间间隔。 - - -| **属性** | **描述** | -|------------------|------------------| -| 参数类型 | 时间类型 | -| 默认值 | 3s | -| 取值范围 | \[100000us, 1m\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/158.row_compaction_update_limit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/158.row_compaction_update_limit.md deleted file mode 100644 index 7c78c40da..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/158.row_compaction_update_limit.md +++ /dev/null @@ -1,15 +0,0 @@ -row_compaction_update_limit -================================================ - -row_compaction_update_limit 用于设置触发内存中行内数据合并的修改次数。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 整型 | -| 默认值 | 6 | -| 取值范围 | \[1, 6400\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/159.row_purge_thread_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/159.row_purge_thread_count.md deleted file mode 100644 index ab333bb25..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/159.row_purge_thread_count.md +++ /dev/null @@ -1,15 +0,0 @@ -row_purge_thread_count -=========================================== - -row_purge_thread_count 用于设置执行内存中行内数据合并的最大工作线程数。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 4 | -| 取值范围 | \[1, 64\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/16.backup_dest.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/16.backup_dest.md deleted file mode 100644 index 0e7963013..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/16.backup_dest.md +++ /dev/null @@ -1,19 +0,0 @@ -backup_dest -================================ - -backup_dest 用于设置基线备份和日志归档的路径。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串 | -| 默认值 | 空值 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - -**注意** - - - -备份进行过程中不可修改 backup_dest 配置项。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/160.rpc_port.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/160.rpc_port.md deleted file mode 100644 index 1f4c3c2e0..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/160.rpc_port.md +++ /dev/null @@ -1,14 +0,0 @@ -rpc_port -============================= - -rpc_port 用于设置远程访问的协议端口号。 - - -| **属性** | **描述** | -|------------------|-----------------| -| 参数类型 | 整型 | -| 默认值 | 2500 | -| 取值范围 | \[1025, 65535\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/161.rpc_timeout.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/161.rpc_timeout.md deleted file mode 100644 index f1b83fb0c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/161.rpc_timeout.md +++ /dev/null @@ -1,15 +0,0 @@ -rpc_timeout -================================ - -rpc_timeout 用于设置集群内部请求的超时时间。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 时间类型 | -| 默认值 | 2s | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/162.restore_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/162.restore_concurrency.md deleted file mode 100644 index bc37b4303..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/162.restore_concurrency.md +++ /dev/null @@ -1,15 +0,0 @@ -restore_concurrency -======================================== - -restore_concurrency 用于设置从备份恢复租户数据时的最大并发度。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0, 512\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/163.rootservice_memory_limit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/163.rootservice_memory_limit.md deleted file mode 100644 index 0ca6a8cbf..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/163.rootservice_memory_limit.md +++ /dev/null @@ -1,15 +0,0 @@ -rootservice_memory_limit -============================================= - -rootservice_memory_limit 用于设置 RootService 的最大内存容量限制。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 容量单位 | -| 默认值 | 2G | -| 取值范围 | \[2G, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/164.rebuild_replica_data_lag_threshold.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/164.rebuild_replica_data_lag_threshold.md deleted file mode 100644 index 2b7135082..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/164.rebuild_replica_data_lag_threshold.md +++ /dev/null @@ -1,17 +0,0 @@ -rebuild_replica_data_lag_threshold -======================================================= - -rebuild_replica_data_lag_threshold 用于设置备副本的事务日志和主副本差距的阈值,当超过该阈值时,会触发副本重建。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 容量单位 | -| 默认值 | 50GB | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - -rebuild_replica_data_lag_threshold 配置项的值为 0 时,表示不触发副本重建。 - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/165.schema_history_expire_time-1.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/165.schema_history_expire_time-1.md deleted file mode 100644 index aedd0c8d0..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/165.schema_history_expire_time-1.md +++ /dev/null @@ -1,14 +0,0 @@ -schema_history_expire_time -=============================================== - -schema_history_expire_time 用于设置元数据历史数据过期时间。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 时间类型 | -| 默认值 | 7d,d 表示天 | -| 取值范围 | \[1h, 30d\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/166.ssl_client_authentication.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/166.ssl_client_authentication.md deleted file mode 100644 index 57c270888..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/166.ssl_client_authentication.md +++ /dev/null @@ -1,19 +0,0 @@ -ssl_client_authentication -============================================== - -ssl_client_authentication 用于设置是否开启 SSL 连接功能。 - - -| **属性** | **描述** | -|------------------|---------------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * False:不开启 * True:开启 | -| 是否重启 OBServer 生效 | 是 | - - -**注意** - - - -ssl_client_authentication 配置后,仅在服务器重新启动所有 ca、cert、key 等文件后才生效。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/167.server_check_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/167.server_check_interval.md deleted file mode 100644 index 550cf3001..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/167.server_check_interval.md +++ /dev/null @@ -1,15 +0,0 @@ -server_check_interval -========================================== - -server_check_interval 用于设置 Server 表一致性检查的时间间隔。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 30s | -| 取值范围 | \[1s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/168.server_data_copy_in_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/168.server_data_copy_in_concurrency.md deleted file mode 100644 index 75c1eb948..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/168.server_data_copy_in_concurrency.md +++ /dev/null @@ -1,15 +0,0 @@ -server_data_copy_in_concurrency -==================================================== - -server_data_copy_in_concurrency 用于设置单个节点迁入数据的最大并发数。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 整型 | -| 默认值 | 2 | -| 取值范围 | \[1, 1000\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/169.server_data_copy_out_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/169.server_data_copy_out_concurrency.md deleted file mode 100644 index 5f7ada349..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/169.server_data_copy_out_concurrency.md +++ /dev/null @@ -1,15 +0,0 @@ -server_data_copy_out_concurrency -===================================================== - -server_data_copy_out_concurrency 用于设置单个节点迁出数据的最大并发数。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 整型 | -| 默认值 | 2 | -| 取值范围 | \[1, 1000\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/17.backup_net_limit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/17.backup_net_limit.md deleted file mode 100644 index 09d944a74..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/17.backup_net_limit.md +++ /dev/null @@ -1,15 +0,0 @@ -backup_net_limit -===================================== - -backup_net_limit 用于设置集群备份的总带宽。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 容量单位 | -| 默认值 | 0M | -| 取值范围 | \[0M, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/170.server_permanent_offline_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/170.server_permanent_offline_time.md deleted file mode 100644 index 2fb33f5d9..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/170.server_permanent_offline_time.md +++ /dev/null @@ -1,38 +0,0 @@ -server_permanent_offline_time -================================================== - -server_permanent_offline_time 用于设置节点心跳中断的时间阈值,即节点心跳中断多久后认为其被永久下线,永久下线的节点上的数据副本需要被自动补足。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 3600s | -| 取值范围 | \[20s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - -通过设置该配置项,可以避免不必要的副本复制,仅当副本丢失超出该时长后系统才启动永久下线节点上数据副本的复制。 - -该配置项的适用场景及建议值如下: - -* OceanBase 数据库版本升级场景:建议将该配置项的值设置为 `72h` - - **说明** - - - - 在使用 OCP V2.3.5 及以上版本对 OceanBase 数据库 V2.1.2 及以上版本进行升级时,系统会自动将该配置项的值设置为 `72h`。 - - -* OBServer 硬件更换场景:建议将该配置项的值设置为 `4h` - - - -* OBServer 清空上线场景:建议将该配置项的值设置为 `10m`,使集群快速上线 - - - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/171.stack_size.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/171.stack_size.md deleted file mode 100644 index 72359f755..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/171.stack_size.md +++ /dev/null @@ -1,15 +0,0 @@ -stack_size -=============================== - -stack_size 用于设置程序函数调用栈的大小。 - - -| **属性** | **描述** | -|------------------|---------------| -| 参数类型 | 容量单位 | -| 默认值 | 1M | -| 取值范围 | \[512K, 20M\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/172.server_balance_critical_disk_waterlevel.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/172.server_balance_critical_disk_waterlevel.md deleted file mode 100644 index dec0aa5f8..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/172.server_balance_critical_disk_waterlevel.md +++ /dev/null @@ -1,15 +0,0 @@ -server_balance_critical_disk_waterlevel -============================================================ - -server_balance_critical_disk_waterlevel 用于设置磁盘空间的负载均衡功能的水位线。当磁盘水位线超过阈值时,负载均衡策略将倾向于优先考虑磁盘均衡。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 80 | -| 取值范围 | \[0, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/173.server_balance_disk_tolerance_percent.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/173.server_balance_disk_tolerance_percent.md deleted file mode 100644 index b98b3b1da..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/173.server_balance_disk_tolerance_percent.md +++ /dev/null @@ -1,15 +0,0 @@ -server_balance_disk_tolerance_percent -========================================================== - -server_balance_disk_tolerance_percent 用于设置节点间磁盘负载均衡策略中不均衡程度的容忍度。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 1 | -| 取值范围 | \[1, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/174.system_memory.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/174.system_memory.md deleted file mode 100644 index 9a3c1b170..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/174.system_memory.md +++ /dev/null @@ -1,19 +0,0 @@ -system_memory -================================== - -`system_memory` 用于设置系统预留的内存容量。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 容量单位 | -| 默认值 | 30G | -| 取值范围 | \[0M, +∞) | -| 是否重启 OBServer 生效 | 否 | - - -**注意** - - - -系统预留内存不能分配给普通租户使用。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/175.server_balance_cpu_mem_tolerance_percent.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/175.server_balance_cpu_mem_tolerance_percent.md deleted file mode 100644 index 8557a6efc..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/175.server_balance_cpu_mem_tolerance_percent.md +++ /dev/null @@ -1,15 +0,0 @@ -server_balance_cpu_mem_tolerance_percent -============================================================= - -server_balance_cpu_mem_tolerance_percent 在节点负载均衡策略中,用于设置 CPU 和内存资源不均衡的容忍度。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 5 | -| 取值范围 | \[1, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/176.server_cpu_quota_max.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/176.server_cpu_quota_max.md deleted file mode 100644 index 236faa2e8..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/176.server_cpu_quota_max.md +++ /dev/null @@ -1,14 +0,0 @@ -server_cpu_quota_max -========================================= - -server_cpu_quota_max 用于设置系统可以使用的最大 CPU 配额。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 双精度浮点数 | -| 默认值 | 5 | -| 取值范围 | \[0, 16\] | -| 是否重启 OBServer 生效 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/177.server_cpu_quota_min.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/177.server_cpu_quota_min.md deleted file mode 100644 index f6cf061dc..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/177.server_cpu_quota_min.md +++ /dev/null @@ -1,14 +0,0 @@ -server_cpu_quota_min -========================================= - -server_cpu_quota_min 用于设置系统可以使用的最小 CPU 配额,系统会自动预留。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 双精度浮点数 | -| 默认值 | 2.5 | -| 取值范围 | \[0, 16\] | -| 是否重启 OBServer 生效 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/178.sql_audit_memory_limit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/178.sql_audit_memory_limit.md deleted file mode 100644 index 829164d3c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/178.sql_audit_memory_limit.md +++ /dev/null @@ -1,15 +0,0 @@ -sql_audit_memory_limit -=========================================== - -sql_audit_memory_limit 用于设置 SQL 审计数据可占用的最大内存。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 容量单位 | -| 默认值 | 3G | -| 取值范围 | \[64M, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/179.sys_bkgd_io_high_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/179.sys_bkgd_io_high_percentage.md deleted file mode 100644 index ccbca6e8e..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/179.sys_bkgd_io_high_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -sys_bkgd_io_high_percentage -================================================ - -sys_bkgd_io_high_percentage 用于设置系统后台 IO 最高占用百分比。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 90 | -| 取值范围 | \[1, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/18.backup_recovery_window.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/18.backup_recovery_window.md deleted file mode 100644 index 254a1bfcb..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/18.backup_recovery_window.md +++ /dev/null @@ -1,19 +0,0 @@ -backup_recovery_window -=========================================== - -backup_recovery_window 用于设置备份数据可以恢复的时间。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - -**说明** - - - -备份数据恢复的时间单位为天,默认值为 0,表示不自动清理。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/180.sys_bkgd_io_low_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/180.sys_bkgd_io_low_percentage.md deleted file mode 100644 index 5e5fc01b7..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/180.sys_bkgd_io_low_percentage.md +++ /dev/null @@ -1,16 +0,0 @@ -sys_bkgd_io_low_percentage -=============================================== - -sys_bkgd_io_low_percentage 用于设置系统后台 IO 最少占用的百分比。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - -当 sys_bkgd_io_low_percentage 的值为 0 时,系统根据环境自动配置比例。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/181.sys_bkgd_io_timeout.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/181.sys_bkgd_io_timeout.md deleted file mode 100644 index efea2d4f2..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/181.sys_bkgd_io_timeout.md +++ /dev/null @@ -1,14 +0,0 @@ -sys_bkgd_io_timeout -======================================== - -sys_bkgd_io_timeout 系统后台 IO 请求超时时间。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 时间类型 | -| 默认值 | 120s | -| 取值范围 | \[5s, 600s\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/182.sys_bkgd_net_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/182.sys_bkgd_net_percentage.md deleted file mode 100644 index 3b7894f6f..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/182.sys_bkgd_net_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -sys_bkgd_net_percentage -============================================ - -sys_bkgd_net_percentage 用于设置后台系统任务可占用网络带宽百分比。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 60 | -| 取值范围 | \[0, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/183.sys_bkgd_migration_change_member_list_timeout.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/183.sys_bkgd_migration_change_member_list_timeout.md deleted file mode 100644 index 9d396901a..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/183.sys_bkgd_migration_change_member_list_timeout.md +++ /dev/null @@ -1,15 +0,0 @@ -sys_bkgd_migration_change_member_list_timeout -================================================================== - -sys_bkgd_migration_change_member_list_timeout 用于设置副本迁移时变更 Paxos 成员组操作的超时时间。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 时间类型 | -| 默认值 | 1h | -| 取值范围 | \[0s, 24 h\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/184.sys_bkgd_migration_retry_num.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/184.sys_bkgd_migration_retry_num.md deleted file mode 100644 index 388ee5f42..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/184.sys_bkgd_migration_retry_num.md +++ /dev/null @@ -1,15 +0,0 @@ -sys_bkgd_migration_retry_num -================================================= - -sys_bkgd_migration_retry_num 用于设置副本迁移失败时最多重试次数。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 3 | -| 取值范围 | \[3, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/185.syslog_level.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/185.syslog_level.md deleted file mode 100644 index 4e51eaa4b..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/185.syslog_level.md +++ /dev/null @@ -1,15 +0,0 @@ -syslog_level -================================= - -syslog_level 用于设置系统日志级别。 - - -| **属性** | **描述** | -|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串 | -| 默认值 | INFO | -| 取值范围 | * DEBUG * TRACE * INFO * WARN * USER_ERR * ERROR\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/186.switchover_process_thread_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/186.switchover_process_thread_count.md deleted file mode 100644 index 0fb06b5f6..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/186.switchover_process_thread_count.md +++ /dev/null @@ -1,15 +0,0 @@ -switchover_process_thread_count -==================================================== - -switchover_process_thread_count 用于设置主备库切换相关线程池的大小。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 整型 | -| 默认值 | 6 | -| 取值范围 | \[1, 1000\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/187.system_cpu_quota.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/187.system_cpu_quota.md deleted file mode 100644 index ad5c30f5d..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/187.system_cpu_quota.md +++ /dev/null @@ -1,15 +0,0 @@ -system_cpu_quota -===================================== - -system_cpu_quota 用于设置系统租户可使用的 CPU 配额。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 双精度浮点数 | -| 默认值 | 10 | -| 取值范围 | \[0, 16\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/188.sys_cpu_limit_trigger.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/188.sys_cpu_limit_trigger.md deleted file mode 100644 index 31a664b67..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/188.sys_cpu_limit_trigger.md +++ /dev/null @@ -1,15 +0,0 @@ -sys_cpu_limit_trigger -========================================== - -sys_cpu_limit_trigger 用于设置 CPU 利用率阈值,即当 CPU 利用率超过该阈值时,将暂停系统后台任务的执行。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 80 | -| 取值范围 | \[50, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/189.syslog_io_bandwidth_limit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/189.syslog_io_bandwidth_limit.md deleted file mode 100644 index 9c0823dd2..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/189.syslog_io_bandwidth_limit.md +++ /dev/null @@ -1,15 +0,0 @@ -syslog_io_bandwidth_limit -============================================== - -syslog_io_bandwidth_limit 用于设置系统日志所能占用的磁盘 IO 带宽上限,超过带宽上限容量的系统日志将被丢弃。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 容量单位 | -| 默认值 | 30MB | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/19.backup_region.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/19.backup_region.md deleted file mode 100644 index 21b0303bc..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/19.backup_region.md +++ /dev/null @@ -1,15 +0,0 @@ -backup_region -================================== - -backup_region 用于设置用户建议执行备份的地域。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串类型 | -| 默认值 | 空值 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/190.tablet_size.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/190.tablet_size.md deleted file mode 100644 index ee18f238e..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/190.tablet_size.md +++ /dev/null @@ -1,16 +0,0 @@ -tablet_size -================================ - -tablet_size 用于设置分区内部并行处理(合并、查询等)时每个分片的大小。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 容量单位 | -| 默认值 | 128M | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - -tablet_size 的默认取值必须为 2M 的倍数,数值为 0 时,表示不采用分区内并行处理。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/191.tableapi_transport_compress_func.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/191.tableapi_transport_compress_func.md deleted file mode 100644 index 886c6c568..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/191.tableapi_transport_compress_func.md +++ /dev/null @@ -1,15 +0,0 @@ -tableapi_transport_compress_func -===================================================== - -`tableapi_transport_compress_func` 用于设置 tableAPI 查询结果传输使用的压缩算法。 - - -| **属性** | **描述** | -|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串类型 | -| 默认值 | none | -| 取值范围 | * none * lz4_1.0 * snappy_1.0 * zlib_1.0 * zstd_1.0 * zstd 1.3.8 | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/192.tenant_task_queue_size.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/192.tenant_task_queue_size.md deleted file mode 100644 index 2d011e30d..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/192.tenant_task_queue_size.md +++ /dev/null @@ -1,15 +0,0 @@ -tenant_task_queue_size -=========================================== - -tenant_task_queue_size 用于设置每个租户的请求队列大小。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 整型 | -| 默认值 | 65536 | -| 取值范围 | \[1024, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/193.tenant_groups.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/193.tenant_groups.md deleted file mode 100644 index ac54b479d..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/193.tenant_groups.md +++ /dev/null @@ -1,15 +0,0 @@ -tenant_groups -================================== - -tenant_groups 用于设置负载均衡策略中使用的租户组。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串类型 | -| 默认值 | 空值 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/194.trace_log_slow_query_watermark.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/194.trace_log_slow_query_watermark.md deleted file mode 100644 index 5b912d9da..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/194.trace_log_slow_query_watermark.md +++ /dev/null @@ -1,15 +0,0 @@ -trace_log_slow_query_watermark -=================================================== - -trace_log_slow_query_watermark 用于设置查询的执行时间阈值,如果查询的执行时间超过该阈值,则被认为是慢查询,慢查询的追踪日志会被打印到系统日志中。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 100ms | -| 取值范围 | \[1ms, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/195.trace_log_sampling_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/195.trace_log_sampling_interval.md deleted file mode 100644 index 7d81a3a2f..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/195.trace_log_sampling_interval.md +++ /dev/null @@ -1,16 +0,0 @@ -trace_log_sampling_interval -================================================ - -trace_log_sampling_interval 用于设置定期打印跟踪日志信息的时间。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 10ms | -| 取值范围 | \[0ms, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - -当 enable_record_trace_log 设置为 false 时,由 trace_log_sampling_interval 决定打印慢查询和白名单信息的时间间隔。enable_record_trace_log 配置项相关信息请参见 [enable_record_trace_log](../../14.reference-guide-oracle-mode/3.system-configuration-items-1/66.enable_record_trace_log-1.md)。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/196.trx_2pc_retry_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/196.trx_2pc_retry_interval.md deleted file mode 100644 index cb9f0a210..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/196.trx_2pc_retry_interval.md +++ /dev/null @@ -1,15 +0,0 @@ -trx_2pc_retry_interval -=========================================== - -trx_2pc_retry_interval 用于设置两阶段提交失败时候自动重试的时间间隔。 - - -| **属性** | **描述** | -|------------------|-----------------| -| 参数类型 | 时间类型 | -| 默认值 | 100ms | -| 取值范围 | \[1ms, 5000ms\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/197.trx_force_kill_threshold.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/197.trx_force_kill_threshold.md deleted file mode 100644 index c0a503951..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/197.trx_force_kill_threshold.md +++ /dev/null @@ -1,15 +0,0 @@ -trx_force_kill_threshold -============================================= - -trx_force_kill_threshold 用于设置因冻结或切主需要杀事务时的最长等待时间。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 时间类型 | -| 默认值 | 100ms | -| 取值范围 | \[1ms, 10s\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/198.tde_method.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/198.tde_method.md deleted file mode 100644 index 3eea30a43..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/198.tde_method.md +++ /dev/null @@ -1,14 +0,0 @@ -tde_method -=============================== - -tde_method 用于设置透明表空间加密的方式。 - - -| **属性** | **描述** | -|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串类型 | -| 默认值 | none | -| 取值范围 | * none:表示无法使用透明表空间加密 * internal:表示透明加密采用内部表的形式 * bkmi:表示透明加密采用外部 bkmi 的形式 | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/199.token_reserved_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/199.token_reserved_percentage.md deleted file mode 100644 index 2469985de..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/199.token_reserved_percentage.md +++ /dev/null @@ -1,14 +0,0 @@ -token_reserved_percentage -============================================== - -token_reserved_percentage 在控制租户 CPU 调度中,用于设置每次预留多少比例的空闲 token 数给租户。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 双精度浮点数 | -| 默认值 | 30 | -| 取值范围 | \[0, 100\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/2.auto_leader_switch_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/2.auto_leader_switch_interval.md deleted file mode 100644 index 2336b3c05..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/2.auto_leader_switch_interval.md +++ /dev/null @@ -1,17 +0,0 @@ -auto_leader_switch_interval -================================================ - -auto_leader_switch_interval 用于设置自动切主后台线程工作间隔时间。 - - -| **属性** | **描述** | -|----------------|----------| -| 参数类型 | 时间类型 | -| 默认值 | 30s | -| 取值范围 | \[1s,+∞) | -| 是否需要重启OBserver | 否 | - - - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/20.builtin_db_data_verify_cycle.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/20.builtin_db_data_verify_cycle.md deleted file mode 100644 index d37712a1b..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/20.builtin_db_data_verify_cycle.md +++ /dev/null @@ -1,15 +0,0 @@ -builtin_db_data_verify_cycle -================================================= - -builtin_db_data_verify_cycle 用于设置数据坏块自检周期,单位为天。当值为 0 时表示不检查。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 20 | -| 取值范围 | \[0, 360\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/200.unit_balance_resource_weight.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/200.unit_balance_resource_weight.md deleted file mode 100644 index b37aeb712..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/200.unit_balance_resource_weight.md +++ /dev/null @@ -1,28 +0,0 @@ -unit_balance_resource_weight -================================================= - -unit_balance_resource_weight 用于设置 UNIT 均衡策略中使用的资源权重,一般不需要手工配置。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串类型 | -| 默认值 | 空值 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - -**注意** - - - -* 默认值为空。 如果设置,所有权重的总和必须为100。 - - - -* 当打开 enable_unit_balance_resource_weight 时, unit_balance_resource_weight 配置才能生效。 - - - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/201.user_block_cache_priority.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/201.user_block_cache_priority.md deleted file mode 100644 index 87daded34..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/201.user_block_cache_priority.md +++ /dev/null @@ -1,15 +0,0 @@ -user_block_cache_priority -============================================== - -user_block_cache_priority 用于设置数据块缓存在缓存系统中的优先级。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 1 | -| 取值范围 | \[1, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/202.user_row_cache_priority.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/202.user_row_cache_priority.md deleted file mode 100644 index 786cc953c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/202.user_row_cache_priority.md +++ /dev/null @@ -1,14 +0,0 @@ -user_row_cache_priority -============================================ - -user_row_cache_priority 用于设置基线数据行缓存在缓存系统中的优先级。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 1 | -| 取值范围 | \[1, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/203.user_tab_col_stat_cache_priority.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/203.user_tab_col_stat_cache_priority.md deleted file mode 100644 index 70afeda3d..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/203.user_tab_col_stat_cache_priority.md +++ /dev/null @@ -1,15 +0,0 @@ -user_tab_col_stat_cache_priority -===================================================== - -user_tab_col_stat_cache_priority 用于设置统计数据缓存在缓存系统中的优先级。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 1 | -| 取值范围 | \[1, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/204.user_iort_up_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/204.user_iort_up_percentage.md deleted file mode 100644 index 77e76835c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/204.user_iort_up_percentage.md +++ /dev/null @@ -1,14 +0,0 @@ -user_iort_up_percentage -============================================ - -user_iort_up_percentage 用于设置用户磁盘 IO 时延阈值,即用户磁盘 IO 时延超过该阈值后,系统后台 IO 任务将被限流。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 100 | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/205.use_large_pages.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/205.use_large_pages.md deleted file mode 100644 index fc786f4a0..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/205.use_large_pages.md +++ /dev/null @@ -1,14 +0,0 @@ -use_large_pages -==================================== - -use_large_pages 用于管理数据库使用的内存大页。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串 | -| 默认值 | false | -| 取值范围 | * false * true * only | -| 是否重启 OBServer 生效 | 是 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/206.virtual_table_location_cache_expire_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/206.virtual_table_location_cache_expire_time.md deleted file mode 100644 index 81bd81276..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/206.virtual_table_location_cache_expire_time.md +++ /dev/null @@ -1,15 +0,0 @@ -virtual_table_location_cache_expire_time -============================================================= - -virtual_table_location_cache_expire_time 用于设置虚拟表的位置信息缓存过期时间。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 8s | -| 取值范围 | \[1s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/207.workers_per_cpu_quota.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/207.workers_per_cpu_quota.md deleted file mode 100644 index 1abc1b532..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/207.workers_per_cpu_quota.md +++ /dev/null @@ -1,29 +0,0 @@ -workers_per_cpu_quota -========================================== - -`workers_per_cpu_quota` 用于设置分配给每个 CPU 配额的工作线程数量。 - - -| **属性** | **描述** | -|-------------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 10 | -| 取值范围 | \[2, 20\] | -| 是否重启 OBServer 生效 | 否 | - - - -租户中可同时处理的线程数由 `cpu_quota_concurrency` 与 `workers_per_cpu_quota` 2 个配置项控制,且设置时需要满足 `workers_per_cpu_quota > cpu_quota_concurrency`。 - -其中: - -* `workers_per_cpu_quota` 表示租户在每个 CPU 上能分配的最大工作线程数。 - - - -* `cpu_quota_concurrency` 表示租户在每个 CPU 上活跃的工作线程数,也即并发数。`cpu_quota_concurrency` 配置项的详细信息,请参见 [cpu_quota_concurrency](../../14.reference-guide-oracle-mode/3.system-configuration-items-1/35.cpu_quota_concurrency-1.md)。 - - - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/208.wait_leader_batch_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/208.wait_leader_batch_count.md deleted file mode 100644 index ee0e09623..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/208.wait_leader_batch_count.md +++ /dev/null @@ -1,15 +0,0 @@ -wait_leader_batch_count -============================================ - -wait_leader_batch_count 用于设置 RootService 每次发送切主命令的最大分区个数。 - - -| **属性** | **描述** | -|------------------|---------------| -| 参数类型 | 整型 | -| 默认值 | 1024 | -| 取值范围 | \[128, 5000\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/209.writing_throttling_maximum_duration.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/209.writing_throttling_maximum_duration.md deleted file mode 100644 index 25261e9f5..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/209.writing_throttling_maximum_duration.md +++ /dev/null @@ -1,15 +0,0 @@ -writing_throttling_maximum_duration -======================================================== - -write_throttling_maximum_duration 通过控制内存分配进度,控制写入速度。即指定在触发写入限速后,剩余 memstore 内存分配完所需的时间。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 1h | -| 取值范围 | \[1s, 3d\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/21.bf_cache_miss_count_threshold.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/21.bf_cache_miss_count_threshold.md deleted file mode 100644 index 676a1d3c3..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/21.bf_cache_miss_count_threshold.md +++ /dev/null @@ -1,15 +0,0 @@ -bf_cache_miss_count_threshold -================================================== - -bf_cache_miss_count_threshold 用于控制 bloomfilter cache 的触发次数,当宏块未命中次数达到该值时,创建 bloomfilter 缓存。值为 0 时表示关闭。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 100 | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/210.writing_throttling_trigger_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/210.writing_throttling_trigger_percentage.md deleted file mode 100644 index d1d2bf80c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/210.writing_throttling_trigger_percentage.md +++ /dev/null @@ -1,16 +0,0 @@ -writing_throttling_trigger_percentage -========================================================== - -write_throttling_trigger_percentage 用于设置写入速度的阈值。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 100 | -| 取值范围 | \[0, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - -当 memstore 已使用的内存达到该阈值时,触发写入限速。当该配置项的值为 100 时,表示关闭写入限速机制。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/211.weak_read_version_refresh_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/211.weak_read_version_refresh_interval.md deleted file mode 100644 index 76a10556b..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/211.weak_read_version_refresh_interval.md +++ /dev/null @@ -1,20 +0,0 @@ -weak_read_version_refresh_interval -======================================================= - -weak_read_version_refresh_interval 用于设置弱一致性读版本号的刷新周期,影响弱一致性读数据的延时。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 50ms | -| 取值范围 | \[0ms, +∞) | -| 是否重启 OBServer 生效 | 否 | - - -**说明** - - - -weak_read_version_refresh_interval 值为 0 时,表示不再刷新弱一致性读版本号,不提供单调读功能。 - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/212.workarea_size_policy.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/212.workarea_size_policy.md deleted file mode 100644 index 38cc4fa97..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/212.workarea_size_policy.md +++ /dev/null @@ -1,14 +0,0 @@ -workarea_size_policy -========================================= - -`workarea_size_policy` 用于设置手动或者自动调整 SQL 工作区大小的策略。 - - -| **属性** | **描述** | -|------------------|-----------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串类型 | -| 默认值 | AUTO | -| 取值范围 | * MANUAL:表示手动调整 * AUTO:表示自动调整 | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/213.zone.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/213.zone.md deleted file mode 100644 index b7b7023c2..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/213.zone.md +++ /dev/null @@ -1,15 +0,0 @@ -zone -========================= - -zone 用于设置节点所在的 Zone 的名字。该配置项一般不需要配置。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串类型 | -| 默认值 | 空值 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/214.zone_merge_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/214.zone_merge_concurrency.md deleted file mode 100644 index 78ca4a0bf..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/214.zone_merge_concurrency.md +++ /dev/null @@ -1,15 +0,0 @@ -zone_merge_concurrency -=========================================== - -zone_merge_concurrency 用于设置在合并时,支持多少个 Zone 并发。当值为 0 时,由系统根据部署情况自动选择最佳并发度。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 1 | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/215.zone_merge_order.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/215.zone_merge_order.md deleted file mode 100644 index 30b44c83f..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/215.zone_merge_order.md +++ /dev/null @@ -1,14 +0,0 @@ -zone_merge_order -===================================== - -zone_merge_order 用于设置 Zone 的轮转合并顺序。不指定时,由系统自动决定。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串类型 | -| 默认值 | 空值 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/216.zone_merge_timeout.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/216.zone_merge_timeout.md deleted file mode 100644 index 63606d178..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/216.zone_merge_timeout.md +++ /dev/null @@ -1,15 +0,0 @@ -zone_merge_timeout -======================================= - -zone_merge_timeout 用于设置单个 zone 的合并超时时间。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 3h | -| 取值范围 | \[1s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/217.ob_ssl_invited_common_names.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/217.ob_ssl_invited_common_names.md deleted file mode 100644 index 539a3dd67..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/217.ob_ssl_invited_common_names.md +++ /dev/null @@ -1,41 +0,0 @@ -ob_ssl_invited_common_names -================================================ - -ob_ssl_invited_common_names 用于记录当前租户运行的应用身份列表,该身份来自 SSL 双向认证中 Client 端证书 subject 中的 `cn` 字段(common name)。 - - -| 属性 | 描述 | -|------------------|------| -| 参数类型 | 字符串 | -| 默认值 | NONE | -| 取值范围 | 无 | -| 是否重启 OBServer 生效 | 否 | - - - -在用户登录 Server 的密码校验完成后,检查如果同时满足以下三个条件,则限制登录: - -* Client 开启了 SSL,并且 Client 端的 CA、证书或私钥使用的是双向认证。 - - - -* Server 端配置了应用白名单,即白名单不为空。 - - - -* Client 证书 subject 的 `cn` 字段不在白名单内。 - - - - - - -若以上三个条件任何一个都不满足,则白名单检查失效,忽略检查。 - -使用示例如下: - -```sql -obclient> ALTER SYSTEM SET ob_ssl_invited_common_names = 'ALIPAY'; -``` - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/218.ssl_external_kms_info.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/218.ssl_external_kms_info.md deleted file mode 100644 index 37fbb07ea..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/218.ssl_external_kms_info.md +++ /dev/null @@ -1,119 +0,0 @@ -ssl_external_kms_info -========================================== - -ssl_external_kms_info 配置项用于记录 OceanBase 数据库 SSL 功能运行依赖的一些信息,通过 json 字符串方式记录不同 SSL 使用方式下依赖的相关配置,json 中至少包含类型 ssl_mode 字段。 - - -| 属性 | 描述 | -|------------------|------| -| 参数类型 | 字符串 | -| 默认值 | 空字符串 | -| 取值范围 | 无 | -| 是否重启 OBServer 生效 | 否 | - - - -使用说明: - -* 该配置项的默认值为空字符串。当 SSL 开关打开后,SSL 使用密钥将取值默认路径下的默认文件。 - - - -* 该配置项取值必须为有效 json,否则配置项设置会检查失败。 - - - -* 该配置项当前仅 ssl_mode 的取值有两种:file 和 bkmi。 - - * 指定为 file 时, json 字符串中不需要其他内容。 - - - - * 指定为 bkmi 时,运行时向 bkmi 获取 SSL 文件,本地不持久化存储。同时,json 字符串还需要提供完整的应用名、bkmi url、bkmi 根证书、身份秘钥、身份秘钥口令、SSL 私钥名称、SSL 私钥版本号、SSL 证书名称等。并且这些信息确实有效可用,即能通过这些从 bkmi 中获取私钥和证书,否则会报响应错误码。 - - - - - - - - - -为了支持外部其他各自的证书颁发体系,ssl_external_kms_info 还可以定制扩展为其他内容 json 串。 - -示例如下: - -```sql -obclient> ALTER SYSTEM SET external_ssl_info = ' -{ -"ssl_mode":"file" -}'; - -obclient> ALTER SYSTEM SET external_ssl_info = ' -{ -"ssl_mode":"bkmi", -"kms_host":"http://bkmi.test.alipay.net/bkmi/api", -"root_cert": -"-----BEGIN CERTIFICATE----- -MIIDqTCCApGgAwIBAgIHBXbH+VUEQTANBgkqhkiG9w0BAQsFADBaMSwwKgYDVQQD -DCNBbnQgRmluYW5hY2lhbCBJbnRyYW5ldCBDQSBSb290IFJTQTEXMBUGA1UECgwO -QW50IEZpbmFuYWNpYWwxETAPBgNVBAsMCEludHJhbmV0MB4XDTE4MDkyNjE1MzUz -N1oXDTQ4MDkyNjE1MzUzN1owWjEsMCoGA1UEAwwjQW50IEZpbmFuYWNpYWwgSW50 -cmFuZXQgQ0EgUm9vdCBSU0ExFzAVBgNVBAoMDkFudCBGaW5hbmFjaWFsMREwDwYD -VQQLDAhJbnRyYW5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJlz -hgCvUVB7wE4/V4Oj9Gq0Qji5dlIF2AyQ/L6xG/aM2cXmhxm7hhschhb6ERgf5z70 -lX5G22XLkH97mkZbX19aCH6xMmvVUaWpKpC1vrW+ZL8nLzWl8UXVONgqa1NvkIz2 -qUJNdGVgFXaSlH4EaK9FzklpHj1uo8KJdC6m33z8eoFpLREycbSkxISATseQF1y0 -WhpvZ0qB6aRft7OM4B1G0tu1+dlZ3Sh6rrCwR+yCw8vfYR4cUA9e8WFU7YciuTXK -l/1q3LfzU8LCe0Gtv29Ahk8Zb6lG7/XHwHG8diuKvyq4qlTNp/SjCJbuUx6RSBjD -zP1nRacRuKrxI9ybZ8MCAwEAAaN0MHIwHwYDVR0jBBgwFoAUmtzqDGWl1NWKvUAi -yR877VbODwAwHQYDVR0OBBYEFJrc6gxlpdTVir1AIskfO+1Wzg8AMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA8GA1UdJQQIMAYGBFUdJQAwDQYJKoZI -hvcNAQELBQADggEBAEa4NJ8y4OJLpbCC7SCGrGGTJ+ssbVIJdji21F3dn5yIPQfd -M/PM84y2cy6Tp9cvaDjOtagZ2e1Et5TeGZHiUeqlAjWDtY5lgGvJ80VwpxAUDhKn -LGfSMZo1v1gKKVxgh+iaof2L1UCtep5ETsYKeXLkgWsHYBFzqBlhiAZGuQVzaH7T -I66rtw6gOAmJuWoJlJyhVxg0vCgcl0ExaK3LRhkodzGHIonyaEtRCynpgJ4DmIjH -1I7OVqjdHhdt98U2A8oZVNcuwHLkfyXIC6Iu3GVs5IsQudiQwTW/kIOR+Chvu/lC -b/VmGj0MhvmYYc494vWdcNcfED/HPNshio66aiU= ------END CERTIFICATE----- -", -"private_key": -"-----BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: AES-128-CBC,D1CE2F7C3BD77CB130E563CDECB4AB5E -NyTth6D4/xeeQ59tn7pGDBhxbGaAsQpTowATdRRnK3Xn4M7lFo1khTUgfKL+eKPz -5RRf85LfIl4P8/VCgpEsExnaIR/M5FoP3vYIMy3u9cyowG3ioMaQ1ZA/zFdq8jWb -4H5/GL8Zi7B/nj8dCy7L1gLC5KOpGZLq3wvyxHMl5+X5fbHvb9KJjsW2eFPL9KEI -yKMRpXET7F0JIBNVHKMX+cUvzXLxH1klHRYSzAWfvoW+wXweKveSvn7wFAxoBjsk -UtnQ/tZvdfqOYMyfwfb4yNGaQjvN0pfYKWvGu1mqajpPNVJ96n9onArV40I7/Q2D -51eDFQ8op/0sygZiU1rurTQnvrvZnvgASrqIDdUQBPJaYLQmDIxc7Wo1Qr6cFKMv -kLNCihBNMar5+LsigyTdb+0VlwgcYtVMUlh8O282LqC11NkVJfAAvDYxZq+SFF1a -hm7D0n9DFT4A2eeXerwNXyk2fAaw8KX12TpXWanRaB1NW2cX9XmzjMQuk04xNLVK -DDMHKUDctBBvYHaBAjkUQT2smRH4ETosiQHcI91iuj2DZ6u/T0uUG3N7gHV3KSOX -DWUBtr/Xok9YuBICJ4gE/tIvH4gaqAqSEWb9TeeSCrX5VdQw03tPWUYKcr9M08Zj -LOMFdlmMOhRbmsglZy9/D+HVShp343DoZqKIO1A1aGYrzDV6izwI1K1an1ugOF3X -2czjyeuMtcz2ZFEhuGYekRiTx+ifu2scRnx2vndi9+RESUhh37BeseQgsENIsaw+ -5SVJlRgxk8N2hSiA8AWAJ/xpgyhYNL3KjAfh2tfH+jUtrN48kaa4JPeYykpk2kDi -OwQD0VhxjAT0ggyeBDbVNat+0w42i9oxpafBx2pCAbnK+WDnnLbUzgobz296fkO1 -H0UUqKBmi28Jntq3ubbg989LRH3VdvOXFvvgI3k2nqKLjzSCZt4MkAH+fo6cFtTf -q2S+geomeYBCGCSF/bgmk1Q/o9e2qPU4XuYcbM0T2ALwW4vYqv9DmORAfXZV/pg4 -myt1tgsnsUig5UMNIW/g7Q9hnVFzUjOKRwLff+sGKhXwmNHKpJVGaWNaESJ0YAAe -ESMMOrEW5kiqRqIbZx52NVwb85rb6ozkm8vR4ApLNNqQ/ylAd4H3zA3bByXn3uTx -7tfksErzsD8seL3yvQV5hkbB8PkQIXCTyL+zbp4+bNk8v3zj9/7BRqpQl0eMJ4oS -0vjkYgzkhBsQY3tvRH3PkodUy1yhc+1ZOjOcmX4lAMW1+vP5XsESM+GESDp3Czp6 -DlfiHbAlGBouWisY63hQtxVQtOboLzWmXwBGv2ENCf5NdW8tT2rWdxVcWOCW/1YE -dZ3/Q43GK0rqQw/j6MN4xOY7JuiBftZiBkLv57UIxUH1owIMR501QLnhq7Olgz+V -Edli5gWpO6OFNGYFhHc8B4FmTq+UUX4bdya/ajbVL/JWH6fjBJsvculQaJGV+Po6 -0Ythfdurd/V0H/s9IkA3XGGckN+XacKpsgr+25kAG5SrdnnZkTVeg1+O/VHiupQw -OkKlD717/MrLYCZvy2D30oCTDF33VUOxSusc9zeJP29ye+WuNG3gX9CVaYbx1I2d ------END RSA PRIVATE KEY-----", -"PRIVATE_KEY_PHRASE":"123456", -"SCENE":"ANT", -"CALLER":"ob_ssl_crypt", -"CERT_NAME":"ob_yanhua_test", -"PRIVATE_KEY_NAME":"ob_yanhua_test-app-id-authn-RSA-2048-private", -"KEY_VERSION":"1" -}'; -``` - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/219.ob_event_history_recycle_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/219.ob_event_history_recycle_interval.md deleted file mode 100644 index 96e7b0610..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/219.ob_event_history_recycle_interval.md +++ /dev/null @@ -1,15 +0,0 @@ -ob_event_history_recycle_interval -====================================================== - -ob_event_history_recycle_interval 用于控制历史事件的回收间隔。 - - -| 属性 | 描述 | -|------------------|--------------| -| 参数类型 | 时间类型 | -| 默认值 | 7d,表示 7 天 | -| 取值范围 | \[1d, 180d\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/22.bf_cache_priority.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/22.bf_cache_priority.md deleted file mode 100644 index 2bbefc20a..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/22.bf_cache_priority.md +++ /dev/null @@ -1,15 +0,0 @@ -bf_cache_priority -====================================== - -bf_cache_priority 用于设置 Bloom Filter 缓存优先级。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 1 | -| 取值范围 | \[1, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/220.backup_backup_dest.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/220.backup_backup_dest.md deleted file mode 100644 index 317632cb4..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/220.backup_backup_dest.md +++ /dev/null @@ -1,14 +0,0 @@ -backup_backup_dest -======================================= - -backup_backup_dest 用于设置备份数据备份的目的端。 - - -| 属性 | 描述 | -|------------------|-------| -| 参数类型 | 字符串类型 | -| 默认值 | 空字符串 | -| 取值范围 | 无 | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/221.backup_log_archive_checkpoint_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/221.backup_log_archive_checkpoint_interval.md deleted file mode 100644 index dd4cb2efa..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/221.backup_log_archive_checkpoint_interval.md +++ /dev/null @@ -1,14 +0,0 @@ -backup_log_archive_checkpoint_interval -=========================================================== - -backup_log_archive_checkpoint_interval 用于设置备份数据备份 archivelog 的时间间隔。 - - -| 属性 | 描述 | -|------------------|-------------| -| 参数类型 | 时间类型 | -| 默认值 | 0 | -| 取值范围 | \[0s, 24h\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/222.plsql_ccflags.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/222.plsql_ccflags.md deleted file mode 100644 index 6d74b487c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/222.plsql_ccflags.md +++ /dev/null @@ -1,29 +0,0 @@ -plsql_ccflags -================================== - -plsql_ccflags 用于定义 PL 编译器的编译常量。 - - -| 属性 | 描述 | -|------------------|-----------------| -| 参数类型 | 字符串类型 | -| 默认值 | 空字符串 | -| 取值范围 | 符合 PL 编译器规范的字符串 | -| 是否重启 OBServer 生效 | 否 | - - -**说明** - - - -该配置项可以任意定义变量,建议用于控制条件编译。 - -使用示例如下: - -```sql -obclient> ALTER SESSION SET PLSQL_CCFLAGS = 'DeBug:TRUE'; - -obclient> ALTER SYSTEM SET PLSQL_CCFLAGS = 'DeBug:TRUE'; -``` - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/223.plsql_code_type.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/223.plsql_code_type.md deleted file mode 100644 index 6eaab2f8a..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/223.plsql_code_type.md +++ /dev/null @@ -1,22 +0,0 @@ -plsql_code_type -==================================== - -plsql_code_type 用于指定 PL/SQL 代码的编译类型。 - - -| 属性 | 描述 | -|------------------|--------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串类型 | -| 默认值 | NATIVE | -| 取值范围 | * INTERPETED:解析型 * NATIVE:二进制可执行 | -| 是否重启 OBServer 生效 | 否 | - - - -使用示例如下: - -```sql -obclient> ALTER SESSION SET plsql_code_type='INTERPRETED'; -``` - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/224.plsql_debug.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/224.plsql_debug.md deleted file mode 100644 index 2e296d95c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/224.plsql_debug.md +++ /dev/null @@ -1,22 +0,0 @@ -plsql_debug -================================ - -plsql_debug 用于指定是否编译成 debug 版本。 - - -| 属性 | 描述 | -|------------------|------------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True:是 * False:否 | -| 是否重启 OBServer 生效 | 否 | - - - -使用示例如下: - -```sql -obclient> ALTER SESSION SET plsql_debug=false; -``` - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/225.plsql_optimize_level.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/225.plsql_optimize_level.md deleted file mode 100644 index ed53e85dc..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/225.plsql_optimize_level.md +++ /dev/null @@ -1,22 +0,0 @@ -plsql_optimize_level -========================================= - -plsql_optimize_level 用于指定编译优化级别。 - - -| 属性 | 描述 | -|------------------|------------------------------------| -| 参数类型 | 整数类型 | -| 默认值 | 1 | -| 取值范围 | 0:表示不开启优化 1:表示开启优化 | -| 是否重启 OBServer 生效 | 否 | - - - -使用示例如下: - -```sql -obclient> ALTER SESSION SET plsql_optimize_level=1; -``` - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/226.plsql_v2_compatibility.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/226.plsql_v2_compatibility.md deleted file mode 100644 index c9d2a8c4a..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/226.plsql_v2_compatibility.md +++ /dev/null @@ -1,22 +0,0 @@ -plsql_v2_compatibility -=========================================== - -plsql_v2_compatibility 用于指定 Oracle 8 的兼容功能。 - - -| 属性 | 描述 | -|------------------|---------------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True:兼容 * False:不兼容 | -| 是否重启 OBServer 生效 | 否 | - - - -使用示例如下: - -```sql -obclient> ALTER SESSION SET plsql_v2_compatibility=false; -``` - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/227.plsql_warnings.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/227.plsql_warnings.md deleted file mode 100644 index 35ed11853..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/227.plsql_warnings.md +++ /dev/null @@ -1,74 +0,0 @@ -plsql_warnings -=================================== - -`plsql_warnings` 用于控制 PL/SQL 编译器的报错行为,可以指定某类型或某个 `warning` 码的状态为` enable`、`disable` 或 `error`。 - - -| 属性 | 描述 | -|------------------|------------| -| 参数类型 | varchar | -| 默认值 | ENABLE:ALL | -| 取值范围 | 符合规范的字符串 | -| 是否重启 OBServer 生效 | 否 | - - - -使用语法如下: - -```sql -PLSQL_WARNINGS = 'value_clause' [, 'value_clause' ] -value_clause::= -{ ENABLE | DISABLE | ERROR }: -{ ALL -| WARN -| DEBUG -| { integer -| (integer [, integer ] ...) -} -} -``` - - - -其中: - -* `ENABLE`:表示打开指定的 Warnings。 - - - -* `DISABLE`:表示关闭指定的 Warnings。 - - - -* `ERROR`:表示将指定的 Warning 作为 Errors。 - - - -* `ALL`:表示应用到所有的 Warning Messages。 - - - -* `DEBUG`:表示应用到 Debug。 - - - -* `WARN`:表示应用到 Warning。 - - - - - - -使用示例如下: - -```sql -PLSQL_WARNINGS = 'ENABLE:DEBUG', 'DISABLE:WARN'; - -PLSQL_WARNINGS = 'DISABLE:ALL'; - -PLSQL_WARNINGS = 'DISABLE:5000', 'ENABLE:5001','ERROR:5002'; - -PLSQL_WARNINGS = 'ENABLE:(5000,5001,5002)','DISABLE:(6000,6001)'; -``` - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/228.recyclebin_object_expire_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/228.recyclebin_object_expire_time.md deleted file mode 100644 index 6568294e0..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/228.recyclebin_object_expire_time.md +++ /dev/null @@ -1,59 +0,0 @@ -recyclebin_object_expire_time -================================================== - -recyclebin_object_expire_time 用于自动 Purge 回收站中过期的 Schema对象。 - -描述 ------------------------ - - - -| 属性 | 描述 | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 0s | -| 取值范围 | \[0s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - -recyclebin_object_expire_time 配置项的取值说明如下: - -* 当其值为 0s 时,表示关闭自动 Purge 回收站功能。 - - - -* 当其值为非 0s 时,表示回收一段时间前进入回收站的 Schema 对象。 - - - - - - -示例 ------------------------ - -* 关闭自动 Purge 回收站功能 - - ```sql - obclient> ALTER SYSTEM SET recyclebin_object_expire_time = "0s"; - ``` - - - - - - - - -* 打开自动 Purge 回收站功能,并回收 7 天前进入回收站的 Schema 对象 - - ```sql - obclient> ALTER SYSTEM SET recyclebin_object_expire_time = "7d"; - ``` - - - - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/229.log_archive_batch_buffer_limit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/229.log_archive_batch_buffer_limit.md deleted file mode 100644 index d4d468758..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/229.log_archive_batch_buffer_limit.md +++ /dev/null @@ -1,27 +0,0 @@ -log_archive_batch_buffer_limit -=================================================== - -当物理备份开启时,log_archive_batch_buffer_limit 用于控制日志归档单机的最大内存使用量。 - -描述 ------------------------ - - - -| 属性 | 描述 | -|------------------|-----------| -| 参数类型 | 容量类型 | -| 默认值 | 1G | -| 取值范围 | \[2M, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - -示例 ------------------------ - -```sql -obclient> ALTER SYSTEM SET log_archive_batch_buffer_limit = 1GB; -``` - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/23.cache_wash_threshold.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/23.cache_wash_threshold.md deleted file mode 100644 index 205e59ae4..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/23.cache_wash_threshold.md +++ /dev/null @@ -1,15 +0,0 @@ -cache_wash_threshold -========================================= - -cache_wash_threshold 用于设置触发缓存清理的容量阈值。如果内存空间小于指定值时,内存空间将被清理。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 容量单位 | -| 默认值 | 4GB | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/230.clog_disk_utilization_threshold.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/230.clog_disk_utilization_threshold.md deleted file mode 100644 index 21e0ceedd..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/230.clog_disk_utilization_threshold.md +++ /dev/null @@ -1,27 +0,0 @@ -clog_disk_utilization_threshold -==================================================== - -clog_disk_utilization_threshold 配置项用于控制 clog 或 ilog 磁盘空间复用的水位值。 - -描述 ------------------------ - - - -| 属性 | 描述 | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 80 | -| 取值范围 | \[10, 100) | -| 是否重启 OBServer 生效 | 否 | - - - -示例 ------------------------ - -```sql -obclient> ALTER SYSTEM SET clog_disk_utilization_threshold=80; -``` - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/231.backup_backup_archive_log_batch_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/231.backup_backup_archive_log_batch_count.md deleted file mode 100644 index 5c79f1dc8..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/231.backup_backup_archive_log_batch_count.md +++ /dev/null @@ -1,14 +0,0 @@ -backup_backup_archive_log_batch_count -========================================================== - -backup_backup_archive_log_batch_count 用于设置备份备份日志的任务的批次数量。 - - -| 属性 | 描述 | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0,1024\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/232.backup_backup_archivelog_retry_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/232.backup_backup_archivelog_retry_interval.md deleted file mode 100644 index 7adca5fe0..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/232.backup_backup_archivelog_retry_interval.md +++ /dev/null @@ -1,14 +0,0 @@ -backup_backup_archivelog_retry_interval -============================================================ - -backup_backup_archivelog_retry_interval 用于设置备份备份日志的任务的重试间隔。 - - -| 属性 | 描述 | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 0s | -| 取值范围 | \[0s,1h\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/233.backup_backupset_batch_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/233.backup_backupset_batch_count.md deleted file mode 100644 index 20f5df2de..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/233.backup_backupset_batch_count.md +++ /dev/null @@ -1,14 +0,0 @@ -backup_backupset_batch_count -================================================= - -backup_backupset_batch_count 用于设置备份备份基线的任务的批次数量。 - - -| 属性 | 描述 | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0,1024\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/234.backup_backupset_retry_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/234.backup_backupset_retry_interval.md deleted file mode 100644 index 0c1ff8169..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/234.backup_backupset_retry_interval.md +++ /dev/null @@ -1,14 +0,0 @@ -backup_backupset_retry_interval -==================================================== - -backup_backupset_retry_interval 用于设置备份备份基线的任务的重试间隔。 - - -| 属性 | 描述 | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 0s | -| 取值范围 | \[0s,1h\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/235.open_cursors.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/235.open_cursors.md deleted file mode 100644 index 2d8500e3d..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/235.open_cursors.md +++ /dev/null @@ -1,14 +0,0 @@ -open_cursors -================================= - -open_cursors 用于限制单个 Session 可以同时打开的游标数量。 - - -| 属性 | 描述 | -|------------------|-------------| -| 参数类型 | 整型 | -| 默认值 | 50 | -| 取值范围 | \[0,65535\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/236.fast_recovery_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/236.fast_recovery_concurrency.md deleted file mode 100644 index 0d4913a2d..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/236.fast_recovery_concurrency.md +++ /dev/null @@ -1,14 +0,0 @@ -fast_recovery_concurrency -============================================== - -`fast_recovery_concurrency` 用于控制 RootService 调度的快速恢复任务在 OBServer 上执行的并发数。 - - -| 属性 | 描述 | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 10 | -| 取值范围 | \[1,1000\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/24.clog_cache_priority.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/24.clog_cache_priority.md deleted file mode 100644 index 4895aca35..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/24.clog_cache_priority.md +++ /dev/null @@ -1,14 +0,0 @@ -clog_cache_priority -======================================== - -clog_cache_priority 用于设置事务日志占用缓存的优先级。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 1 | -| 取值范围 | \[1, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/25.clog_sync_time_warn_threshold.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/25.clog_sync_time_warn_threshold.md deleted file mode 100644 index fda006d3c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/25.clog_sync_time_warn_threshold.md +++ /dev/null @@ -1,15 +0,0 @@ -clog_sync_time_warn_threshold -================================================== - -clog_sync_time_warn_threshold 用于设置事务日志同步耗时告警阈值,同步耗时超过该值产生 WARN 日志。 - - -| **属性** | **描述** | -|------------------|------------------| -| 参数类型 | 时间类型 | -| 默认值 | 100ms | -| 取值范围 | \[1ms, 10000ms\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/26.clog_disk_usage_limit_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/26.clog_disk_usage_limit_percentage.md deleted file mode 100644 index c9278b345..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/26.clog_disk_usage_limit_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -clog_disk_usage_limit_percentage -===================================================== - -clog_disk_usage_limit_percentage 用于设置事务日志的磁盘 I/O 最大使用百分比。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 整型 | -| 默认值 | 95 | -| 取值范围 | \[80, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/27.clog_transport_compress_all.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/27.clog_transport_compress_all.md deleted file mode 100644 index 377f5bd2c..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/27.clog_transport_compress_all.md +++ /dev/null @@ -1,14 +0,0 @@ -clog_transport_compress_all -================================================ - -clog_transport_compress_all 用于设置事务日志传输时是否压缩。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * False * True | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/28.clog_transport_compress_func.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/28.clog_transport_compress_func.md deleted file mode 100644 index fcdf74263..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/28.clog_transport_compress_func.md +++ /dev/null @@ -1,15 +0,0 @@ -clog_transport_compress_func -================================================= - -`clog_transport_compress_func` 用于设置事务日志内部传输时使用的压缩算法。 - - -| **属性** | **描述** | -|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串类型 | -| 默认值 | lz4_1.0 | -| 取值范围 | * none * lz4_1.0 * snappy_1.0 * zlib_1.0 * zstd_1.0 * stream_lz4_1.0 * stream_zstd_1.0 * zstd_1.3.8 * stream_zstd_1.3.8 | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/29.clog_persistence_compress_func.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/29.clog_persistence_compress_func.md deleted file mode 100644 index 09fe64160..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/29.clog_persistence_compress_func.md +++ /dev/null @@ -1,15 +0,0 @@ -clog_persistence_compress_func -=================================================== - -clog_persistence_compress_func 用于设置事务日志落盘压缩算法。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串 | -| 默认值 | lz4_1.0 | -| 取值范围 | * none * lz4_1.0 * zstd_1.0 * zstd_1.3.8 | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/3.auto_delete_expired_backup.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/3.auto_delete_expired_backup.md deleted file mode 100644 index b711d294f..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/3.auto_delete_expired_backup.md +++ /dev/null @@ -1,14 +0,0 @@ -auto_delete_expired_backup -=============================================== - -auto_delete_expired_backup 用于设置是否开启自动删除过期备份的功能。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * False * True | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/30.clog_max_unconfirmed_log_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/30.clog_max_unconfirmed_log_count.md deleted file mode 100644 index 36f9b7926..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/30.clog_max_unconfirmed_log_count.md +++ /dev/null @@ -1,15 +0,0 @@ -clog_max_unconfirmed_log_count -=================================================== - -clog_max_unconfirmed_log_count 用于设置事务模块中未确认日志的最大数量。 - - -| **属性** | **描述** | -|------------------|----------------| -| 参数类型 | 整型 | -| 默认值 | 1500 | -| 取值范围 | \[100, 50000\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/31.cluster.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/31.cluster.md deleted file mode 100644 index a9f2b5eab..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/31.cluster.md +++ /dev/null @@ -1,20 +0,0 @@ -cluster -============================ - -cluster 用于设置本 OceanBase 集群名。 -**说明** - - - -不建议修改该配置项。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 字符串 | -| 默认值 | obcluster | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/32.cluster_id.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/32.cluster_id.md deleted file mode 100644 index 067083b44..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/32.cluster_id.md +++ /dev/null @@ -1,15 +0,0 @@ -cluster_id -=============================== - -cluster_id 用于设置本 OceanBase 集群 ID。 - - -| **属性** | **描述** | -|------------------|-------------------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[1, 4294901759\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/33.cpu_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/33.cpu_count.md deleted file mode 100644 index f32d477c6..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/33.cpu_count.md +++ /dev/null @@ -1,14 +0,0 @@ -cpu_count -============================== - -cpu_count 用于设置系统 CPU 总数。如果设置为 0,系统将自动检测 CPU 数量。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/34.cpu_quota_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/34.cpu_quota_concurrency.md deleted file mode 100644 index 7a48f07a2..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/34.cpu_quota_concurrency.md +++ /dev/null @@ -1,35 +0,0 @@ -cpu_quota_concurrency -========================================== - -cpu_quota_concurrency 用于设置租户的每个 CPU 配额所允许的最大并发数。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 双精度浮点数 | -| 默认值 | 4 | -| 取值范围 | \[1, 10\] | -| 是否重启 OBServer 生效 | 否 | - - - -租户中可同时处理的线程数由 cpu_quota_concurrency 与 workers_per_cpu_quota 2个配置项控制,且设置时需要满足: - -`workers_per_cpu_quota > cpu_quota_concurrency` - -* `workers_per_cpu_quota`表示租户在每个cpu上能分配的最大 worker 数 - - workers_per_cpu_quota 配置项详细信息,请参见 [workers_per_cpu_quota](../../14.reference-guide-oracle-mode/3.system-configuration-items-1/209.workers_per_cpu_quota-1.md)。 - - -* `cpu_quota_concurrency`表示租户在每个cpu上活跃的 worker 数,也即并发数 - - - - - -**说明** - - - -当物理机 CPU 足够多时,可以适当调大 `cpu_quota_concurrency `的值;如果物理机 CPU 较少,则调大`cpu_quota_concurrency `的值会存在风险。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/35.cpu_reserved.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/35.cpu_reserved.md deleted file mode 100644 index db0b3b9c5..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/35.cpu_reserved.md +++ /dev/null @@ -1,14 +0,0 @@ -cpu_reserved -================================= - -cpu_reserved 用于设置系统预留的 CPU 数量,其余 CPU 将被 OceanBase 数据库独占使用。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 2 | -| 取值范围 | \[0, 15\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/36.config_additional_dir.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/36.config_additional_dir.md deleted file mode 100644 index 6faf1bbe6..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/36.config_additional_dir.md +++ /dev/null @@ -1,15 +0,0 @@ -config_additional_dir -========================================== - -config_additional_dir 用于设置本地存储配置文件的多个目录,为了冗余存储多份配置文件。 - - -| **属性** | **描述** | -|------------------|-------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串列表 | -| 默认值 | * etc2 * etc3 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/37.data_copy_concurrency.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/37.data_copy_concurrency.md deleted file mode 100644 index 64fb27f72..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/37.data_copy_concurrency.md +++ /dev/null @@ -1,15 +0,0 @@ -data_copy_concurrency -========================================== - -data_copy_concurrency 用于设置系统中并发执行的数据迁移复制任务的最大并发数。 - - -| **属性** | **描述** | -|--------|----------| -| 参数类型 | 整型 | -| 默认值 | 20 | -| 取值范围 | \[1, +∞) | -| 是否需要重启 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/38.data_dir.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/38.data_dir.md deleted file mode 100644 index 29c6bb938..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/38.data_dir.md +++ /dev/null @@ -1,15 +0,0 @@ -data_dir -============================= - -data_dir 用于设置存储 sstable 等数据的目录。 - - -| **属性** | **描述** | -|--------|--------| -| 参数类型 | 字符串 | -| 默认值 | store | -| 取值范围 | NULL | -| 是否可修改 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/39.datafile_disk_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/39.datafile_disk_percentage.md deleted file mode 100644 index d5b6419d3..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/39.datafile_disk_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -datafile_disk_percentage -============================================= - -datafile_disk_percentage 表示占用 data_dir 所在磁盘(磁盘 data_dir 所在磁盘将被OceanBase 数据库系统初始化用于存储数据)总空间的百分比。 - - -| **属性** | **描述** | -|--------|----------| -| 参数类型 | 整型 | -| 默认值 | 90 | -| 取值范围 | \[5,99\] | -| 是否可修改 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/4.autoinc_cache_refresh_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/4.autoinc_cache_refresh_interval.md deleted file mode 100644 index 951df1862..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/4.autoinc_cache_refresh_interval.md +++ /dev/null @@ -1,15 +0,0 @@ -autoinc_cache_refresh_interval -=================================================== - -autoinc_cache_refresh_interval 用于设置自增列缓存的刷新间隔。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 时间类型 | -| 默认值 | 3600s | -| 取值范围 | \[100ms, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/40.dtl_buffer_size.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/40.dtl_buffer_size.md deleted file mode 100644 index 1655cd909..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/40.dtl_buffer_size.md +++ /dev/null @@ -1,15 +0,0 @@ -dtl_buffer_size -==================================== - -dtl_buffer_size 用于设置 SQL 数据传输模块使用的缓存大小。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 容量单位 | -| 默认值 | 64K | -| 取值范围 | \[4K, 2 M\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/41.datafile_size.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/41.datafile_size.md deleted file mode 100644 index 4df9e68fd..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/41.datafile_size.md +++ /dev/null @@ -1,15 +0,0 @@ -datafile_size -================================== - -datafile_size 用于设置数据文件的大小。一般不需要设置。 - - -| **属性** | **描述** | -|--------|-----------| -| 参数类型 | 容量单位 | -| 默认值 | 0M | -| 取值范围 | \[0M, +∞) | -| 是否可修改 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/42.debug_sync_timeout.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/42.debug_sync_timeout.md deleted file mode 100644 index ec229d132..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/42.debug_sync_timeout.md +++ /dev/null @@ -1,20 +0,0 @@ -debug_sync_timeout -======================================= - -debug_sync_timeout 用于打开 debug sync 调试开关,并设置其超时时间。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 时间类型 | -| 默认值 | 0 | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - -**说明** - - - -debug_sync_timeout 的值为 0 时,表示关闭 debug sync 调试。 - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/43.default_compress_func.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/43.default_compress_func.md deleted file mode 100644 index c76047370..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/43.default_compress_func.md +++ /dev/null @@ -1,15 +0,0 @@ -default_compress_func -========================================== - -`default_compress_func` 用于设置表数据的默认压缩算法,也可以在建表的时候指定其他压缩算法。 - - -| **属性** | **描述** | -|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串 | -| 默认值 | zstd_1.3.8 | -| 取值范围 | * none * lz4_1.0 * snappy_1.0 * zlib_1.0 * zstd_1.0 * zstd_1.3.8 | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/44.default_compress.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/44.default_compress.md deleted file mode 100644 index fb4e48c56..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/44.default_compress.md +++ /dev/null @@ -1,15 +0,0 @@ -default_compress -===================================== - -default_compress 用于设置在 Oracle 模式下,建表时使用的默认压缩策略。 - - -| **属性** | **描述** | -|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串类型 | -| 默认值 | ARCHIVE | -| 取值范围 | * NOCOMPRESS * BASIC * OLTP * QUERY * ARCHIVE | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/45.default_progressive_merge_num.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/45.default_progressive_merge_num.md deleted file mode 100644 index 8b725f269..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/45.default_progressive_merge_num.md +++ /dev/null @@ -1,35 +0,0 @@ -default_progressive_merge_num -================================================== - -default_progressive_merge_num 用于设置新建一张表时默认的渐进合并次数。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 60 | -| 取值范围 | \[0, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - -OceanBase 数据库支持对表数据进行渐进合并,即在对表执行需要重写数据的 DDL 操作后,可以将表数据的重写分散到多次合并中,一次合并中只进行部分数据的重写。您可以通过表级属性`progressive_merge_num`来控制合并行为,也可以通过`default_progressive_merge_num`配置项来设置新建一张表时默认的渐进合并次数。 - -当您未对新建表指定`progressive_merge_num`属性时,系统会将表级属性`progressive_merge_num`的值设置为`default_progressive_merge_num`的值。 - -`progressive_merge_num`属性的取值含义如下: - -* 0 :表示执行渐进合并,且渐进合并的次数为 100。 - - - -* 1:表示强制执行全量合并,不执行渐进合并。 - - - -* 大于 1 :表示发生 Schema 变更时按照指定轮次做渐进合并。 - - - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/46.default_row_format.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/46.default_row_format.md deleted file mode 100644 index 77fb71bd7..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/46.default_row_format.md +++ /dev/null @@ -1,15 +0,0 @@ -default_row_format -======================================= - -default_row_format 用于设置在 MySQL 模式下,建表时使用的默认行格式。 - - -| **属性** | **描述** | -|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串 | -| 默认值 | DYNAMIC | -| 取值范围 | * REDUNDANT * COMPAT * DYNAMIC * COMPRESSED | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/47.devname.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/47.devname.md deleted file mode 100644 index d057c1801..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/47.devname.md +++ /dev/null @@ -1,15 +0,0 @@ -devname -============================ - -devname 用于设置服务进程绑定的网卡设备名。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串 | -| 默认值 | bond0 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/48.data_disk_usage_limit_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/48.data_disk_usage_limit_percentage.md deleted file mode 100644 index 7353ca0cd..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/48.data_disk_usage_limit_percentage.md +++ /dev/null @@ -1,15 +0,0 @@ -data_disk_usage_limit_percentage -===================================================== - -data_disk_usage_limit_percentage 用于设置数据文件最大可以写入的百分比,超过这个阈值后,禁止数据迁入。 - - -| **属性** | **描述** | -|------------------|-------------| -| 参数类型 | 整型 | -| 默认值 | 90 | -| 取值范围 | \[50, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/49.disk_io_thread_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/49.disk_io_thread_count.md deleted file mode 100644 index bd3341fc3..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/49.disk_io_thread_count.md +++ /dev/null @@ -1,14 +0,0 @@ -disk_io_thread_count -========================================= - -disk_io_thread_count 用于设置磁盘 IO 线程数。必须为偶数。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 8 | -| 取值范围 | \[2, 32\] | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/5.audit_sys_operations.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/5.audit_sys_operations.md deleted file mode 100644 index fe9edcb3f..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/5.audit_sys_operations.md +++ /dev/null @@ -1,15 +0,0 @@ -audit_sys_operations -========================================= - -audit_sys_operations 用于设置是否追踪系统用户的操作行为。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * False * True | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/50.dead_socket_detection_timeout.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/50.dead_socket_detection_timeout.md deleted file mode 100644 index c7dcb2779..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/50.dead_socket_detection_timeout.md +++ /dev/null @@ -1,27 +0,0 @@ -dead_socket_detection_timeout -================================================== - -dead_socket_detection_timeout 用于设置检测失效 Socket 的时间间隔。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 10s | -| 取值范围 | \[0s, 2h\] | -| 是否重启 OBServer 生效 | 否 | - - - -其中: - -* 当 dead_socket_detection_timeout 的值为 0 时,表示禁用 Socket 级故障检测。 - - - -* 当 dead_socket_detection_timeout 的值大于 0 时,表示启用 Socket 级故障检测,且当发送端有数据超过 设置的时间还未收到对方的应答,则认为当前 Socket 不可用。 - - - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/51.enable_clog_persistence_compress.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/51.enable_clog_persistence_compress.md deleted file mode 100644 index 205523e06..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/51.enable_clog_persistence_compress.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_clog_persistence_compress -===================================================== - -enable_clog_persistence_compress 用于设置是否开启事务日志落盘压缩。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串类型 | -| 默认值 | false | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/52.election_cpu_quota.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/52.election_cpu_quota.md deleted file mode 100644 index f4acd44ec..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/52.election_cpu_quota.md +++ /dev/null @@ -1,15 +0,0 @@ -election_cpu_quota -======================================= - -election_cpu_quota 用于设置给副本选举相关的后台工作分配的 CPU 配额。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 双精度浮点数 | -| 默认值 | 3 | -| 取值范围 | \[0, 10\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/53.enable_one_phase_commit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/53.enable_one_phase_commit.md deleted file mode 100644 index 6fbdbef33..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/53.enable_one_phase_commit.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_one_phase_commit -============================================ - -enable_one_phase_commit 用于设置是否开启事务提交一阶段优化的功能。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/54.enable_sys_unit_standalone.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/54.enable_sys_unit_standalone.md deleted file mode 100644 index 674ba5977..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/54.enable_sys_unit_standalone.md +++ /dev/null @@ -1,35 +0,0 @@ -enable_sys_unit_standalone -=============================================== - -enable_sys_unit_standalone 用于设置系统租户的 Unit 是否独占节点。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - -当该配置项设置为`True`时,会产生以下影响: - -* 在创建资源池或增加资源池数量时,需要考虑系统租户的 Unit,即不能将普通租户的 Unit 与系统租户的 Unit 部署在同一个 Server 上。 - - - -* 系统会将与系统租户的 Unit 在同一个 Server 上的其他 Unit 迁移走。 - - - -* 永久下线或删除 Server 时,系统会先迁移系统租户的 Unit,再迁移其他租户的 Unit,且其他租户的 Unit 不能与系统租户的 Unit 在同一个 Server 上。 - - - -* 在进行 Tenant groups 均衡时,系统会将系统租户 Unit 所在的 Server 从 tenant groups 的可用机器中过滤掉,即 Tenant groups 的 Unit 会平铺到除了系统租户 Unit 所在 Server 的其他 Server上去。 - - - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/55.enable_pg.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/55.enable_pg.md deleted file mode 100644 index dbdf2fe7b..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/55.enable_pg.md +++ /dev/null @@ -1,14 +0,0 @@ -enable_pg -============================== - -enable_pg 用于设置是否开启分区组功能。 - - -| 属性 | 描述 | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/56.enable_smooth_leader_switch.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/56.enable_smooth_leader_switch.md deleted file mode 100644 index bb67d6ccb..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/56.enable_smooth_leader_switch.md +++ /dev/null @@ -1,14 +0,0 @@ -enable_smooth_leader_switch -================================================ - -enable_smooth_leader_switch 是平滑切主特性的开关。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/57.election_blacklist_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/57.election_blacklist_interval.md deleted file mode 100644 index 507af114f..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/57.election_blacklist_interval.md +++ /dev/null @@ -1,21 +0,0 @@ -election_blacklist_interval -================================================ - -election_blacklist_interval 用于设置主副本被废除后不允许再被选为主的时间间隔。 - - -| 属性 | 描述 | -|------------------|-------------| -| 参数类型 | 时间类型 | -| 默认值 | 1800s | -| 取值范围 | \[0s, 24h\] | -| 是否重启 OBServer 生效 | 否 | - - - -OceanBase 数据库通过 election_blacklist_interval 配置项实现了黑名单功能。当 Leader 主动发生卸任后,从当前时间开始计时,在 election_blacklist_interval 配置项设置的时间内,该副本保证不会再被改选为 Leader,即该副本加入了选举黑名单。 -**注意** - - - -仅当主副本发生主动卸任,且 observer 进程不重启时,该副本才会加入黑名单。observer 进程重启后,黑名单状态会丢失。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/58.enable_election_group.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/58.enable_election_group.md deleted file mode 100644 index d40a6ee3a..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/58.enable_election_group.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_election_group -========================================== - -enable_election_group 用于设置是否打开选举组策略。 - - -| 属性 | 描述 | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/59.enable_auto_leader_switch.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/59.enable_auto_leader_switch.md deleted file mode 100644 index 82d3aadff..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/59.enable_auto_leader_switch.md +++ /dev/null @@ -1,14 +0,0 @@ -enable_auto_leader_switch -============================================== - -enable_auto_leader_switch 用于设置是否开启自动切主。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/6.audit_trail.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/6.audit_trail.md deleted file mode 100644 index baa0b18ba..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/6.audit_trail.md +++ /dev/null @@ -1,15 +0,0 @@ -audit_trail -================================ - -audit_trail 用于设置是否启用数据库审核。 - - -| 属性 | 描述 | -|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 字符串 | -| 默认值 | NONE | -| 取值范围 | * NONE * OS * DB * DB,EXTENDED * DB_EXTENDED | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/60.enable_global_freeze_trigger.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/60.enable_global_freeze_trigger.md deleted file mode 100644 index 6ecdd3713..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/60.enable_global_freeze_trigger.md +++ /dev/null @@ -1,22 +0,0 @@ -enable_global_freeze_trigger -================================================= - -enable_global_freeze_trigger 用于设置是否开启自动触发全局冻结。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - - -**说明** - - - -该配置项保持保持默认值即可,不推荐使用。 - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/61.enable_manual_merge.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/61.enable_manual_merge.md deleted file mode 100644 index 90f1ac25a..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/61.enable_manual_merge.md +++ /dev/null @@ -1,16 +0,0 @@ -enable_manual_merge -======================================== - -enable_manual_merge 用于设置是否开启手工合并。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - -enable_manual_merge 用于 DBA 管理错峰是否暂停,只有在 enable_manual_merge 为 True 时,max_merge_duration_time 才有效。如果这个值为 True,则认为 DBA 关闭自动合并。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/62.enable_merge_by_turn.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/62.enable_merge_by_turn.md deleted file mode 100644 index b4b598e3d..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/62.enable_merge_by_turn.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_merge_by_turn -========================================= - -enable_merge_by_turn 用于设置是否开启轮转合并策略。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/63.enable_perf_event.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/63.enable_perf_event.md deleted file mode 100644 index ad2b65667..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/63.enable_perf_event.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_perf_event -====================================== - -enable_perf_event 用于设置是否开启性能事件的信息收集功能。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/64.enable_rebalance.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/64.enable_rebalance.md deleted file mode 100644 index 1298d152d..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/64.enable_rebalance.md +++ /dev/null @@ -1,14 +0,0 @@ -enable_rebalance -===================================== - -enable_rebalance 用于设置是否开启自动负载均衡的功能。 - - -| **属性** | **描述** | -|------------------|---------------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True:开启 * False:不开启 | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/65.enable_record_trace_log.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/65.enable_record_trace_log.md deleted file mode 100644 index 43e17ecd9..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/65.enable_record_trace_log.md +++ /dev/null @@ -1,14 +0,0 @@ -enable_record_trace_log -============================================ - -enable_record_trace_log 用于设置是否记录追踪日志。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True:表示只要出现错误,就一定打印 trace log。 * False:表示每隔 trace_log_sampling_interval 会打印一次慢查询或白名单错误码日志。 | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/66.enable_record_trace_id.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/66.enable_record_trace_id.md deleted file mode 100644 index c6402456e..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/66.enable_record_trace_id.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_record_trace_id -=========================================== - -enable_record_trace_id 用于设置是否记录应用端设置的追踪 ID。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/67.enable_early_lock_release.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/67.enable_early_lock_release.md deleted file mode 100644 index 13df54c6b..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/67.enable_early_lock_release.md +++ /dev/null @@ -1,14 +0,0 @@ -enable_early_lock_release -============================================== - -enable_early_lock_release 用于设置是否开启提前解行锁的功能。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/68.enable_rereplication.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/68.enable_rereplication.md deleted file mode 100644 index 2fea277e7..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/68.enable_rereplication.md +++ /dev/null @@ -1,19 +0,0 @@ -enable_rereplication -========================================= - -enable_rereplication 用于设置是否开启自动补副本的功能。 - - -| 属性 | 描述 | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - -**说明** - - - -如果不开启 enable_rereplication,即使分区的副本数小于设置的 ob_default_replica_num,也不会进行复制。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/69.enable_rich_error_msg.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/69.enable_rich_error_msg.md deleted file mode 100644 index 99f22366e..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/69.enable_rich_error_msg.md +++ /dev/null @@ -1,14 +0,0 @@ -enable_rich_error_msg -========================================== - -enable_rich_error_msg 用于设置是否在客户端消息中添加服务器地址、时间、追踪 ID 等调试信息。 - - -| **属性** | **描述** | -|------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True:表示会在错误消息前添加 OBServer 的 `ip:port`、出错时间和日志 Trace ID。 * False:表示保持文本错误消息内容不变。 | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/7.balancer_idle_time.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/7.balancer_idle_time.md deleted file mode 100644 index 0897aa7b3..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/7.balancer_idle_time.md +++ /dev/null @@ -1,14 +0,0 @@ -balancer_idle_time -======================================= - -balancer_idle_time 用于设置负载均衡等后台任务线程空闲时的唤醒间隔时间。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 5m,表示 5 分钟 | -| 取值范围 | \[10s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/70.enable_rootservice_standalone.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/70.enable_rootservice_standalone.md deleted file mode 100644 index 98a8b2b7a..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/70.enable_rootservice_standalone.md +++ /dev/null @@ -1,14 +0,0 @@ -enable_rootservice_standalone -================================================== - -enable_rootservice_standalone 用于设置是否让系统租户和 RootService 独占 OBServer 节点。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/71.enable_sql_audit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/71.enable_sql_audit.md deleted file mode 100644 index 8f6ffe73d..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/71.enable_sql_audit.md +++ /dev/null @@ -1,14 +0,0 @@ -enable_sql_audit -===================================== - -enable_sql_audit 用于设置是否开启 SQL 审计功能。 - - -| **属性** | **描述** | -|------------------|---------------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True:开启 * False:不开启 | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/72.enable_sql_operator_dump.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/72.enable_sql_operator_dump.md deleted file mode 100644 index 6935acecf..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/72.enable_sql_operator_dump.md +++ /dev/null @@ -1,14 +0,0 @@ -enable_sql_operator_dump -============================================= - -enable_sql_operator_dump 用于设置是否允许 SQL 处理过程的中间结果写入磁盘以释放内存。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/73.enable_async_syslog.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/73.enable_async_syslog.md deleted file mode 100644 index 6607a7d16..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/73.enable_async_syslog.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_async_syslog -======================================== - -enable_async_syslog 用于设置是否启用系统日志异步写。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/74.enable_syslog_recycle.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/74.enable_syslog_recycle.md deleted file mode 100644 index 51c4ce73a..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/74.enable_syslog_recycle.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_syslog_recycle -========================================== - -enable_syslog_recycle 用于设置是否开启回收系统日志的功能。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/75.enable_syslog_wf.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/75.enable_syslog_wf.md deleted file mode 100644 index 065e17e43..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/75.enable_syslog_wf.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_syslog_wf -===================================== - -enable_syslog_wf 用于设置是否把 WARN 以上级别的系统日志打印到一个单独的日志文件中。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/76.enable_upgrade_mode.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/76.enable_upgrade_mode.md deleted file mode 100644 index 3309eed15..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/76.enable_upgrade_mode.md +++ /dev/null @@ -1,16 +0,0 @@ -enable_upgrade_mode -======================================== - -enable_upgrade_mode 用于设置是否开启升级模式。在升级模式中,会暂停部分系统后台功能。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - -在升级前,对于需要禁止的功能(例如, DDL 操作),您可以统一通过该系统配置项来控制,使升级流程更简单。升级前将 enable_upgrade_mode 设置为 True,升级后将其设置为 False。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/77.enable_separate_sys_clog.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/77.enable_separate_sys_clog.md deleted file mode 100644 index 61a5577e6..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/77.enable_separate_sys_clog.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_separate_sys_clog -============================================= - -enable_separate_sys_clog 用于设置是否把系统事务日志与用户事务日志分开存储。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/78.enable_ddl.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/78.enable_ddl.md deleted file mode 100644 index f8a9164a9..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/78.enable_ddl.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_ddl -=============================== - -enable_ddl 用于设置是否允许执行 DDL。 - - -| **属性** | 描述 | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/79.enable_major_freeze.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/79.enable_major_freeze.md deleted file mode 100644 index e89e565c3..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/79.enable_major_freeze.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_major_freeze -======================================== - -enable_major_freeze 用于设置是否开启自动全局冻结的功能。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | True | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/8.balancer_log_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/8.balancer_log_interval.md deleted file mode 100644 index a0e31d595..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/8.balancer_log_interval.md +++ /dev/null @@ -1,15 +0,0 @@ -balancer_log_interval -========================================== - -balancer_log_interval 用于负载均衡等后台任务线程打印统计日志的间隔时间。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 1m,表示 1 分钟 | -| 取值范围 | \[1s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/80.enable_rebuild_on_purpose.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/80.enable_rebuild_on_purpose.md deleted file mode 100644 index c5f5a1d19..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/80.enable_rebuild_on_purpose.md +++ /dev/null @@ -1,14 +0,0 @@ -enable_rebuild_on_purpose -============================================== - -enable_rebuild_on_purpose 在备副本日志落后过多时,设置是否开启主动触发副本重建操作。 - - -| **属性** | **描** **述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/81.enable_log_archive.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/81.enable_log_archive.md deleted file mode 100644 index 26f90c225..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/81.enable_log_archive.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_log_archive -======================================= - -enable_log_archive 用于设置是否开启日志归档功能。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/82.enable_monotonic_weak_read.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/82.enable_monotonic_weak_read.md deleted file mode 100644 index 87032236e..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/82.enable_monotonic_weak_read.md +++ /dev/null @@ -1,15 +0,0 @@ -enable_monotonic_weak_read -=============================================== - -enable_monotonic_weak_read 用于设置是否开启单调读。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/83.external_kms_info.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/83.external_kms_info.md deleted file mode 100644 index 6859db8ee..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/83.external_kms_info.md +++ /dev/null @@ -1,16 +0,0 @@ -external_kms_info -====================================== - -external_kms_info 用于存储一些密钥管理信息。 - - -| **属性** | **描述** | -|------------------|--------| -| 参数类型 | 字符串类型 | -| 默认值 | 空值 | -| 取值范围 | NULL | -| 是否重启 OBServer 生效 | 否 | - - - -使用外部密钥管理中心时,external_kms_info 将存储一些密钥管理信息。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/84.freeze_trigger_percentage.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/84.freeze_trigger_percentage.md deleted file mode 100644 index 168c53a4b..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/84.freeze_trigger_percentage.md +++ /dev/null @@ -1,16 +0,0 @@ -freeze_trigger_percentage -============================================== - -freeze_trigger_percentage 用于设置触发全局冻结的租户使用内存阈值。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 70 | -| 取值范围 | \[1, 99\] | -| 是否重启 OBServer 生效 | 否 | - - - -详细信息请参见 [enable_global_freeze_trigger](../../14.reference-guide-oracle-mode/3.system-configuration-items-1/61.enable_global_freeze_trigger-1.md)。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/85.flush_log_at_trx_commit.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/85.flush_log_at_trx_commit.md deleted file mode 100644 index 2872d46d0..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/85.flush_log_at_trx_commit.md +++ /dev/null @@ -1,31 +0,0 @@ -flush_log_at_trx_commit -============================================ - -flush_log_at_trx_commit 用于设置事务提交时写事务日志策略。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 1 | -| 取值范围 | \[0, 2\] | -| 是否重启 OBServer 生效 | 否 | - - - -flush_log_at_trx_commit 配置项的取值含义如下: - -* 取值为 0 表示不等待日志写入缓冲区。 - - - -* 取值为 1 表示等待日志写入磁盘。 - - - -* 取值为 2 表示等待日志写入缓冲区而不等落盘。 - - - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/86.fuse_row_cache_priority.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/86.fuse_row_cache_priority.md deleted file mode 100644 index c800bb60f..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/86.fuse_row_cache_priority.md +++ /dev/null @@ -1,14 +0,0 @@ -fuse_row_cache_priority -============================================ - -fuse_row_cache_priority 用于设置融合行缓存在缓存系统中的优先级。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 1 | -| 取值范围 | \[1, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/87.force_refresh_location_cache_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/87.force_refresh_location_cache_interval.md deleted file mode 100644 index 8da7686e0..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/87.force_refresh_location_cache_interval.md +++ /dev/null @@ -1,14 +0,0 @@ -force_refresh_location_cache_interval -========================================================== - -force_refresh_location_cache_interval 用于设置刷新位置缓存的最大时间间隔。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 2h,表示 2 小时 | -| 取值范围 | \[1s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/88.force_refresh_location_cache_threshold.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/88.force_refresh_location_cache_threshold.md deleted file mode 100644 index 195ec0025..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/88.force_refresh_location_cache_threshold.md +++ /dev/null @@ -1,15 +0,0 @@ -force_refresh_location_cache_threshold -=========================================================== - -force_refresh_location_cache_threshold 用于设置刷新位置缓存时每秒最多刷新次数的阈值,超过该阈值会被限流。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 100 | -| 取值范围 | \[1, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/89.get_leader_candidate_rpc_timeout.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/89.get_leader_candidate_rpc_timeout.md deleted file mode 100644 index 56e43194b..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/89.get_leader_candidate_rpc_timeout.md +++ /dev/null @@ -1,15 +0,0 @@ -get_leader_candidate_rpc_timeout -===================================================== - -get_leader_candidate_rpc_timeout 用于设置自动切主策略获取切主候选者的内部请求超时时间。 - - -| **属性** | **描述** | -|------------------|--------------| -| 参数类型 | 时间类型 | -| 默认值 | 9s | -| 取值范围 | \[2s, 180s\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/9.balancer_timeout_check_interval.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/9.balancer_timeout_check_interval.md deleted file mode 100644 index 612730057..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/9.balancer_timeout_check_interval.md +++ /dev/null @@ -1,14 +0,0 @@ -balancer_timeout_check_interval -==================================================== - -balancer_timeout_check_interval 用于设置检查负载均衡等后台任务超时的时间间隔。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 时间类型 | -| 默认值 | 1m,表示 1 分钟 | -| 取值范围 | \[1s, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/90.global_major_freeze_residual_memory.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/90.global_major_freeze_residual_memory.md deleted file mode 100644 index be9684716..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/90.global_major_freeze_residual_memory.md +++ /dev/null @@ -1,21 +0,0 @@ -global_major_freeze_residual_memory -======================================================== - -global_major_freeze_residual_memory 用于设置触发全局冻结的剩余内存阈值。即当剩余内存小于这个百分比时,触发全局冻结。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 40 | -| 取值范围 | \[1, 99\] | -| 是否重启 OBServer 生效 | 否 | - - - -global_major_freeze_residual_memory 配置项是百分比,百分比基数是 memory_limit - system_memory,即除去为 OceanBase 数据库内部 500 租户预留的内存。已经冻结的 memstore 在 merge 完成后,内存就可以释放,所以冻结的 memstore 占用的内存在这里被看作是 active_memstore 可以使用的内存,blockcache 可以挤占的那部分内存也被看作是 memstore 可以使用的内存。 -**说明** - - - -global_major_freeze_residual_memory 配置项取值需要比 global_write_halt_residual_memory 大,否则全局 freeze trigger 实际不生效,只能依靠 tenant 触发全局冻结。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/91.global_write_halt_residual_memory.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/91.global_write_halt_residual_memory.md deleted file mode 100644 index e3351b679..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/91.global_write_halt_residual_memory.md +++ /dev/null @@ -1,16 +0,0 @@ -global_write_halt_residual_memory -====================================================== - -global_write_halt_residual_memory 用于设置触发暂停普通租户写入(sys 租户不受影响)的全局剩余内存阈值。即当全局剩余内存小于这个百分比时,暂停普通租户写入(sys 租户不受影响)。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 整型 | -| 默认值 | 30 | -| 取值范围 | \[1, 99\] | -| 是否重启 OBServer 生效 | 否 | - - - -global_write_halt_residual_memory 配置项的值为百分比,百分比基数为 memory_limit - system_memory,即除去为 OceanBase 数据库内部 500 租户预留的内存。计算剩余内存的时候,blockcache 可以挤占的那部分内存看作 memstore 可以使用的内存。 diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/92.ignore_replay_checksum_error.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/92.ignore_replay_checksum_error.md deleted file mode 100644 index 3d1896acb..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/92.ignore_replay_checksum_error.md +++ /dev/null @@ -1,14 +0,0 @@ -ignore_replay_checksum_error -================================================= - -ignore_replay_checksum_error 用于设置是否忽略回放事务日志时发生的校验和错误。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/93.global_index_build_single_replica_timeout.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/93.global_index_build_single_replica_timeout.md deleted file mode 100644 index 7184408f5..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/93.global_index_build_single_replica_timeout.md +++ /dev/null @@ -1,15 +0,0 @@ -global_index_build_single_replica_timeout -============================================================== - -global_index_build_single_replica_timeout 用于建全局索引时,设置每个副本构建的超时时间。 - - -| **属性** | **描述** | -|------------------|-----------| -| 参数类型 | 时间类型 | -| 默认值 | 48h | -| 取值范围 | \[1h, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/94.high_priority_net_thread_count.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/94.high_priority_net_thread_count.md deleted file mode 100644 index 177428803..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/94.high_priority_net_thread_count.md +++ /dev/null @@ -1,15 +0,0 @@ -high_priority_net_thread_count -=================================================== - -high_priority_net_thread_count 用于设置高优先级网络线程数,值为 0 时,表示关闭该功能。 - - -| **属性** | **描述** | -|------------------|------------| -| 参数类型 | 整型 | -| 默认值 | 0 | -| 取值范围 | \[0, 100\] | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/95.ignore_replica_checksum_error.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/95.ignore_replica_checksum_error.md deleted file mode 100644 index fe87015f7..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/95.ignore_replica_checksum_error.md +++ /dev/null @@ -1,14 +0,0 @@ -ignore_replica_checksum_error -================================================== - -ignore_replica_checksum_error 用于设置是否忽略多副本间校验和检查发生的错误。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/96.ignore_replay_checksum_error-1.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/96.ignore_replay_checksum_error-1.md deleted file mode 100644 index 3d1896acb..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/96.ignore_replay_checksum_error-1.md +++ /dev/null @@ -1,14 +0,0 @@ -ignore_replay_checksum_error -================================================= - -ignore_replay_checksum_error 用于设置是否忽略回放事务日志时发生的校验和错误。 - - -| **属性** | **描述** | -|------------------|--------------------------------------------------------------------------------------------------------| -| 参数类型 | 布尔类型 | -| 默认值 | False | -| 取值范围 | * True * False | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/97.index_cache_priority.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/97.index_cache_priority.md deleted file mode 100644 index 77c5efbfc..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/97.index_cache_priority.md +++ /dev/null @@ -1,15 +0,0 @@ -index_cache_priority -========================================= - -index_cache_priority 用于设置索引在缓存系统中的优先级。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 10 | -| 取值范围 | \[1, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/98.index_clog_cache_priority.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/98.index_clog_cache_priority.md deleted file mode 100644 index aaa377718..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/98.index_clog_cache_priority.md +++ /dev/null @@ -1,15 +0,0 @@ -index_clog_cache_priority -============================================== - -index_clog_cache_priority 用于设置事务日志索引在缓存系统中的优先级。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 1 | -| 取值范围 | \[1, +∞) | -| 是否重启 OBServer 生效 | 否 | - - - diff --git a/docs/docs-cn/13.reference-guide/3.system-configuration-items/99.index_info_block_cache_priority.md b/docs/docs-cn/13.reference-guide/3.system-configuration-items/99.index_info_block_cache_priority.md deleted file mode 100644 index cccf2103e..000000000 --- a/docs/docs-cn/13.reference-guide/3.system-configuration-items/99.index_info_block_cache_priority.md +++ /dev/null @@ -1,14 +0,0 @@ -index_info_block_cache_priority -==================================================== - -index_info_block_cache_priority 用于设置块索引在缓存系统中的优先级。 - - -| **属性** | **描述** | -|------------------|----------| -| 参数类型 | 整型 | -| 默认值 | 1 | -| 取值范围 | \[1, +∞) | -| 是否重启 OBServer 生效 | 否 | - - diff --git a/docs/docs-cn/13.reference-guide/4.reserved-keywords.md b/docs/docs-cn/13.reference-guide/4.reserved-keywords.md deleted file mode 100644 index 92ec86a1c..000000000 --- a/docs/docs-cn/13.reference-guide/4.reserved-keywords.md +++ /dev/null @@ -1,92 +0,0 @@ -预留关键字 -========================== - - - -目前,OceanBase 数据库 MySQL 模式下的预留关键如下所示。 - - -|--------------|-------------------------------|---------------------|--------------------|-------------------| -| A ||||| -| ACCESSIBLE | ADD | ALL | ALTER | ANALYZE | -| AND | AS | ASC | ASENSITIVE || -| B ||||| -| BEFORE | BETWEEN | BIGINT | BINARY | BLOB | -| BOTH | BY |||| -| C ||||| -| CALL | CASCADE | CASE | CHANGE | CHAR | -| CHARACTER | CHECK | COLLATE | COLUMN | CONDITION | -| CONSTRAINT | CONTINUE | CON | VERT | CREATE | -| CROSS | CURRENT_DATE | CURRENT_TIME | CURRENT_TIME | STAMP | -| CURRENT_USER | CURSOR |||| -| D ||||| -| DATABASE | DATABASES | DAY_HOUR | DAY_MICROSECOND | DAY_MINUTE | -| DAY_SECOND | DECLARE | DECIMAL | DEFAULT | DELAYED | -| DELETE | DESC | DESCRIBE | DETERMINISTIC | DISTINCT | -| DISTINCTROW | DIV | DOUBLE | DROP | DUAL | -| E ||||| -| EACH | ELSE | ELSEIF | ENCLOSED | ESCAPED | -| EXISTS | EXIT | EXPLAIN ||| -| F ||||| -| FETCH | FLOAT | FLOAT4 | FLOAT8 | FOR | -| FORCE | FOREIGN | FROM | FULLTEXT || -| G ||||| -| GENERATED | GET | GRANT | GROUP || -| H ||||| -| HAVING | HIGH_PRIORITY | HOUR_MICROSECOND | HOUR_MINUTE | HOUR_SECOND | -| I ||||| -| IF | IGNORE | IN | INDEX | INFILE | -| INNER | INOUT | INSENSITIVE | INSERT | INT | -| INT1 | INT2 | INT3 | INT4 | INT8 | -| INTEGER | INTERVAL | INTO | IO_AFTER_GTIDS | IO_BEFORE_GTIDS | -| IS | ITERATE |||| -| J ||||| -| JOIN ||||| -| K ||||| -| KEY | KEYS | KILL ||| -| L ||||| -| LEADING | LEAVE | LEFT | LIKE | LIMIT | -| LINEAR | LINES | LOAD | LOCALTIME | LOCALTIMESTAMP | -| LONG | LONGBLOB | LONGTEXT | LOOP | LOW_PRIORITY | -| M ||||| -| MASTER_BIND | MASTER_SSL_VERIFY_SERVER_CERT | MATCH | MAXVALUE | MEDIUMBLOB | -| MEDIUMINT | MEDIUMTEXT | MIDDLEINT | MINUTE_MICROSECOND | MINUTE_SECOND MOD | -| MODIFIES ||||| -| N ||||| -| NATURAL | NOT | NO_WRITE_TO_BINLOG ||| -| O ||||| -| ON | OPTIMIZE | OPTION | OPTIONALLY | OR | -| ORDER | OUT | OUTER | OUTFILE || -| P ||||| -| PARTITION | PRECISION | PRIMARY | PROCEDURE | PURGE | -| R ||||| -| RANGE | READ | READS | READ_WRITE | REAL | -| REFERENCES | REGEXP | RELEASE | RENAME | REPEAT | -| REPLACE | REQUIRE | RESIGNAL | RESTRICT | RETURN | -| REVOKE | RIGHT | RLIKE ||| -| S ||||| -| SCHEMA | SCHEMAS | SECOND_MICROSECOND | SELECT | SENSITIVE | -| SEPARATOR | SET | SHOW | SIGNAL | SMALLINT | -| SPATIAL | SPECIFIC | SQL | SQLEXCEPTION | SQLSTATE | -| SQLWARNING | SQL_BIG_RESULT | SQL_CALC_FOUND_ROWS | SQL_SMALL_RESULT | SSL | -| STARTING | STORED | STRAIGHT_JOIN ||| -| T ||||| -| TABLE | TERMINATED | THEN | TINYBLOB | TINYINT | -| TINYTEXT | TO | TRAILING | TRIGGER | TABLEGROUP | -| U ||||| -| UNDO | UNION | UNIQUE | UNLOCK | UNSIGNED | -| UPDATE | USAGE | USE | USING | UTC_DATE | -| UTC_TIME | UTC_TIMESTAMP |||| -| V ||||| -| VALUES | VARBINARY | VARCHAR | VARCHARACTER | VARYING | -| VIRTUAL ||||| -| W ||||| -| WHEN | WHERE | WHILE | WITH | WRITE | -| X ||||| -| XOR ||||| -| Y ||||| -| YEAR_MONTH ||||| -| Z ||||| -| ZEROFILL ||||| - - diff --git a/docs/docs-cn/15.community-contribution/1.how-to-contribute.md b/docs/docs-cn/15.community-contribution/1.how-to-contribute.md deleted file mode 100644 index a6b5c24d9..000000000 --- a/docs/docs-cn/15.community-contribution/1.how-to-contribute.md +++ /dev/null @@ -1,162 +0,0 @@ -如何贡献 -========================= - -OceanBase 数据库是一个开源的项目。欢迎您贡献代码或文档。本文介绍如何为该项目做贡献。 - -开始之前 -------------------------- - -欢迎您为 OceanBase 数据库贡献代码或文档。在您开始贡献之前,您需要签署贡献者许可协议(Contributor Licence Agreement,简称 CLA)。详细信息,参考 [什么是 CLA](https://en.wikipedia.org/wiki/Contributor_License_Agreement)。点击 [OceaBase CLA](https://cla-assistant.io/oceanbase/oceanbase?pullRequest=108),点击 **Sign in with GitHub to agree** 按钮签署协议。 - -贡献指南 -------------------------- - -**注意** - -本节介绍如何为 `master` 分支创建 PR。为其他分支创建 PR 的步骤与此按照以下步骤提交 Pull Request(简称 PR): -类似。 - -**步骤 1:Fork 项目仓库** - -1. 访问项目的 [GitHub 地址](https://github.com/oceanbase/oceanbase)。 - - - -2. 点击 Fork 按钮创建远程分支。 - - - - - - -**步骤2:克隆分支到本地** - -1. 定义工作目录。 - - ```bash - # 定义工作目录 - working_dir=$HOME/Workspace - ``` - - - -2. 配置 GitHub 用户名。 - - ```bash - user={GitHub账户名} - ``` - - - -3. 克隆代码。 - - ```bash - # 克隆代码 - mkdir -p $working_dir - cd $working_dir - git clone git@github.com:$user/oceanbase.git - # 或: git clone https://github.com/$user/oceanbase.git - - # 添加上游分支 - cd $working_dir/oceanbase - git remote add upstream git@github.com:oceanbase/oceanbase.git - # 或: git remote add upstream https://github.com/oceanbase/oceanbase.git - - # 为上游分支设置 no_push - git remote set-url --push upstream no_push - - # 确认远程分支有效 - git remote -v - ``` - - - - - - -**步骤 3:创建新分支** - -1. 更新本地 `master` 分支。 - - ```bash - cd $working_dir/oceanbase - git fetch upstream - git checkout master - git rebase upstream/master - ``` - - - -2. 基于本地 `master` 分支创建新分支。 - - ```bash - git checkout -b new-branch-name - ``` - - - - - - -**步骤 4:开发** - -在 `new-branch-name` 上开发并保存更改。 - -**步骤 5:提交更改** - -```bash -# 检查本地文件状态 -git status - -# 添加您希望提交的文件 -# 如果您希望提交所有更改,直接使用 `git add .` -git add ... -git commit -m "commit-message: update the xx" -``` - - - -**步骤 6:保持开发分支与上游分支同步** - -```bash -# 在开发分支执行以下操作 -git fetch upstream -git rebase upstream/master -``` - - - -**步骤 7:推送更改至远程分支** - -```bash -# 在开发分支执行以下操作 -git push -u origin new-branch-name -``` - - - -**步骤 8:创建 PR** - -1. 访问您 Fork 的仓库。 - - - -2. 单击 `new-branch-name` 分支旁的 `Compare & pull request` 按钮。 - - - - - - - - - - - - - - - - - - diff --git a/docs/docs-cn/15.community-contribution/2.code-style.md b/docs/docs-cn/15.community-contribution/2.code-style.md deleted file mode 100644 index ce50a1444..000000000 --- a/docs/docs-cn/15.community-contribution/2.code-style.md +++ /dev/null @@ -1,6 +0,0 @@ -代码风格 -========================= - -本文档介绍 OceanBase 数据库的代码风格。 - -OceanBase 数据库代码风格,参考 [OceanBase 数据库代码规范](https://open.oceanbase.com/docs/oceanbase-code-style-guide/oceanbase-code-style-guide/V3.1.0/introduction)。 diff --git a/docs/docs-cn/15.community-contribution/3.pull-request-and-commit-specifications.md b/docs/docs-cn/15.community-contribution/3.pull-request-and-commit-specifications.md deleted file mode 100644 index e6bb2210d..000000000 --- a/docs/docs-cn/15.community-contribution/3.pull-request-and-commit-specifications.md +++ /dev/null @@ -1,70 +0,0 @@ -Pull Request 与 Commit 信息规范 -=============================================== - -本文介绍 Pull Request(简称 PR)和 Commit 信息规范,适用于所有 OceanBase 仓库。 所有提交至 OceanBase 仓库的 commit 均必须遵循以下准则。 - -Commit 信息规范 --------------------------------- - -```bash -(): // scope is optional, subject is must - - // optional - -