未验证 提交 fb1c1fd7 编写于 作者: Z zhijiuxing-alt 提交者: GitHub

Fix invalid link in document (#306)

modify the mkdocs.yml and Added support for Chinese retrieval
上级 94e2cc67
......@@ -38,7 +38,9 @@ To modify the layout of pages, you need to edit `mkdocs.yml`.
For configuration details, see [MkDocs User Guide](https://www.mkdocs.org/user-guide/configuration/).
**Note:** `docs/` is the default value of `docs_dir`, which means `docs/` is equivalent to `./` in `mkdocs.yml`.
Note the following rules when editing documents:
- All paths in `nav` must be relative to the `docs_dir`, which is `docs` by default. So here `./` is equivalent to [docs](docs).
- All internal links must be relative paths, as MkDocs only supports regular Markdown linking syntax.
## Contribute
......
......@@ -5,7 +5,7 @@
* OceanBase 数据库
蚂蚁集团完全自主研发的金融级分布式关系数据库。OceanBase 数据库具有高可用、可拓展、高兼容、低成本、强一致及高性能等特点。详细信息参考 [什么是 OceanBase 数据库](/zh-CN/1.about-oceanbase-database/1.what-is-oceanbase.md)
蚂蚁集团完全自主研发的金融级分布式关系数据库。OceanBase 数据库具有高可用、可拓展、高兼容、低成本、强一致及高性能等特点。详细信息参考 [什么是 OceanBase 数据库](../1.about-oceanbase-database/1.what-is-oceanbase.md)
* OceanBase Database Proxy
......
......@@ -90,7 +90,7 @@
在会话中引用序列的 `CURRVAL` 伪列前,都应首先应用序列的 `NEXTVAL` 伪列来初始化本次会话的序列值。
创建序列时,可以定义其初始值以及其值之间的增量。对 `NEXTVAL` 的第一次引用将返回序列的初始值。对 `NEXTVAL` 的后续引用将会使序列值按照定义的增量递增,并返回新值。任何对 `CURRVAL` 的引用总是返回该序列的当前值,即最后一次对 `NEXTVAL` 引用时返回的值。对序列的创建的相关内容,请参考文档 [CREATE SEQUENCE](/zh-CN/11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/12.create-sequence.md) 章节。
创建序列时,可以定义其初始值以及其值之间的增量。对 `NEXTVAL` 的第一次引用将返回序列的初始值。对 `NEXTVAL` 的后续引用将会使序列值按照定义的增量递增,并返回新值。任何对 `CURRVAL` 的引用总是返回该序列的当前值,即最后一次对 `NEXTVAL` 引用时返回的值。对序列的创建的相关内容,请参考文档 [CREATE SEQUENCE](../11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/12.create-sequence.md) 章节。
在单条 SQL 语句中引用 `NEXTVAL` 时,OceanBase 数据库按照以下方式递增序列:
......
......@@ -3,7 +3,7 @@
OceanBase 为我们提供了四种存储数值的数据类型,它们分别是 `NUMBER``FLOAT``BINARY_FLOAT``BINARY_DOUBLE`。您可以通过这四种数值类型存储定点数、浮点数和零。在数值计算时,数值类型具有不同的优先级,具体信息请查阅 [数值类型的优先级](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/3.numeric-data-type/5.numeric-priority.md)
OceanBase 为我们提供了四种存储数值的数据类型,它们分别是 `NUMBER``FLOAT``BINARY_FLOAT``BINARY_DOUBLE`。您可以通过这四种数值类型存储定点数、浮点数和零。在数值计算时,数值类型具有不同的优先级,具体信息请查阅 [数值类型的优先级](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/3.numeric-data-type/5.numeric-priority.md)
| **数据类** | **长度(字节)** | **说明** |
......
......@@ -36,11 +36,11 @@
更多信息
----------------
* [夏令时](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/4.date-time-and-interval-data-types/4.timestamp-with-time-zone-data-type.md)
* [夏令时](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/4.date-time-and-interval-data-types/4.timestamp-with-time-zone-data-type.md)
* [日期时间 DATE 和间隔 INTERVAL 的计算](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/4.date-time-and-interval-data-types/8.calculation-of-date-time-and-interval.md)
* [日期时间 DATE 和间隔 INTERVAL 的计算](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/4.date-time-and-interval-data-types/8.calculation-of-date-time-and-interval.md)
......
......@@ -44,7 +44,7 @@ DD-MON-RR HH.MI.SSXFF AM
如果您需要自定义数据的格式,可以使用转换函数。您可以通过函数 TO_CHAR (datetime,fmt) 指定数据的输出格式。这个转换函数会将字符串转化为参数 fmt 中定义的格式。在 `fmt` 未指明的情况下 `TO_CHAR` 按数据类型的默认格式返回数据。关于 `TIMESTAMP WITH TIME ZONE` 数据类型值的输入格式,您可以参阅文档 [时间戳字面量](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/3.literal-1/4.date-and-time-literal/2.timestamp-literal.md)
如果您需要自定义数据的格式,可以使用转换函数。您可以通过函数 TO_CHAR (datetime,fmt) 指定数据的输出格式。这个转换函数会将字符串转化为参数 fmt 中定义的格式。在 `fmt` 未指明的情况下 `TO_CHAR` 按数据类型的默认格式返回数据。关于 `TIMESTAMP WITH TIME ZONE` 数据类型值的输入格式,您可以参阅文档 [时间戳字面量](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/3.literal-1/4.date-and-time-literal/2.timestamp-literal.md)
取值范围
----------------
......
......@@ -28,7 +28,7 @@ INTERVAL YEAR [(percision)] TO MONTH
日期格式
----------------
在插入 `INTERVAL YEAR TO MONTH` 数据类型的值时,有以下几种格式,更多关于间隔数据类型值的指定请参阅 [间隔字面量](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/3.literal-1/5.interval-literal.md)
在插入 `INTERVAL YEAR TO MONTH` 数据类型的值时,有以下几种格式,更多关于间隔数据类型值的指定请参阅 [间隔字面量](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/3.literal-1/5.interval-literal.md)
| **语法** | **示例** | **说明** |
......@@ -72,7 +72,7 @@ SELECT * FROM Interval_Sample;
间隔与其他日期类型的计算
------------------------
OceanBase 支持数据类型间的转换,所以间隔数据类型的值可以与其他日期值进行数学运算,但是数据库并不支持数据类型间任意的进行加、减、乘、除运算。请参阅文档 [日期时间 DATE 和间隔 INTERVAL 的计算](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/4.date-time-and-interval-data-types/8.calculation-of-date-time-and-interval.md) 中查看目前支持的日期类型计算矩阵图和 [数据类型转换](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/2.data-type-comparison-rules/6.data-type-conversion.md) 了解数更多数据类型转换的信息。
OceanBase 支持数据类型间的转换,所以间隔数据类型的值可以与其他日期值进行数学运算,但是数据库并不支持数据类型间任意的进行加、减、乘、除运算。请参阅文档 [日期时间 DATE 和间隔 INTERVAL 的计算](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/4.date-time-and-interval-data-types/8.calculation-of-date-time-and-interval.md) 中查看目前支持的日期类型计算矩阵图和 [数据类型转换](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/2.data-type-comparison-rules/6.data-type-conversion.md) 了解数更多数据类型转换的信息。
* **示例 1** :间隔与间隔的计算,返回的值仍为间隔数据类型。
......
......@@ -29,7 +29,7 @@ INTERVAL DAY [(precision)] TO SECOND [(fractional_seconds_precision)]
示例
--------------
在插入 `INTERVAL DAY TO SECOND` 数据类型的值时,有以下几种格式,更多关于间隔数据类型值的指定请参阅 [间隔字面量](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/3.literal-1/5.interval-literal.md)
在插入 `INTERVAL DAY TO SECOND` 数据类型的值时,有以下几种格式,更多关于间隔数据类型值的指定请参阅 [间隔字面量](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/3.literal-1/5.interval-literal.md)
| 语法 | 示例 | 说明 |
......@@ -71,6 +71,6 @@ SELECT * FROM Interval_Sample;
间隔与其他日期类型的计算
------------------------
OceanBase 支持数据类型间的转换,所以间隔数据类型的值可以与其他日期值进行数学运算。但是数据库并不支持数据类型间任意的进行加、减、乘、除运算。请参阅文档 [日期时间 DATE 和间隔 INTERVAL 的计算](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/4.date-time-and-interval-data-types/8.calculation-of-date-time-and-interval.md) 中查看目前支持的日期类型计算矩阵图和参阅文档 [数据类型转换](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/2.data-type-comparison-rules/6.data-type-conversion.md) 了解数更多数据类型转换的信息。
OceanBase 支持数据类型间的转换,所以间隔数据类型的值可以与其他日期值进行数学运算。但是数据库并不支持数据类型间任意的进行加、减、乘、除运算。请参阅文档 [日期时间 DATE 和间隔 INTERVAL 的计算](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/4.date-time-and-interval-data-types/8.calculation-of-date-time-and-interval.md) 中查看目前支持的日期类型计算矩阵图和参阅文档 [数据类型转换](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/2.data-type-comparison-rules/6.data-type-conversion.md) 了解数更多数据类型转换的信息。
关于间隔与其他数据类型计算的示例,请参阅文档 [INTERVAL YEAR TO MONTH 数据类型](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/4.date-time-and-interval-data-types/6.interval-year-to-month-data-type.md)
关于间隔与其他数据类型计算的示例,请参阅文档 [INTERVAL YEAR TO MONTH 数据类型](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/4.date-time-and-interval-data-types/6.interval-year-to-month-data-type.md)
......@@ -25,15 +25,15 @@ OceanBase 数据类型比较规则支持以下数据值:
更多信息
----------------
* [数据类型优先级](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/2.data-type-comparison-rules/5.data-type-priority.md)
* [数据类型优先级](../../../11.sql-reference-oracle-mode/3.basic-elements-1/2.data-type-comparison-rules/5.data-type-priority.md)
* [数据类型转换](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/2.data-type-comparison-rules/6.data-type-conversion.md)
* [数据类型转换](../../../11.sql-reference-oracle-mode/3.basic-elements-1/2.data-type-comparison-rules/6.data-type-conversion.md)
* [数据转换的安全注意事项](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/2.data-type-comparison-rules/7.security-considerations-for-data-conversion.md)
* [数据转换的安全注意事项](../../../11.sql-reference-oracle-mode/3.basic-elements-1/2.data-type-comparison-rules/7.security-considerations-for-data-conversion.md)
......
......@@ -20,13 +20,13 @@ OceanBase 支持以下几种数据格式化:
**数值格式化**
数值格式化指定了存储在数据库中的定点数和浮点数的格式。当您需要将 SQL 语句中出现 `NUMBER``BINARY_FLOAT``BINARY_ DOUBLE` 值转换为 `VARCHAR2` 数据类型时,您可以使用函数中的数值格式化。数值格式化是由一个或多个数值格式化元素组成,具体信息请查阅 [数值格式化](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/4.format/2.format-1.md)
数值格式化指定了存储在数据库中的定点数和浮点数的格式。当您需要将 SQL 语句中出现 `NUMBER``BINARY_FLOAT``BINARY_ DOUBLE` 值转换为 `VARCHAR2` 数据类型时,您可以使用函数中的数值格式化。数值格式化是由一个或多个数值格式化元素组成,具体信息请查阅 [数值格式化](../../../11.sql-reference-oracle-mode/3.basic-elements-1/4.format/2.format-1.md)
**日期时间格式化**
日期时间格式化指定了存储在数据库中日期时间数据的格式。日期时间格式化的总长度不能超过 22 个字符。当您需要将非默认格式的字符值转换为日期时间格式的值时,您可以使用函数中的日期时间格式化。日期时间格式化是由一个或多个日期时间格式化元素组成,具体信息请查阅 [日期时间格式化](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/4.format/3.date-and-time-formatting.md)。将字符串值转换为日期值,是有一些转换规则,关于规则请查阅 [字符串到日期的转换规则](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/4.format/5.conversion-rules-from-string-to-date.md)
日期时间格式化指定了存储在数据库中日期时间数据的格式。日期时间格式化的总长度不能超过 22 个字符。当您需要将非默认格式的字符值转换为日期时间格式的值时,您可以使用函数中的日期时间格式化。日期时间格式化是由一个或多个日期时间格式化元素组成,具体信息请查阅 [日期时间格式化](../../../11.sql-reference-oracle-mode/3.basic-elements-1/4.format/3.date-and-time-formatting.md)。将字符串值转换为日期值,是有一些转换规则,关于规则请查阅 [字符串到日期的转换规则](../../../11.sql-reference-oracle-mode/3.basic-elements-1/4.format/5.conversion-rules-from-string-to-date.md)
`RR` 日期时间格式化元素类似于 `YY` 日期时间格式化元素,但它为跨世纪日期值存储提供了额外的灵活性,关于 RR 日式格式化元素,请查阅 [RR 日期时间格式化元素](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/4.format/4.rr-date-and-time-format-element.md)
`RR` 日期时间格式化元素类似于 `YY` 日期时间格式化元素,但它为跨世纪日期值存储提供了额外的灵活性,关于 RR 日式格式化元素,请查阅 [RR 日期时间格式化元素](../../../11.sql-reference-oracle-mode/3.basic-elements-1/4.format/4.rr-date-and-time-format-element.md)
**格式化修饰符**
......
......@@ -5,15 +5,15 @@
OceanBase 中用户可以创建三种注释:
* [SQL 语句的注释](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/6.annotation-1/2.comments-on-the-sql-statement.md):被存储为执行 SQL 语句的应用程序代码的一部分。
* [SQL 语句的注释](../../../11.sql-reference-oracle-mode/3.basic-elements-1/6.annotation-1/2.comments-on-the-sql-statement.md):被存储为执行 SQL 语句的应用程序代码的一部分。
* [Schema 与非 Schema 对象的注释](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/6.annotation-1/3.comment-on-schema-and-non-schema-objects.md):与对象本身的元数据一起存储在数据字典中。
* [Schema 与非 Schema 对象的注释](../../../11.sql-reference-oracle-mode/3.basic-elements-1/6.annotation-1/3.comment-on-schema-and-non-schema-objects.md):与对象本身的元数据一起存储在数据字典中。
* [Hint](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/6.annotation-1/4.Hint/1.hint-overview.md):一种在 SQL 语句中将指令传递给 OceanBase 数据库优化器的注释。
* [Hint](../../../11.sql-reference-oracle-mode/3.basic-elements-1/6.annotation-1/4.Hint/1.hint-overview.md):一种在 SQL 语句中将指令传递给 OceanBase 数据库优化器的注释。
......
......@@ -6,7 +6,7 @@
QB_NAME Hint
------------------------
使用 `QB_NAME` Hint 来定义查询块的名称。然后,可以在外部查询的 Hint 中使用这个名称,也可以在内联视图的 Hint 中使用这个名称,从而影响查询在被命名查询块中的表上的执行。更多关于查询块名称的信息,请参阅文档 [Hint 概述](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/6.annotation-1/4.Hint/1.hint-overview.md) 中的在 Hint 中定义查询块。
使用 `QB_NAME` Hint 来定义查询块的名称。然后,可以在外部查询的 Hint 中使用这个名称,也可以在内联视图的 Hint 中使用这个名称,从而影响查询在被命名查询块中的表上的执行。更多关于查询块名称的信息,请参阅文档 [Hint 概述](../../../../../11.sql-reference-oracle-mode/3.basic-elements-1/6.annotation-1/4.Hint/1.hint-overview.md) 中的在 Hint 中定义查询块。
以下是 `QB_NAME` Hint 的语法:
......
......@@ -18,4 +18,4 @@ Schema 对象命名示例
这些示例都遵循了 [数据库对象命名规则](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/8.database-naming-convention/2.database-object-naming-rules.md) 中列出的规则。
这些示例都遵循了 [数据库对象命名规则](../../../11.sql-reference-oracle-mode/3.basic-elements-1/8.database-naming-convention/2.database-object-naming-rules.md) 中列出的规则。
......@@ -3,9 +3,9 @@
当您发出包含数据库链接的 SQL 语句时,需要使用存储在数据字典中的完整数据库链接名,更多关于数据库链接名称的信息请查看文档 [创建数据库链接](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/9.database-object-reference-method/3.reference-objects-in-a-remote-database/1.create-database-link.md)
当您发出包含数据库链接的 SQL 语句时,需要使用存储在数据字典中的完整数据库链接名,更多关于数据库链接名称的信息请查看文档 [创建数据库链接](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/9.database-object-reference-method/3.reference-objects-in-a-remote-database/1.create-database-link.md)
OceanBase 在连接远程数据库时,将使用数据库连接字符串访问远程数据库。使用数据库字符串、用户名和密码后连接成功,则 OceanBase 使用文档 [引用 Schema 对象](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/9.database-object-reference-method/2.reference-a-schema-object.md) 中的规则来访问远程数据库上的指定对象,但请注意相关限制:
OceanBase 在连接远程数据库时,将使用数据库连接字符串访问远程数据库。使用数据库字符串、用户名和密码后连接成功,则 OceanBase 使用文档 [引用 Schema 对象](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/9.database-object-reference-method/2.reference-a-schema-object.md) 中的规则来访问远程数据库上的指定对象,但请注意相关限制:
1. 只能执行只读语句。
......
......@@ -72,7 +72,7 @@
| +、-(作为一元运算符)、PRIOR、CONNECT_BY_ROOT | 正号、负号、层次结构中的位置。 |
| \*、/ | 乘法、除法。 |
| +、-(作为二元运算符)、\|\| | 加、减、串联。 |
| 条件表达式在数据库评估完运算符后再进行评估 | 详情请参阅文档 [SQL 条件概述](/zh-CN/11.sql-reference-oracle-mode/7.condition/1.overview-of-sql-conditions.md)。 |
| 条件表达式在数据库评估完运算符后再进行评估 | 详情请参阅文档 [SQL 条件概述](../../11.sql-reference-oracle-mode/7.condition/1.overview-of-sql-conditions.md)。 |
......
......@@ -18,7 +18,7 @@
算术表达式中不能使用两个连续的负号(--)来表示双重求反或减去一个负值,因为字符 -- 在 SQL 语句中用于指定注释。可以用空格或括号分隔连续的减号。有关 SQL 语句中的注释,详细信息请参阅章节 [注释](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/6.annotation-1/1.annotation-overview.md)
算术表达式中不能使用两个连续的负号(--)来表示双重求反或减去一个负值,因为字符 -- 在 SQL 语句中用于指定注释。可以用空格或括号分隔连续的减号。有关 SQL 语句中的注释,详细信息请参阅章节 [注释](../../11.sql-reference-oracle-mode/3.basic-elements-1/6.annotation-1/1.annotation-overview.md)
以下示例展示了运算符 +、- 用于表示正、负的 SQL 查询:
......
......@@ -3,7 +3,7 @@
`PRIOR``CONNECT_BY_ROOT` 运算符仅在 [层次查询](/zh-CN/11.sql-reference-oracle-mode/8.queries-and-subqueries-1/3.hierarchical-query.md) 中有效。
`PRIOR``CONNECT_BY_ROOT` 运算符仅在 [层次查询](../../11.sql-reference-oracle-mode/8.queries-and-subqueries-1/3.hierarchical-query.md) 中有效。
PRIOR 运算符
---------------------
......
......@@ -11,7 +11,7 @@
没有任何参数的函数类似于 [伪列](/zh-CN/11.sql-reference-oracle-mode/2.pseudo-column.md)。但是,伪列通常为结果集中的每一行返回不同的值,而没有任何变量的函数通常为每一行返回相同的值。
没有任何参数的函数类似于 [伪列](../../11.sql-reference-oracle-mode/2.pseudo-column.md)。但是,伪列通常为结果集中的每一行返回不同的值,而没有任何变量的函数通常为每一行返回相同的值。
关于函数
----------------
......@@ -31,7 +31,7 @@ OceanBase 内嵌的函数可以直接在 SQL 语句中使用。每个函数的
在 SQL 语句中对 `LOB` 列使用函数时,OceanBase 数据库将在 SQL 和 PL/SQL 处理期间创建临时 `LOB` 列,并有一定的使用限制,详情信息请参考文档 [与 Oracle 兼容性对比](t1988469.html#topic-1988469)
在 SQL 语句中对 `LOB` 列使用函数时,OceanBase 数据库将在 SQL 和 PL/SQL 处理期间创建临时 `LOB` 列,并有一定的使用限制。
本章中函数分成了两大类:
......@@ -46,7 +46,7 @@ OceanBase 内嵌的函数可以直接在 SQL 语句中使用。每个函数的
分析函数与聚合函数,都是对行集组(一组行的集合)进行聚合计算,不同的是,聚合函数每组只能返回一个值(一行),而分析函数每组可以返回多个值(多行)。行集组又称为窗口(Window)。聚合函数通常和 `SELECT` 语句中的 `GROUP BY` 子句一起使用,使用时数据库将查询表或视图的行分为几组,并将聚合函数应用于每组行,同时为每组返回一个结果行。
使用分析函数时需要用特殊的关键字 `OVER` 来指定窗口。更多关于窗后函数的信息,请参阅文档 [窗口函数说明](/zh-CN/11.sql-reference-oracle-mode/5.functions-1/4.analysis-functions-1/1.window-function-description.md)
使用分析函数时需要用特殊的关键字 `OVER` 来指定窗口。更多关于窗后函数的信息,请参阅文档 [窗口函数说明](../../11.sql-reference-oracle-mode/5.functions-1/4.analysis-functions-1/1.window-function-description.md)
### 数字函数
......@@ -360,4 +360,4 @@ Query OK, 0 rows affected (0.00 sec)
更多信息
----------------
分析函数中的关键字 `OVER`,请参阅 [窗口函数说明](/zh-CN/11.sql-reference-oracle-mode/5.functions-1/4.analysis-functions-1/1.window-function-description.md)
分析函数中的关键字 `OVER`,请参阅 [窗口函数说明](../../11.sql-reference-oracle-mode/5.functions-1/4.analysis-functions-1/1.window-function-description.md)
......@@ -23,7 +23,7 @@ CAST (expr AS type_name )
|-----------|--------------------------------------------------------------------------|
| expr | 列名或者表达式。 |
| AS | 用于分隔两个参数,在 `AS` 之前的是要处理的数据,在 `AS` 之后是要转换的数据类型。 |
| type_name | 数据类型为 OceanBase 的 [内建数据类型](/zh-CN/11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/1.overview-of-built-in-data-types.md)。 |
| type_name | 数据类型为 OceanBase 的 [内建数据类型](../../../../11.sql-reference-oracle-mode/3.basic-elements-1/1.built-in-data-types/1.overview-of-built-in-data-types.md)。 |
......
......@@ -3,7 +3,7 @@
列表达式(Column Expressions)是一种形式受限制的 `expr`,在本章其他表达式的语法中被命名为 `column_expression`。列表达式可以是 [简单表达式](/zh-CN/11.sql-reference-oracle-mode/6.expression-1/2.simple-expression.md)[复合表达式](/zh-CN/11.sql-reference-oracle-mode/6.expression-1/3.compound-expression.md)[函数表达式](/zh-CN/11.sql-reference-oracle-mode/6.expression-1/7.function-expression.md) 或者 [表达式列表](/zh-CN/11.sql-reference-oracle-mode/6.expression-1/10.expression-list.md),但它只能包含以下形式的表达式:
列表达式(Column Expressions)是一种形式受限制的 `expr`,在本章其他表达式的语法中被命名为 `column_expression`。列表达式可以是 [简单表达式](../../11.sql-reference-oracle-mode/6.expression-1/2.simple-expression.md)[复合表达式](../../11.sql-reference-oracle-mode/6.expression-1/3.compound-expression.md)[函数表达式](../../11.sql-reference-oracle-mode/6.expression-1/7.function-expression.md) 或者 [表达式列表](../../11.sql-reference-oracle-mode/6.expression-1/10.expression-list.md),但它只能包含以下形式的表达式:
* 目标表(被创建,变更或索引的表)的列。
......
......@@ -14,4 +14,4 @@
更多关于条件 `NOT``AND``OR` 的信息,请参考文档 [逻辑条件](/zh-CN/11.sql-reference-oracle-mode/7.condition/3.logical-conditions.md)
更多关于条件 `NOT``AND``OR` 的信息,请参考文档 [逻辑条件](../../11.sql-reference-oracle-mode/7.condition/3.logical-conditions.md)
......@@ -64,7 +64,7 @@ OceanBase(root@oceanbase)>ALTER SEQUENCE my_sequence MAXVALUE 1024 CYCLE;
实现。
* 其他自增列取值注意事项可参考 [CREATE SEQUENCE](/zh-CN/11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/12.create-sequence.md) 语句。
* 其他自增列取值注意事项可参考 [CREATE SEQUENCE](../../../11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/12.create-sequence.md) 语句。
......
......@@ -103,12 +103,12 @@ Outputs & filters:
Q2 查询的执行计划展示中,虽然 SQL 中含有 LIMIT,但是并未分配 LIMIT 算子,而是将相关表达式下压到了 TABLE SCAN 算子上,这种下压 LIMIT 行为是 SQL 优化器的一种优化方式,详细信息请参见 [TABLE SCAN](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/1.table-scan-2.md)
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](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/4.COUNT-1-2-3-4.md)
由于 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 场景
-----------------------------------------------
......
......@@ -44,7 +44,7 @@ Outputs & filters:
目前 LIMIT 算子只支持 MySQL 模式的 SQL 场景。详细信息请参考 [LIMIT](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/12.LIMIT-1-2.md)
目前 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 算子的输出信息如下:
......
......@@ -195,7 +195,7 @@ Outputs & filters:
其中,PX PARTITION ITERATO 算子用于按照分区粒度迭代数据,详细信息请参见 [GI](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/24.GI-1-2.md)
其中,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) 算子的输出信息如下:
......
......@@ -64,7 +64,7 @@ Outputs & filters:
其中,MATERIAL 算子用于物化下层算子输出的数据,详细信息请参见 [MATERIAL](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/10.MATERIAL-1-2.md)
其中,MATERIAL 算子用于物化下层算子输出的数据,详细信息请参见 [MATERIAL](../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/10.MATERIAL-1-2.md)
```javascript
Q2:
......
......@@ -91,4 +91,4 @@ Outputs & filters:
从上述执行计划示例的输出结果可以发现,虽然 SQL 中含有 ROWNUM,但是经过 SQL 优化器改写之后,已经将涉及含有 ROWNUM 的表达式转换为了等价的 LIMIT 表达式,转换的好处在于可以做更多的优化,详细信息请参见 [LIMIT](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/12.LIMIT-1-2.md)
从上述执行计划示例的输出结果可以发现,虽然 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)
......@@ -196,4 +196,4 @@ obclient>ALTER SYSTEM FLUSH PLAN CACHE [tenant_list] [global]
有关视图的详细参数信息,请参考 [计划缓存相关视图](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md)
有关视图的详细参数信息,请参考 [计划缓存相关视图](../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md)
......@@ -331,4 +331,4 @@ 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 介绍](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/1.g-v-sql_audit-introduction.md)
详细信息请参考 [(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)
......@@ -30,8 +30,8 @@ SQL 调优方式一般可分为单条 SQL 调优和系统 SQL 调优。
| **主要方法** | **说明** |
|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 优化慢 SQL | 找到具体的慢 SQL 后,针对单条 SQL 进行性能调优,请参见示例 [查询某段时间内执行时间排名 TOP N 的请求](/zh-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)。 |
| 均衡 SQL 的请求流量资源 | 请参见示例 [查看集群 SQL 请求流量是否均衡](/zh-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)。 影响均衡的因素主要有: * `ob_read_consistency` 如何设置 * Primary Zone 如何设置 * Proxy 或 Java 客户端路由策略相关设置 * 业务热点查询分区是否均衡 |
| 均衡子计划的 RPC 请求流量资源 | 请参见示例 [查看分布式子计划 RPC 执行数是否均衡](/zh-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)。 影响子计划请求是否均匀的主要因素如下: * OBServer 内部路由策略相关设置 * 业务热点查询的分区是否均衡 |
| 优化慢 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 内部路由策略相关设置 * 业务热点查询的分区是否均衡 |
......@@ -5,13 +5,13 @@ SQL 调优基本流程
在 SQL 调优中,针对慢 SQL 的分析步骤如下:
1. 通过全局 SQL 审计表 (g)v$sql_audit、 SQL Trace 和计划缓存视图查看 SQL 执行信息,初步查找 SQL 请求的流程中导致耗时或消耗资源(如内存、磁盘 IO 等)的 SQL。请参见示例 [查询某段时间内执行时间排名 TOP N 的请求](/zh-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)
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 生成的逻辑执行计划,确定可能的调优方向。请参见示例 [查看执行计划形状并做分析](/zh-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)
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 执行计划简介](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/1.introduction-to-sql-execution-plans-2.md)
关于执行计划的详细信息请参考 [SQL 执行计划简介](../../12.sql-optimization-guide-1/2.sql-execution-plan-3/1.introduction-to-sql-execution-plans-2.md)
3. 找到具体的慢 SQL,为了使某些 SQL 的执行时间或资源消耗符合预期,常见的优化方式如下:
......
......@@ -5,11 +5,11 @@
根据如下步骤查看执行计划形状并做分析:
1. 通过 `EXPLAIN` 命令查看执行计划形状,或者通过实时执行计划展示查看缓存执行计划。详细信息请参见 [SQL 执行计划简介](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/1.introduction-to-sql-execution-plans-2.md)[实时执行计划展示](t1962412.html#topic-1962412)
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. 获得执行计划形状后,可以分析索引、联接顺序、 联接算法等选择是否合理正确。详细信息请参见 [访问路径](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/1.overview-16.md)[联接顺序](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/3.join-order-3.md)[联接算法](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/2.join-algorithm-6.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)
......
......@@ -7,10 +7,10 @@
* 使用 sql_audit 查看统计数据并分析该 SQL 的执行计划。详细步骤请参考示例
[分析 RT 突然抖动的 SQL](/zh-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)
[分析 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)
* 分析下执行计划是否正确。详细步骤请参考示例 [查看执行计划形状并做分析](/zh-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)
* 分析下执行计划是否正确。详细步骤请参考示例 [查看执行计划形状并做分析](../../../../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)
......
......@@ -7,7 +7,7 @@
不同方式的联接算法为 SQL 调优提供了更多的选择,可以使得 SQL 调优时能够根据表的数据特性选择合适的联接算法,从而让多表联接组合起来变得更加高效。
联接语句在数据中由联接算法实现,主要的联接算法有 NESTED LOOP JOIN、HASH JOIN 和 MERGE JOIN。由于三种算法在不同的场景下各有优劣,优化器会自动选择联接算法。关于各算法的原理,请参见 [联接算法](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/2.join-algorithm-6.md)
联接语句在数据中由联接算法实现,主要的联接算法有 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 机制进行控制,以方便用户根据自身的实际需求去选择何种联接顺序及联接算法以进行多表的联接。
......@@ -224,7 +224,7 @@ NESTED LOOP JOIN 还有以下两种实现的算法:
在 outputs \& filters 的输出结果中 `nl_param` 出现参数 `[t2.c1]`,说明执行了条件下压优化。详细信息请参考 [JOIN](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/3.JOIN-1-2.md)
在 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。
......
......@@ -147,7 +147,7 @@ USING HINT /*+ INDEX(t1 idx_c2)*/ ;
* Hint 格式为` /*+ xxx */`,关于 Hint 说明的详细信息,请参考 [Optimizer Hint。](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/1.optimizer-hint-1.md)
* Hint 格式为` /*+ xxx */`,关于 Hint 说明的详细信息,请参考 [Optimizer Hint。](../../../12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/1.optimizer-hint-1.md)
......@@ -301,7 +301,7 @@ Query OK, 0 rows affected (0.01 sec)
确定是通过绑定的 Outline 生成的计划后,需要确定生成的计划是否符合预期,可以通过查询`gv$plan_cache_plan_stat` 表查看 `plan_cache` 中缓存的执行计划形状,具体查看方式可参考
[实时执行计划展示](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/5.real-time-execution-plan-display-3.md)
[实时执行计划展示](../../../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
......
......@@ -21,11 +21,11 @@
#### **访问路径**
访问某张表时使用的访问方式,包括主表访问和二级索引访问两类。具体参见 [访问路径](/zh-CN/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/1.access-path-3/1.overview-16.md)
#### **联接顺序**
多表联接时各表之间的联接顺序,目前 OceanBase 数据库仅支持左深树的联接顺序。具体参见 [联接顺序](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/3.join-order-3.md)
多表联接时各表之间的联接顺序,目前 OceanBase 数据库仅支持左深树的联接顺序。具体参见 [联接顺序](../12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/3.join-order-3.md)
#### **联接算法**
......@@ -37,7 +37,7 @@
#### **执行计划绑定**
用户通过给定 outline 来指定某条 SQL 的执行计划的过程,具体参见 [计划绑定](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/2.plan-binding-1.md)
用户通过给定 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)**
......
......@@ -32,4 +32,4 @@ OceanBase 数据库的系统变量主要分为全局变量和 Session 变量:
本章主要介绍 OceanBase 数据库中的所有系统变量及其缺省值说明(包括参数含义、取值范围和使用说明等)。系统变量的查看和设置相关操作,请参见 [租户管理变量](t1940574.html#topic-1940574)章节。
本章主要介绍 OceanBase 数据库中的所有系统变量及其缺省值说明(包括参数含义、取值范围和使用说明等)。系统变量的查看和设置相关操作,请参见 [租户管理变量](../../6.administrator-guide/3.basic-database-management/5.tenants/9.tenant-management-variables.md)章节。
......@@ -13,4 +13,4 @@ wait_timeout 用于设置服务器关闭非交互连接之前等待活动的秒
在会话启动时,会根据全局 wait_timeout 的值或全局 interactive_timeout 的值来初始化会话 wait_timeout 的值,具体根据全局 wait_timeout 的值还是全局 interactive_timeout 的值取决于客户端类型。客户端类型由 `mysql_real_connect()` 的连接选项 CLIENT_INTERACTIVE 定义。 interactive_timeout 变量相关信息请参见 **[](gi9a68)** [interactive_timeout](/zh-CN/14.reference-guide-oracle-mode/2.system-variable-1/13.interactive_timeout-1.md)
在会话启动时,会根据全局 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)
......@@ -52,7 +52,7 @@ xx.xx.xx.xx
当 OBServer 启动后,如果未指定配置项,则系统会使用指定配置项的默认值。更多配置项的查看和设置操作请参见 [集群参数管理](/zh-CN/6.administrator-guide/3.basic-database-management/1.oceanbase-cluster-management/7.cluster-parameter-management/1.overview-of-cluster-parameter-management.md) 章节。
当 OBServer 启动后,如果未指定配置项,则系统会使用指定配置项的默认值。更多配置项的查看和设置操作请参见 [集群参数管理](../../6.administrator-guide/3.basic-database-management/1.oceanbase-cluster-management/7.cluster-parameter-management/1.overview-of-cluster-parameter-management.md) 章节。
与系统变量对比
----------------------------
......
......@@ -13,4 +13,4 @@ trace_log_sampling_interval 用于设置定期打印跟踪日志信息的时间
当 enable_record_trace_log 设置为 false 时,由 trace_log_sampling_interval 决定打印慢查询和白名单信息的时间间隔。enable_record_trace_log 配置项相关信息请参见 [enable_record_trace_log](/zh-CN/14.reference-guide-oracle-mode/3.system-configuration-items-1/66.enable_record_trace_log-1.md)
当 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)
......@@ -21,7 +21,7 @@ workers_per_cpu_quota
* `cpu_quota_concurrency` 表示租户在每个 CPU 上活跃的工作线程数,也即并发数。`cpu_quota_concurrency` 配置项的详细信息,请参见 [cpu_quota_concurrency](/zh-CN/14.reference-guide-oracle-mode/3.system-configuration-items-1/35.cpu_quota_concurrency-1.md)
* `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)
......
......@@ -19,7 +19,7 @@ cpu_quota_concurrency 用于设置租户的每个 CPU 配额所允许的最大
* `workers_per_cpu_quota`表示租户在每个cpu上能分配的最大 worker 数
workers_per_cpu_quota 配置项详细信息,请参见 [workers_per_cpu_quota](/zh-CN/14.reference-guide-oracle-mode/3.system-configuration-items-1/209.workers_per_cpu_quota-1.md)
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 数,也即并发数
......
......@@ -13,4 +13,4 @@ freeze_trigger_percentage 用于设置触发全局冻结的租户使用内存阈
详细信息请参见 [enable_global_freeze_trigger](/zh-CN/14.reference-guide-oracle-mode/3.system-configuration-items-1/61.enable_global_freeze_trigger-1.md)
详细信息请参见 [enable_global_freeze_trigger](../../14.reference-guide-oracle-mode/3.system-configuration-items-1/61.enable_global_freeze_trigger-1.md)
......@@ -32,4 +32,4 @@ OceanBase 数据库的系统变量主要分为全局变量和 Session 变量:
本章主要介绍 OceanBase 数据库中的所有系统变量及其缺省值说明(包括参数含义、取值范围和使用说明等)。系统变量的查看和设置相关操作,请参见 [租户管理变量](t1940574.html#topic-1940574)章节。
本章主要介绍 OceanBase 数据库中的所有系统变量及其缺省值说明(包括参数含义、取值范围和使用说明等)。系统变量的查看和设置相关操作,请参见 [租户管理变量](../../6.administrator-guide/3.basic-database-management/5.tenants/9.tenant-management-variables.md)章节。
......@@ -13,4 +13,4 @@ wait_timeout 用于设置服务器关闭非交互连接之前等待活动的秒
在会话启动时,会根据全局 wait_timeout 的值或全局 interactive_timeout 的值来初始化会话 wait_timeout 的值,具体根据全局 wait_timeout 的值还是全局 interactive_timeout 的值取决于客户端类型。客户端类型由 `mysql_real_connect()` 的连接选项 CLIENT_INTERACTIVE 定义。 interactive_timeout 变量相关信息请参见 **[](gi9a68)** [interactive_timeout](/zh-CN/14.reference-guide-oracle-mode/2.system-variable-1/13.interactive_timeout-1.md)
在会话启动时,会根据全局 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)
......@@ -52,7 +52,7 @@ xx.xx.xx.xx
当 OBServer 启动后,如果未指定配置项,则系统会使用指定配置项的默认值。更多配置项的查看和设置操作请参见 [集群参数管理](/zh-CN/6.administrator-guide/3.basic-database-management/1.oceanbase-cluster-management/7.cluster-parameter-management/1.overview-of-cluster-parameter-management.md) 章节。
当 OBServer 启动后,如果未指定配置项,则系统会使用指定配置项的默认值。更多配置项的查看和设置操作请参见 [集群参数管理](../../6.administrator-guide/3.basic-database-management/1.oceanbase-cluster-management/7.cluster-parameter-management/1.overview-of-cluster-parameter-management.md) 章节。
与系统变量对比
----------------------------
......
......@@ -13,4 +13,4 @@ trace_log_sampling_interval 用于设置定期打印跟踪日志信息的时间
当 enable_record_trace_log 设置为 false 时,由 trace_log_sampling_interval 决定打印慢查询和白名单信息的时间间隔。enable_record_trace_log 配置项相关信息请参见 [enable_record_trace_log](/zh-CN/14.reference-guide-oracle-mode/3.system-configuration-items-1/66.enable_record_trace_log-1.md)
当 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)
......@@ -21,7 +21,7 @@ workers_per_cpu_quota
* `cpu_quota_concurrency` 表示租户在每个 CPU 上活跃的工作线程数,也即并发数。`cpu_quota_concurrency` 配置项的详细信息,请参见 [cpu_quota_concurrency](/zh-CN/14.reference-guide-oracle-mode/3.system-configuration-items-1/35.cpu_quota_concurrency-1.md)
* `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)
......
......@@ -19,7 +19,7 @@ cpu_quota_concurrency 用于设置租户的每个 CPU 配额所允许的最大
* `workers_per_cpu_quota`表示租户在每个cpu上能分配的最大 worker 数
workers_per_cpu_quota 配置项详细信息,请参见 [workers_per_cpu_quota](/zh-CN/14.reference-guide-oracle-mode/3.system-configuration-items-1/209.workers_per_cpu_quota-1.md)
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 数,也即并发数
......
......@@ -13,4 +13,4 @@ freeze_trigger_percentage 用于设置触发全局冻结的租户使用内存阈
详细信息请参见 [enable_global_freeze_trigger](/zh-CN/14.reference-guide-oracle-mode/3.system-configuration-items-1/61.enable_global_freeze_trigger-1.md)
详细信息请参见 [enable_global_freeze_trigger](../../14.reference-guide-oracle-mode/3.system-configuration-items-1/61.enable_global_freeze_trigger-1.md)
......@@ -5,15 +5,15 @@
快速入门指南包含以下内容:
1. [安装 OBD](/zh-CN/2.quickstart/3.use-obd-to-obtain-the-oceanbase-database.md)
1. [安装 OBD](../2.quickstart/3.use-obd-to-obtain-the-oceanbase-database.md)
2. [使用 OBD 部署 OceanBase 数据库](/zh-CN/2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
2. [使用 OBD 部署 OceanBase 数据库](../2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
3. [基本操作](/zh-CN/2.quickstart/6.basic-operations/1.database-operations.md)
3. [基本操作](../2.quickstart/6.basic-operations/1.database-operations.md)
......
......@@ -5,11 +5,11 @@
获取 OceanBase 数据库最快的方式是使用 OBD 获取,因此推荐您使用此方式体验 OceanBase 数据库。您还可以通过以下方式获取 OceanBase 数据库:
* [使用源码构建 OceanBase 数据库](/zh-CN/4.installation-and-deployment/3.get-the-oceanbase-database-by-using-source-code.md)
* [使用源码构建 OceanBase 数据库](../4.installation-and-deployment/3.get-the-oceanbase-database-by-using-source-code.md)
* [使用 RPM 包安装 OceanBase 数据库](/zh-CN/4.installation-and-deployment/2.install-the-oceanbase-database-by-using-the-rpm-package.md)
* [使用 RPM 包安装 OceanBase 数据库](../4.installation-and-deployment/2.install-the-oceanbase-database-by-using-the-rpm-package.md)
......@@ -21,13 +21,13 @@
在安装 OceanBase 数据库之前,您需要确认已下信息:
* 您的机器满足软硬件要求。详情参考 [资源准备](/zh-CN/4.installation-and-deployment/1.resource-preparation.md)
* 您的机器满足软硬件要求。详情参考 [资源准备](../4.installation-and-deployment/1.resource-preparation.md)
* 您的机器可以连接公网。
如果您的机器不能连接公网,您需要 [使用 RPM 包安装 OceanBase 数据库](/zh-CN/4.installation-and-deployment/2.install-the-oceanbase-database-by-using-the-rpm-package.md)
如果您的机器不能连接公网,您需要 [使用 RPM 包安装 OceanBase 数据库](../4.installation-and-deployment/2.install-the-oceanbase-database-by-using-the-rpm-package.md)
......@@ -64,5 +64,5 @@ source /etc/profile.d/obd.sh
后续操作
-------------------------
如果您的机器可以连接公网,在您执行了 `obd cluster deploy` 命令之后,OBD 将检查您的目标机器是否有 OceanBase 数据库安装包。如果没有安装包,OBD 将自动从 yum 源获取。详情参考 [使用 OBD 部署 OceanBase 数据库](/zh-CN/2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
如果您的机器可以连接公网,在您执行了 `obd cluster deploy` 命令之后,OBD 将检查您的目标机器是否有 OceanBase 数据库安装包。如果没有安装包,OBD 将自动从 yum 源获取。详情参考 [使用 OBD 部署 OceanBase 数据库](../2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
......@@ -24,7 +24,7 @@
在连接 OceanBase 数据库之前,请您确认以下信息:
* 您已经在中控机器安装了 OBD。详细信息,参考 [安装 OBD](/zh-CN/2.quickstart/3.use-obd-to-obtain-the-oceanbase-database.md)
* 您已经在中控机器安装了 OBD。详细信息,参考 [安装 OBD](../2.quickstart/3.use-obd-to-obtain-the-oceanbase-database.md)
......
......@@ -231,7 +231,7 @@ grep -F "[32075]" observer.log
内部表
------------------------
OceanBase 数据库的内部表比较多,本节仅介绍部分常见的通用表,其他类型的内部表(例如集群管控、性能视图、迁移复制、合并转储等)参考 [系统视图](/zh-CN/13.reference-guide/1.system-view/1.overview-4.md)
OceanBase 数据库的内部表比较多,本节仅介绍部分常见的通用表,其他类型的内部表(例如集群管控、性能视图、迁移复制、合并转储等)参考 [系统视图](../13.reference-guide/1.system-view/1.overview-4.md)
本文中的内部表默认是 root 用户在 sys 租户的 OceanBase 数据库中可见的表(连接串示例:`obclient -u root@sys -D oceanbase`),下文不再指定数据库名称。
......
......@@ -28,7 +28,7 @@
更多 `CREATE DATABASE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [CREATE DATABASE](/zh-CN/10.sql-reference/5.sql-statement/11.create-database.md)章节。
更多 `CREATE DATABASE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [CREATE DATABASE](../../10.sql-reference/5.sql-statement/11.create-database.md)章节。
......@@ -66,7 +66,7 @@ obclient> ALTER DATABASE test2 READ WRITE;
更多 `ALTER DATABASE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [ALTER DATABASE](/zh-CN/10.sql-reference/5.sql-statement/2.alter-database.md)章节。
更多 `ALTER DATABASE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [ALTER DATABASE](../../10.sql-reference/5.sql-statement/2.alter-database.md)章节。
删除数据库
--------------------------
......@@ -81,4 +81,4 @@ obclient> DROP DATABASE my_db;
更多 `DROP DATABASE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [DROP DATABASE](/zh-CN/10.sql-reference/5.sql-statement/24.drop-database.md)章节。
更多 `DROP DATABASE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [DROP DATABASE](../../10.sql-reference/5.sql-statement/24.drop-database.md)章节。
......@@ -16,7 +16,7 @@ obclient> CREATE TABLE test (c1 int primary key, c2 VARCHAR(3));
更多 `CREATE TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [CREATE TABLE](/zh-CN/10.sql-reference/5.sql-statement/18.create-table.md)章节。
更多 `CREATE TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [CREATE TABLE](../../10.sql-reference/5.sql-statement/18.create-table.md)章节。
查看表
------------------------
......@@ -162,7 +162,7 @@ obclient> SHOW TABLES FROM my_db;
更多 `ALTER TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [ALTER TABLE](/zh-CN/10.sql-reference/5.sql-statement/7.alter-table.md) 章节。
更多 `ALTER TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [ALTER TABLE](../../10.sql-reference/5.sql-statement/7.alter-table.md) 章节。
删除表
------------------------
......@@ -185,4 +185,4 @@ obclient> DROP TABLE IF EXISTS test;
更多 `DROP TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [DROP TABLE](/zh-CN/10.sql-reference/5.sql-statement/30.drop-table.md)章节。
更多 `DROP TABLE` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [DROP TABLE](../../10.sql-reference/5.sql-statement/30.drop-table.md)章节。
......@@ -26,7 +26,7 @@
更多 `CREATE INDEX` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中的 [CREATE INDEX](/zh-CN/10.sql-reference/5.sql-statement/12.create-index.md)[CREATE INDEX](t1944404.html#topic-2616628)章节。
更多 `CREATE INDEX` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中的 [CREATE INDEX](../../10.sql-reference/5.sql-statement/12.create-index.md)章节。
......@@ -62,4 +62,4 @@ obclient> DROP INDEX test_index ON test;
更多 `DROP INDEX` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中的 [DROP INDEX](/zh-CN/10.sql-reference/5.sql-statement/25.drop-index.md)章节。
更多 `DROP INDEX` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中的 [DROP INDEX](../../10.sql-reference/5.sql-statement/25.drop-index.md)章节。
......@@ -54,4 +54,4 @@ Query OK, 0 rows affected (0.11 sec)
更多 `INSERT `语句相关的语法请参见《SQL 参考(MySQL 模式)》中 [INSERT](/zh-CN/10.sql-reference/5.sql-statement/41.INSERT.md)章节。
更多 `INSERT `语句相关的语法请参见《SQL 参考(MySQL 模式)》中 [INSERT](../../10.sql-reference/5.sql-statement/41.INSERT.md)章节。
......@@ -156,4 +156,4 @@ obclient> SELECT * FROM t2;
更多 `DELETE `语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [DELETE](/zh-CN/10.sql-reference/5.sql-statement/23.DELETE.md)章节。
更多 `DELETE `语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [DELETE](../../10.sql-reference/5.sql-statement/23.DELETE.md)章节。
......@@ -150,4 +150,4 @@ obclient> SELECT * FROM t2;
更多 `UPDATE` 语句相关的语法请参见《SQL 参考(MySQL 模式)》中 [UPDATE](/zh-CN/10.sql-reference/5.sql-statement/61.UPDATE.md)章节。
更多 `UPDATE` 语句相关的语法请参见《SQL 参考(MySQL 模式)》中 [UPDATE](../../10.sql-reference/5.sql-statement/61.UPDATE.md)章节。
......@@ -74,7 +74,7 @@ obclient> SELECT * FROM a;
更多 `SELECT` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [SELECT](/zh-CN/10.sql-reference/5.sql-statement/54.SELECT.md)章节。
更多 `SELECT` 语句相关的语法说明请参见《SQL 参考(MySQL 模式)》中 [SELECT](../../10.sql-reference/5.sql-statement/54.SELECT.md)章节。
......
......@@ -58,4 +58,4 @@ obclient> SELECT * FROM t_insert;
更多事务控制语句相关的说明请参见 [关于事务控制语句](/zh-CN/7.developer-guide-1/3.about-dml-statements-and-transactions/2.about-transactional-control-statements.md)
更多事务控制语句相关的说明请参见 [关于事务控制语句](../../7.developer-guide-1/3.about-dml-statements-and-transactions/2.about-transactional-control-statements.md)
......@@ -105,4 +105,4 @@ obclient> SELECT * FROM t_insert;
更多事务控制语句相关的说明请参见 [关于事务控制语句](/zh-CN/7.developer-guide-1/3.about-dml-statements-and-transactions/2.about-transactional-control-statements.md)
更多事务控制语句相关的说明请参见 [关于事务控制语句](../../7.developer-guide-1/3.about-dml-statements-and-transactions/2.about-transactional-control-statements.md)
......@@ -16,7 +16,7 @@ obclient> CREATE TABLE test (c1 int primary key, c2 VARCHAR(3)) REPLICA_NUM = 3,
更多 `CREATE TABLE` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [CREATE TABLE](/zh-CN/11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/14.create-table-1.md)章节。
更多 `CREATE TABLE` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [CREATE TABLE](../../11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/14.create-table-1.md)章节。
修改表
------------------------
......@@ -143,7 +143,7 @@ obclient> CREATE TABLE test (c1 int primary key, c2 VARCHAR(3)) REPLICA_NUM = 3,
更多 `ALTER TABLE` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [ALTER TABLE](/zh-CN/11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/5.alter-table-1.md)章节。
更多 `ALTER TABLE` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [ALTER TABLE](../../11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/5.alter-table-1.md)章节。
删除表
------------------------
......@@ -159,4 +159,4 @@ Query OK, 0 rows affected (0.04 sec)
更多 `DROP TABLE` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [DROP TABLE](/zh-CN/11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/24.drop-table-1.md)章节。
更多 `DROP TABLE` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [DROP TABLE](../../11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/24.drop-table-1.md)章节。
......@@ -29,7 +29,7 @@
更多 `CREATE INDEX` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [CREATE INDEX](/zh-CN/11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/8.create-index-1.md)章节。
更多 `CREATE INDEX` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [CREATE INDEX](../../11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/8.create-index-1.md)章节。
查看索引
-------------------------
......@@ -73,4 +73,4 @@ obclient> DROP INDEX test_index;
更多 `DROP INDEX` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [DROP INDEX](/zh-CN/11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/19.drop-index-1.md)章节。
更多 `DROP INDEX` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [DROP INDEX](../../11.sql-reference-oracle-mode/9.sql-statement-1/1.DDL-1/19.drop-index-1.md)章节。
......@@ -76,4 +76,4 @@ Empty set (0.02 sec)
更多 `INSERT` 语句相关的语法请参见《SQL 参考(Oracle 模式)》中 [INSERT](/zh-CN/11.sql-reference-oracle-mode/9.sql-statement-1/2.DML/2.INSERT-1.md)章节。
更多 `INSERT` 语句相关的语法请参见《SQL 参考(Oracle 模式)》中 [INSERT](../../11.sql-reference-oracle-mode/9.sql-statement-1/2.DML/2.INSERT-1.md)章节。
......@@ -51,4 +51,4 @@ obclient> SELECT * FROM t1;
更多 `DELETE` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [DELETE](/zh-CN/11.sql-reference-oracle-mode/9.sql-statement-1/2.DML/1.DELETE-1.md)章节。
更多 `DELETE` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [DELETE](../../11.sql-reference-oracle-mode/9.sql-statement-1/2.DML/1.DELETE-1.md)章节。
......@@ -71,4 +71,4 @@
更多 `UPDATE` 语句相关的语法请参见《SQL 参考(Oracle 模式)》中 [UPDATE](/zh-CN/11.sql-reference-oracle-mode/9.sql-statement-1/2.DML/8.UPDATE-1.md)章节。
更多 `UPDATE` 语句相关的语法请参见《SQL 参考(Oracle 模式)》中 [UPDATE](../../11.sql-reference-oracle-mode/9.sql-statement-1/2.DML/8.UPDATE-1.md)章节。
......@@ -77,4 +77,4 @@ obclient> SELECT * FROM a;
更多 `SELECT` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [SELECT](/zh-CN/11.sql-reference-oracle-mode/9.sql-statement-1/2.DML/7.SELECT-1.md)章节。
更多 `SELECT` 语句相关的语法说明请参见《SQL 参考(Oracle 模式)》中 [SELECT](../../11.sql-reference-oracle-mode/9.sql-statement-1/2.DML/7.SELECT-1.md)章节。
......@@ -58,4 +58,4 @@ obclient> SELECT * FROM t_insert;
更多事务控制语句相关的说明请参见 [关于事务控制语句](/zh-CN/8.developer-guide-oracle-mode/3.about-dml-statements-and-transactions-1/2.about-transactional-control-statements-1.md)
更多事务控制语句相关的说明请参见 [关于事务控制语句](../../8.developer-guide-oracle-mode/3.about-dml-statements-and-transactions-1/2.about-transactional-control-statements-1.md)
......@@ -103,4 +103,4 @@ obclient> SELECT * FROM t_insert;
更多事务控制语句相关的说明请参见 [关于事务控制语句](/zh-CN/8.developer-guide-oracle-mode/3.about-dml-statements-and-transactions-1/2.about-transactional-control-statements-1.md)
更多事务控制语句相关的说明请参见 [关于事务控制语句](../../8.developer-guide-oracle-mode/3.about-dml-statements-and-transactions-1/2.about-transactional-control-statements-1.md)
......@@ -51,7 +51,7 @@ TPC-H 基准测试由 TPC-D(由 TPC 于 1994 年制定的标准,用于决策
* OceanBase 数据库:详细信息,参考 [快速入门指南](/zh-CN/2.quickstart/1.quick-start-guide-1.md)
* OceanBase 数据库:详细信息,参考 [快速入门指南](../2.quickstart/1.quick-start-guide-1.md)
......@@ -66,7 +66,7 @@ TPC-H 基准测试由 TPC-D(由 TPC 于 1994 年制定的标准,用于决策
OceanBase 集群规模为 1:1:1。
2. 部署成功后,新建执行 TPC-H 测试的租户及用户(请勿直接使用 sys 租户进行测试)。将租户的 `primary_zone` 设置为 `RANDOM`。租户详情,参考 [创建用户租户。](/zh-CN/6.administrator-guide/3.basic-database-management/5.tenants/2.create-a-user-tenant.md)
2. 部署成功后,新建执行 TPC-H 测试的租户及用户(请勿直接使用 sys 租户进行测试)。将租户的 `primary_zone` 设置为 `RANDOM`。租户详情,参考 [创建用户租户。](../6.administrator-guide/3.basic-database-management/5.tenants/2.create-a-user-tenant.md)
`RANDOM` 表示新建表分区的 Leader 随机到这 3 台机器。
......
......@@ -58,7 +58,7 @@ OceanBase TPC-H 性能测试报告
* 测试步骤详见 [OceanBase 数据库 TPC-H 测试](/zh-CN/3.performance-white-paper/1.tpch-test-for-oceanbase.md)
* 测试步骤详见 [OceanBase 数据库 TPC-H 测试](../3.performance-white-paper/1.tpch-test-for-oceanbase.md)
......
......@@ -78,7 +78,7 @@ Sysbench 是一个基于 LuaJIT 的可编写脚本的多线程基准测试工具
* OceanBase 数据库:建议单独部署 ODP。详细信息,参考 [使用 OBD 部署 OceanBase 数据库](/zh-CN/2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
* OceanBase 数据库:建议单独部署 ODP。详细信息,参考 [使用 OBD 部署 OceanBase 数据库](../2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
......@@ -88,7 +88,7 @@ Sysbench 是一个基于 LuaJIT 的可编写脚本的多线程基准测试工具
测试方案
-------------------------
1. 通过 OBD 部署 oceanbase集群,ODP 和 Sysbench 单独部署在一台机器上, 作为客户端的压力机器。OceanBase 集群规模为1:1:1,部署成功后先新建跑Sysbench测试的租户及用户(sys租户是管理集群的内置系统租户,请勿直接使用sys租户进行测试),设置租户的primary_zone为RANDOM,RANDOM表示新建表分区的leader随机到这3台机器。租户详情,参考 [创建用户租户。](/zh-CN/6.administrator-guide/3.basic-database-management/5.tenants/2.create-a-user-tenant.md)
1. 通过 OBD 部署 oceanbase集群,ODP 和 Sysbench 单独部署在一台机器上, 作为客户端的压力机器。OceanBase 集群规模为1:1:1,部署成功后先新建跑Sysbench测试的租户及用户(sys租户是管理集群的内置系统租户,请勿直接使用sys租户进行测试),设置租户的primary_zone为RANDOM,RANDOM表示新建表分区的leader随机到这3台机器。租户详情,参考 [创建用户租户。](../6.administrator-guide/3.basic-database-management/5.tenants/2.create-a-user-tenant.md)
......
......@@ -31,7 +31,7 @@ TPC-C 是一个对 OLTP(联机交易处理)系统进行测试的规范,使
* OceanBase 数据库:建议单独部署 ODP。详细信息,参考 [使用 OBD 部署 OceanBase 数据库](/zh-CN/2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
* OceanBase 数据库:建议单独部署 ODP。详细信息,参考 [使用 OBD 部署 OceanBase 数据库](../2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
......@@ -45,7 +45,7 @@ TPC-C 是一个对 OLTP(联机交易处理)系统进行测试的规范,使
* OceanBase 集群规模为 1:1:1。部署成功后,新建执行 TPC-C 测试的租户及用户(sys租户是管理集群的内置系统租户,请勿直接使用 sys 租户进行测试)。将租户的 `primary_zone` 设置为 `RANDOM``RANDOM` 表示新建表分区的 Leader 随机到这 3 台机器。租户详情,参考 [创建用户租户。](/zh-CN/6.administrator-guide/3.basic-database-management/5.tenants/2.create-a-user-tenant.md)
* OceanBase 集群规模为 1:1:1。部署成功后,新建执行 TPC-C 测试的租户及用户(sys租户是管理集群的内置系统租户,请勿直接使用 sys 租户进行测试)。将租户的 `primary_zone` 设置为 `RANDOM``RANDOM` 表示新建表分区的 Leader 随机到这 3 台机器。租户详情,参考 [创建用户租户。](../6.administrator-guide/3.basic-database-management/5.tenants/2.create-a-user-tenant.md)
......
......@@ -8,7 +8,7 @@
在安装 OceanBase 数据库之前,您需要确认已下信息:
* 您的机器满足软硬件要求。详细信息,参考 [资源准备](/zh-CN/4.installation-and-deployment/1.resource-preparation.md)
* 您的机器满足软硬件要求。详细信息,参考 [资源准备](../4.installation-and-deployment/1.resource-preparation.md)
......@@ -82,4 +82,4 @@ obd mirror clone obproxy-3.1.0-1.el7.x86_64.rpm
后续操作
-------------------------
OceanBase 数据库安装完成后,您需要部署 OceanBase 数据库。详情参考 [使用 OBD 部署 OceanBase 数据库](/zh-CN/2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
OceanBase 数据库安装完成后,您需要部署 OceanBase 数据库。详情参考 [使用 OBD 部署 OceanBase 数据库](../2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
......@@ -209,7 +209,7 @@ OceanBase 数据库使用 CMake 作为构建工具,您可以直接使用 CMake
后续操作
-------------------------
您在成功构建 OceanBase 数据库之后,可以使用 OBD 部署 OceanBase 数据库。详细信息参考 [使用 OBD 部署 OceanBase 数据库](/zh-CN/2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
您在成功构建 OceanBase 数据库之后,可以使用 OBD 部署 OceanBase 数据库。详细信息参考 [使用 OBD 部署 OceanBase 数据库](../2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
......
......@@ -5,7 +5,7 @@
不同方式的联接算法为 SQL 调优提供了更多的选择,可以使得 SQL 调优时能够根据表的数据特性选择合适的联接算法,从而让多表联接组合起来变得更加高效。
联接语句在数据库中由联接算法实现,主要的联接算法有 Nested Loop Join、Hash Join 和 Merge Join。由于三种算法在不同的场景下各有优劣,优化器会自主选择最佳联接算法。关于各算法的原理,请参见 [联接算法](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/2.join-algorithm-6.md)
联接语句在数据库中由联接算法实现,主要的联接算法有 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 机制进行控制,以方便用户根据自身的实际需求去选择何种联接顺序及联接算法以进行多表联接。
......@@ -224,7 +224,7 @@ Nested Loop Join 还有以下两种实现的算法:
`outputs & filters` 的输出结果中 `nl_param` 出现参数 `[t2.c1]`,说明执行了条件下压优化。详细信息请参考 [JOIN](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/3.JOIN-1-2.md)
`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。
......
......@@ -103,12 +103,12 @@ Outputs & filters:
Q2 查询的执行计划展示中,虽然 SQL 中含有 `LIMIT`,但是并未分配 `LIMIT` 算子,而是将相关表达式下压到了 `TABLE SCAN` 算子上,这种下压 `LIMIT` 行为是 SQL 优化器的一种优化方式,详细信息请参见 [TABLE SCAN](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/1.table-scan-2.md)
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](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/4.COUNT-1-2-3-4.md)
由于 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 场景
------------------------------------------------
......
......@@ -44,7 +44,7 @@ Outputs & filters:
目前 `LIMIT` 算子只支持 MySQL 模式的 SQL 场景。详细信息请参考 [LIMIT](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/12.LIMIT-1-2.md)
目前 `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` 算子的输出信息如下:
......
......@@ -195,7 +195,7 @@ Outputs & filters:
其中,`PX PARTITION ITERATO` 算子用于按照分区粒度迭代数据,详细信息请参见 [GI](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/24.GI-1-2.md)
其中,`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)` 算子的输出信息如下:
......
......@@ -64,7 +64,7 @@ Outputs & filters:
其中,`MATERIAL` 算子用于物化下层算子输出的数据,详细信息请参见 [MATERIAL](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/10.MATERIAL-1-2.md)
其中,`MATERIAL` 算子用于物化下层算子输出的数据,详细信息请参见 [MATERIAL](../../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/10.MATERIAL-1-2.md)
```javascript
Q2:
......
......@@ -91,4 +91,4 @@ Outputs & filters:
从上述执行计划示例的输出结果可以发现,虽然 SQL 中含有 `ROWNUM`,但是经过 SQL 优化器改写之后,已经将涉及含有 `ROWNUM` 的表达式转换为了等价的 `LIMIT` 表达式,转换的好处在于可以做更多的优化,详细信息请参见 [LIMIT](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/12.LIMIT-1-2.md)
从上述执行计划示例的输出结果可以发现,虽然 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)
......@@ -196,4 +196,4 @@ obclient>ALTER SYSTEM FLUSH PLAN CACHE [tenant_list] [global]
有关视图的详细参数信息,请参考 [计划缓存相关视图](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md)
有关视图的详细参数信息,请参考 [计划缓存相关视图](../../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md)
......@@ -331,4 +331,4 @@ 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 介绍](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/1.g-v-sql_audit-introduction.md)
详细信息请参考 [(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)
......@@ -44,7 +44,7 @@ Outputs & filters:
目前 LIMIT 算子只支持 MySQL 模式的 SQL 场景。详细信息请参考 [LIMIT](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/12.LIMIT-1-2.md)
目前 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 算子的输出信息如下:
......
......@@ -195,7 +195,7 @@ Outputs & filters:
其中,PX PARTITION ITERATO 算子用于按照分区粒度迭代数据,详细信息请参见 [GI](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/24.GI-1-2.md)
其中,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) 算子的输出信息如下:
......
......@@ -64,7 +64,7 @@ Outputs & filters:
其中,MATERIAL 算子用于物化下层算子输出的数据,详细信息请参见 [MATERIAL](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/10.MATERIAL-1-2.md)
其中,MATERIAL 算子用于物化下层算子输出的数据,详细信息请参见 [MATERIAL](../../../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/10.MATERIAL-1-2.md)
```javascript
Q2:
......
......@@ -91,4 +91,4 @@ Outputs & filters:
从上述执行计划示例的输出结果可以发现,虽然 SQL 中含有 ROWNUM,但是经过 SQL 优化器改写之后,已经将涉及含有 ROWNUM 的表达式转换为了等价的 LIMIT 表达式,转换的好处在于可以做更多的优化,详细信息请参见 [LIMIT](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/2.execution-plan-operator-2/12.LIMIT-1-2.md)
从上述执行计划示例的输出结果可以发现,虽然 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)
......@@ -196,4 +196,4 @@ obclient>ALTER SYSTEM FLUSH PLAN CACHE [tenant_list] [global]
有关视图的详细参数信息,请参考 [计划缓存相关视图](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md)
有关视图的详细参数信息,请参考 [计划缓存相关视图](../../../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md)
......@@ -331,4 +331,4 @@ 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 介绍](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/1.g-v-sql_audit-introduction.md)
详细信息请参考 [(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)
......@@ -5,13 +5,13 @@ SQL 调优基本流程
在 SQL 调优中,针对慢 SQL 的分析步骤如下:
1. 通过全局 SQL 审计表 (g)v$sql_audit、 SQL Trace 和计划缓存视图查看 SQL 执行信息,初步查找 SQL 请求的流程中导致耗时或消耗资源(如内存、磁盘 IO 等)的 SQL。请参见示例 [查询某段时间内执行时间排名 TOP N 的请求](/zh-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)
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 生成的逻辑执行计划,确定可能的调优方向。请参见示例 [查看执行计划形状并做分析](/zh-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)
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 执行计划简介](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/1.introduction-to-sql-execution-plans-2.md)
关于执行计划的详细信息请参考 [SQL 执行计划简介](../../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/1.introduction-to-sql-execution-plans-2.md)
3. 找到具体的慢 SQL,为了使某些 SQL 的执行时间或资源消耗符合预期,常见的优化方式如下:
......
......@@ -5,11 +5,11 @@
根据如下步骤查看执行计划形状并做分析:
1. 通过 `EXPLAIN` 命令查看执行计划形状,或者通过实时执行计划展示查看缓存执行计划。详细信息请参见 [SQL 执行计划简介](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/1.introduction-to-sql-execution-plans-2.md)[实时执行计划展示](t1962412.html#topic-1962412)
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. 获得执行计划形状后,可以分析索引、联接顺序、 联接算法等选择是否合理正确。详细信息请参见 [访问路径](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/1.access-path-3/1.overview-16.md)[联接顺序](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/3.join-order-3.md)[联接算法](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/2.join-algorithm-6.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)
......
......@@ -7,10 +7,10 @@
* 使用 sql_audit 查看统计数据并分析该 SQL 的执行计划。详细步骤请参考示例
[分析 RT 突然抖动的 SQL](/zh-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)
[分析 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)
* 分析下执行计划是否正确。详细步骤请参考示例 [查看执行计划形状并做分析](/zh-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)
* 分析下执行计划是否正确。详细步骤请参考示例 [查看执行计划形状并做分析](../../../../../../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)
......
......@@ -7,7 +7,7 @@
不同方式的联接算法为 SQL 调优提供了更多的选择,可以使得 SQL 调优时能够根据表的数据特性选择合适的联接算法,从而让多表联接组合起来变得更加高效。
联接语句在数据中由联接算法实现,主要的联接算法有 NESTED LOOP JOIN、HASH JOIN 和 MERGE JOIN。由于三种算法在不同的场景下各有优劣,优化器会自动选择联接算法。关于各算法的原理,请参见 [联接算法](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/5.query-optimization-2/2.join-algorithm-5/2.join-algorithm-6.md)
联接语句在数据中由联接算法实现,主要的联接算法有 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 机制进行控制,以方便用户根据自身的实际需求去选择何种联接顺序及联接算法以进行多表的联接。
......@@ -147,7 +147,7 @@ USING HINT /*+ INDEX(t1 idx_c2)*/ ;
* Hint 格式为` /*+ xxx */`,关于 Hint 说明的详细信息,请参考 [Optimizer Hint。](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/1.optimizer-hint-1.md)
* Hint 格式为` /*+ xxx */`,关于 Hint 说明的详细信息,请参考 [Optimizer Hint。](../../../../../12.sql-optimization-guide-1/4.sql-optimization-1/6.manage-execution-plans-1/1.optimizer-hint-1.md)
......@@ -301,7 +301,7 @@ Query OK, 0 rows affected (0.01 sec)
确定是通过绑定的 Outline 生成的计划后,需要确定生成的计划是否符合预期,可以通过查询`gv$plan_cache_plan_stat` 表查看 `plan_cache` 中缓存的执行计划形状,具体查看方式可参考
[实时执行计划展示](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/5.real-time-execution-plan-display-3.md)
[实时执行计划展示](../../../../../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
......
......@@ -39,4 +39,4 @@ SQL 是一种"描述型"语言。与"过程型"语言不同,用户在使用 SQ
执行计划的生成过程非常复杂,优化器需要综合考虑多种因素,为 SQL 生成"最佳"的执行计划。因此,查询优化的过程本身也是一个比较耗时的过程,当 SQL 本身执行耗时较短时,查询优化所带来的开销也变得不可忽略。一般来说,数据库在这种场景会缓存之前生成的执行计划,以便在下次执行该 SQL 时直接使用,这种策略被称为"optimize once",即"一次优化"。实际场景中,"一次优化"的策略虽然可以大大降低每次执行时优化的开销,但也会引入一些问题。例如,当同一条 SQL 不同的参数值需要使用不同计划时,"一次优化"的策略就无法处理。针对这种场景,OceanBase 数据库 V2.0 版本引入了自适应计划共享(Adaptive Cursor Sharing)功能,能够较好地处理不同参数条件下的计划选择。
OceanBase 数据库内置有计划缓存,会将首次优化后生成的计划缓存在内存中,随后的执行会首先访问计划缓存,查找是否有可用计划,如果有,则直接使用该计划;否则将执行查询优化的过程,相关内容可以参考 [执行计划缓存](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/3.execution-plan-cache-4.md)章节。
OceanBase 数据库内置有计划缓存,会将首次优化后生成的计划缓存在内存中,随后的执行会首先访问计划缓存,查找是否有可用计划,如果有,则直接使用该计划;否则将执行查询优化的过程,相关内容可以参考 [执行计划缓存](../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/3.execution-plan-cache-4.md)章节。
......@@ -5,7 +5,7 @@
SQL 语句的优化是一个比较耗时的过程,随着 SQL 语句的复杂度增高,优化的时间也会越来越长。为了避免反复执行优化过程,生成的执行计划会加入到计划缓存中,以便再次执行该 SQL 时使用。每一个租户在每一台服务器上都有一个独立的计划缓存,用以缓存在此服务器上处理过的 SQL 计划。
在应用系统中,同一条 SQL 每次执行可能会使用不同的参数,为了减少计划缓存的大小,系统会首先将用户 SQL 的参数做参数化处理,得到与具体参数无关的 SQL 字符串,并使用该字符串作为计划缓存的键值(具体参数化过程见 [快速参数化](/zh-CN/12.sql-optimization-guide-1/2.sql-execution-plan-3/4.fast-parameterization-3.md)介绍)。
在应用系统中,同一条 SQL 每次执行可能会使用不同的参数,为了减少计划缓存的大小,系统会首先将用户 SQL 的参数做参数化处理,得到与具体参数无关的 SQL 字符串,并使用该字符串作为计划缓存的键值(具体参数化过程见 [快速参数化](../../../12.sql-optimization-guide-1/2.sql-execution-plan-3/4.fast-parameterization-3.md)介绍)。
计划缓存是一个典型的 Key-Value 结构,Key 就是参数化后的 SQL 字符串,Value 就是该条 SQL 所对应的执行计划。在 OceanBase 数据库的计划缓存中,SQL 的执行计划可以分为本地计划、远程计划和分布式计划三种类型。在计划缓存中,同一条 SQL 根据其需要访问的数据不同,可能同时具有三种执行计划。
......@@ -180,7 +180,7 @@ alter system flush plan cache [tenant_list] [global]
详细信息,请参见 [Plan Cache 相关视图](/zh-CN/12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md)
详细信息,请参见 [Plan Cache 相关视图](../../../12.sql-optimization-guide-1/4.sql-optimization-1/3.monitor-sql-execution-performance-1/3.plan-cache-view.md)
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册