From e4eb1610a4dbf7195608e80b0ee8f29c3a4a32e4 Mon Sep 17 00:00:00 2001 From: Reminiscent Date: Tue, 13 Sep 2022 13:55:05 +0800 Subject: [PATCH 1/4] doc: update the doc for hash_join_build and hash_join_probe hints --- optimizer-hints.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/optimizer-hints.md b/optimizer-hints.md index 8c0683e07962..94d3cbc42886 100644 --- a/optimizer-hints.md +++ b/optimizer-hints.md @@ -125,6 +125,26 @@ SELECT /*+ HASH_JOIN(t1, t2) */ * FROM t1, t2 WHERE t1.id = t2.id; > > `HASH_JOIN` 的别名是 `TIDB_HJ`,在 3.0.x 及之前版本仅支持使用该别名;之后的版本同时支持使用这两种名称,推荐使用 `HASH_JOIN`。 +### HASH_JOIN_BUILD(t1_name [, tl_name ...]) + +`HASH_JOIN_BUILD(t1_name [, tl_name ...])` 提示优化器对指定表使用 Hash Join 算法,同时将指定表作为 Hash Join 算法的 Build 端,即用指定表来构建哈希表。例如: + +{{< copyable "sql" >}} + +```sql +SELECT /*+ HASH_JOIN_BUILD(t1) */ * FROM t1, t2 WHERE t1.id = t2.id; +``` + +### HASH_JOIN_PROBE(t1_name [, tl_name ...]) + +`HASH_JOIN_PROBE(t1_name [, tl_name ...])` 提示优化器对指定表使用 Hash Join 算法,同时将指定表作为 Hash Join 算法的 Probe 端,即用指定表作为探测端来执行 Hash Join 算法。例如: + +{{< copyable "sql" >}} + +```sql +SELECT /*+ HASH_JOIN_PROBE(t2) */ * FROM t1, t2 WHERE t1.id = t2.id; +``` + ### SEMI_JOIN_REWRITE() `SEMI_JOIN_REWRITE()` 提示优化器将查询语句中的半连接 (Semi Join) 改写为普通的内连接。目前该 Hint 只作用于 `EXISTS` 子查询。 From a297757c6b92da7cbac090e62a50acbba44255ab Mon Sep 17 00:00:00 2001 From: Yuanjia Zhang Date: Thu, 15 Sep 2022 10:36:45 +0800 Subject: [PATCH 2/4] Update optimizer-hints.md Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> --- optimizer-hints.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/optimizer-hints.md b/optimizer-hints.md index 94d3cbc42886..bdd9328a0567 100644 --- a/optimizer-hints.md +++ b/optimizer-hints.md @@ -129,8 +129,6 @@ SELECT /*+ HASH_JOIN(t1, t2) */ * FROM t1, t2 WHERE t1.id = t2.id; `HASH_JOIN_BUILD(t1_name [, tl_name ...])` 提示优化器对指定表使用 Hash Join 算法,同时将指定表作为 Hash Join 算法的 Build 端,即用指定表来构建哈希表。例如: -{{< copyable "sql" >}} - ```sql SELECT /*+ HASH_JOIN_BUILD(t1) */ * FROM t1, t2 WHERE t1.id = t2.id; ``` From ac01c60b19249073344d1d05903dde8f025231ce Mon Sep 17 00:00:00 2001 From: Yuanjia Zhang Date: Thu, 15 Sep 2022 10:36:59 +0800 Subject: [PATCH 3/4] Update optimizer-hints.md Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> --- optimizer-hints.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optimizer-hints.md b/optimizer-hints.md index bdd9328a0567..33ead28c0308 100644 --- a/optimizer-hints.md +++ b/optimizer-hints.md @@ -135,7 +135,7 @@ SELECT /*+ HASH_JOIN_BUILD(t1) */ * FROM t1, t2 WHERE t1.id = t2.id; ### HASH_JOIN_PROBE(t1_name [, tl_name ...]) -`HASH_JOIN_PROBE(t1_name [, tl_name ...])` 提示优化器对指定表使用 Hash Join 算法,同时将指定表作为 Hash Join 算法的 Probe 端,即用指定表作为探测端来执行 Hash Join 算法。例如: +`HASH_JOIN_PROBE(t1_name [, tl_name ...])` 提示优化器对指定表使用 Hash Join 算法,同时将指定表作为 Hash Join 算法的探测(Probe)端,即用指定表作为探测端来执行 Hash Join 算法。例如: {{< copyable "sql" >}} From b67db623b14b0394bbea5c9606fd632b10e8d441 Mon Sep 17 00:00:00 2001 From: Yuanjia Zhang Date: Thu, 15 Sep 2022 10:37:04 +0800 Subject: [PATCH 4/4] Update optimizer-hints.md Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> --- optimizer-hints.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/optimizer-hints.md b/optimizer-hints.md index 33ead28c0308..ff709917b105 100644 --- a/optimizer-hints.md +++ b/optimizer-hints.md @@ -137,8 +137,6 @@ SELECT /*+ HASH_JOIN_BUILD(t1) */ * FROM t1, t2 WHERE t1.id = t2.id; `HASH_JOIN_PROBE(t1_name [, tl_name ...])` 提示优化器对指定表使用 Hash Join 算法,同时将指定表作为 Hash Join 算法的探测(Probe)端,即用指定表作为探测端来执行 Hash Join 算法。例如: -{{< copyable "sql" >}} - ```sql SELECT /*+ HASH_JOIN_PROBE(t2) */ * FROM t1, t2 WHERE t1.id = t2.id; ```