From fa3fe331ae68e2f9ddc6044f593ce2f01d541f06 Mon Sep 17 00:00:00 2001 From: Ti Chi Robot Date: Mon, 9 Dec 2024 16:38:06 +0800 Subject: [PATCH] Recommend RC instead of SQL Priority (#19227) (#19246) --- 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 65e542d21f1b..18a578cbb7a6 100644 --- a/faq/sql-faq.md +++ b/faq/sql-faq.md @@ -32,7 +32,9 @@ TiDB 包含一个基于成本的优化器。在大多数情况下,优化器会 ## 如何阻止特定的 SQL 语句执行(或者将某个 SQL 语句加入黑名单)? -你可以使用 [`MAX_EXECUTION_TIME`](/optimizer-hints.md#max_execution_timen) Hint 来创建 [SQL 绑定](/sql-plan-management.md#执行计划绑定-sql-binding),将特定语句的执行时间限制为一个较小的值(例如 1ms)。这样,语句就会在超过限制时自动终止。 +对于 v7.5.0 及以上版本,你可以使用 [`QUERY WATCH`](/sql-statements/sql-statement-query-watch.md) 语句将特定的 SQL 查询加入黑名单。具体使用方法参见[管理资源消耗超出预期的查询 (Runaway Queries)](/tidb-resource-control.md#query-watch-语句说明)。 + +对于 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: diff --git a/sql-statements/sql-statement-insert.md b/sql-statements/sql-statement-insert.md index d088fa3b25a5..885826274f4a 100644 --- a/sql-statements/sql-statement-insert.md +++ b/sql-statements/sql-statement-insert.md @@ -41,6 +41,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 5782b4938f6a..1dda14c5d320 100644 --- a/sql-statements/sql-statement-replace.md +++ b/sql-statements/sql-statement-replace.md @@ -34,6 +34,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 f86f83011ecf..299abcbf1fdc 100644 --- a/sql-statements/sql-statement-select.md +++ b/sql-statements/sql-statement-select.md @@ -75,6 +75,10 @@ TableSampleOpt ::= |`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 9dfb8003aad0..92e29748ab87 100644 --- a/sql-statements/sql-statement-update.md +++ b/sql-statements/sql-statement-update.md @@ -26,6 +26,10 @@ TableRefs ::= EscapedTableRef ("," EscapedTableRef)* ``` +> **注意:** +> +> TiDB 从 v6.6.0 版本开始支持[使用资源管控 (Resource Control) 实现资源隔离](/tidb-resource-control.md)功能。该功能可以将不同优先级的语句放在不同的资源组中执行,并为这些资源组分配不同的配额和优先级,可以达到更好的资源管控效果。在开启资源管控功能后,语句的调度主要受资源组的控制,`LOW_PRIORITY` 或 `HIGH_PRIORITY` 将不再生效。建议在支持资源管控的版本优先使用资源管控功能。 + ## 示例 {{< copyable "sql" >}}