From a037741c5697642cab06d33ce7a4d7603aa84b6c Mon Sep 17 00:00:00 2001 From: Roger Song Date: Mon, 9 Dec 2024 00:58:59 +0800 Subject: [PATCH 1/2] recommend RC instead of SQL Priority --- faq/sql-faq.md | 4 +++- sql-statements/sql-statement-insert.md | 4 ++++ sql-statements/sql-statement-replace.md | 4 ++++ sql-statements/sql-statement-select.md | 4 ++++ sql-statements/sql-statement-update.md | 4 ++++ 5 files changed, 19 insertions(+), 1 deletion(-) diff --git a/faq/sql-faq.md b/faq/sql-faq.md index dbbbcd596096..3bd3ab5c0496 100644 --- a/faq/sql-faq.md +++ b/faq/sql-faq.md @@ -33,7 +33,9 @@ TiDB 包含一个基于成本的优化器。在大多数情况下,优化器会 ## 如何阻止特定的 SQL 语句执行(或者将某个 SQL 语句加入黑名单)? -你可以使用 [`MAX_EXECUTION_TIME`](/optimizer-hints.md#max_execution_timen) Hint 来创建 [SQL 绑定](/sql-plan-management.md#执行计划绑定-sql-binding),将特定语句的执行时间限制为一个较小的值(例如 1ms)。这样,语句就会在超过限制时自动终止。 +v7.5 及以上版本,利用命令 [`QUERY WATCH`](/sql-statements/sql-statement-query-watch.md) 可以将特定查询加入黑名单。具体用法参见 [Runaway Queries 资源管理](/tidb-resource-control.md#query-watch-语句说明)。 + +低于 v7.5 的版本,可以使用 [`MAX_EXECUTION_TIME`](/optimizer-hints.md#max_execution_timen) Hint 来创建 [SQL 绑定](/sql-plan-management.md#执行计划绑定-sql-binding),将特定语句的执行时间限制为一个较小的值(例如 1ms)。这样,语句就会在超过限制时自动终止。 例如,要阻止执行 `SELECT * FROM t1, t2 WHERE t1.id = t2.id`,可以使用以下 SQL 绑定将语句的执行时间限制为 1ms: diff --git a/sql-statements/sql-statement-insert.md b/sql-statements/sql-statement-insert.md index 63d19a87b05a..3be81155cb9f 100644 --- a/sql-statements/sql-statement-insert.md +++ b/sql-statements/sql-statement-insert.md @@ -42,6 +42,10 @@ OnDuplicateKeyUpdate ::= ( 'ON' 'DUPLICATE' 'KEY' 'UPDATE' AssignmentList )? ``` +> **注意:** +> +> TiDB 从 v6.6.0 版本开始支持[使用资源管控 (Resource Control) 实现资源隔离](/tidb-resource-control.md)功能。该功能可以将不同优先级的语句放在不同的资源组中执行,并为这些资源组分配不同的配额和优先级,可以达到更好的资源管控效果。在开启资源管控功能后,语句的调度主要受资源组的控制,`PriorityOpt` 将不再生效。建议在支持资源管控的版本优先使用资源管控功能。 + ## 示例 {{< copyable "sql" >}} diff --git a/sql-statements/sql-statement-replace.md b/sql-statements/sql-statement-replace.md index 9ff4c15b0921..0de3bdaeeb0d 100644 --- a/sql-statements/sql-statement-replace.md +++ b/sql-statements/sql-statement-replace.md @@ -35,6 +35,10 @@ InsertValues ::= ``` +> **注意:** +> +> TiDB 从 v6.6.0 版本开始支持[使用资源管控 (Resource Control) 实现资源隔离](/tidb-resource-control.md)功能。该功能可以将不同优先级的语句放在不同的资源组中执行,并为这些资源组分配不同的配额和优先级,可以达到更好的资源管控效果。在开启资源管控功能后,语句的调度主要受资源组的控制,`PriorityOpt` 将不再生效。建议在支持资源管控的版本优先使用资源管控功能。 + ## 示例 {{< copyable "sql" >}} diff --git a/sql-statements/sql-statement-select.md b/sql-statements/sql-statement-select.md index 4502a6dfbf25..747e7b638623 100644 --- a/sql-statements/sql-statement-select.md +++ b/sql-statements/sql-statement-select.md @@ -105,6 +105,10 @@ TableSample ::= |`LOCK IN SHARE MODE` | TiDB 出于兼容性解析这个语法,但是不做任何处理| |`TABLESAMPLE`| 从表中获取一些行的样本数据。| +> **注意:** +> +> TiDB 从 v6.6.0 版本开始支持[使用资源管控 (Resource Control) 实现资源隔离](/tidb-resource-control.md)功能。该功能可以将不同优先级的语句放在不同的资源组中执行,并为这些资源组分配不同的配额和优先级,可以达到更好的资源管控效果。在开启资源管控功能后,语句的调度主要受资源组的控制,`HIGH_PRIORITY` 将不再生效。建议在支持资源管控的版本优先使用资源管控功能。 + ## 示例 ### SELECT diff --git a/sql-statements/sql-statement-update.md b/sql-statements/sql-statement-update.md index ab594b4dd610..79801ee53291 100644 --- a/sql-statements/sql-statement-update.md +++ b/sql-statements/sql-statement-update.md @@ -27,6 +27,10 @@ TableRefs ::= EscapedTableRef ("," EscapedTableRef)* ``` +> **注意:** +> +> TiDB 从 v6.6.0 版本开始支持[使用资源管控 (Resource Control) 实现资源隔离](/tidb-resource-control.md)功能。该功能可以将不同优先级的语句放在不同的资源组中执行,并为这些资源组分配不同的配额和优先级,可以达到更好的资源管控效果。在开启资源管控功能后,语句的调度主要受资源组的控制,`LOW_PRIORITY` 或 `HIGH_PRIORITY` 将不再生效。建议在支持资源管控的版本优先使用资源管控功能。 + ## 示例 {{< copyable "sql" >}} From 9bf3c2ed4a791a5e30dc8f5488f3e99baaf7af2c Mon Sep 17 00:00:00 2001 From: Roger Song Date: Mon, 9 Dec 2024 16:10:14 +0800 Subject: [PATCH 2/2] Update faq/sql-faq.md Co-authored-by: Aolin --- faq/sql-faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/faq/sql-faq.md b/faq/sql-faq.md index 3bd3ab5c0496..bc30e62cf995 100644 --- a/faq/sql-faq.md +++ b/faq/sql-faq.md @@ -33,9 +33,9 @@ TiDB 包含一个基于成本的优化器。在大多数情况下,优化器会 ## 如何阻止特定的 SQL 语句执行(或者将某个 SQL 语句加入黑名单)? -v7.5 及以上版本,利用命令 [`QUERY WATCH`](/sql-statements/sql-statement-query-watch.md) 可以将特定查询加入黑名单。具体用法参见 [Runaway Queries 资源管理](/tidb-resource-control.md#query-watch-语句说明)。 +对于 v7.5.0 及以上版本,你可以使用 [`QUERY WATCH`](/sql-statements/sql-statement-query-watch.md) 语句将特定的 SQL 查询加入黑名单。具体使用方法参见[管理资源消耗超出预期的查询 (Runaway Queries)](/tidb-resource-control.md#query-watch-语句说明)。 -低于 v7.5 的版本,可以使用 [`MAX_EXECUTION_TIME`](/optimizer-hints.md#max_execution_timen) Hint 来创建 [SQL 绑定](/sql-plan-management.md#执行计划绑定-sql-binding),将特定语句的执行时间限制为一个较小的值(例如 1ms)。这样,语句就会在超过限制时自动终止。 +对于 v7.5.0 之前版本,你可以使用 [`MAX_EXECUTION_TIME`](/optimizer-hints.md#max_execution_timen) Hint 来创建 [SQL 绑定](/sql-plan-management.md#执行计划绑定-sql-binding),将特定语句的执行时间限制为一个较小的值(例如 1ms)。这样,语句就会在超过限制时自动终止。 例如,要阻止执行 `SELECT * FROM t1, t2 WHERE t1.id = t2.id`,可以使用以下 SQL 绑定将语句的执行时间限制为 1ms: