Files
oceanbase/docs/docs-cn/7.developer-guide-1/6.appendix/3.common-sql-hints-for-oceanbase.md
2022-02-10 14:51:49 +08:00

3.3 KiB

OceanBase 常用 SQL Hints

SQL Hint的语法格式如下:

/*+ HINT_NAME */

/*+ HINT_NAME ( HINT_PARA )

如果是在命令行客户端 obclient 或 mysql 下连接 OceanBase,注意需要指定参数 -c ,这样 Hint 文本才会发送到 OBServer 端生效。

OceanBase 常用 SQL Hint 如下表所示:

Hint 名称 Hint 参数 Hint 语义
NO_REWRITE 不改写SQL。
READ_CONSISTENCY weak|strong|frozen weak:弱一致性读 strong:强一致性读 frozen:读最近一次冻结点的数据
INDEX_HINT [ qb_name ] table_name index_name 指定查询表时选择的索引。
QUERY_TIMEOUT int64 指定语句执行的超时时间,单位是微秒(us)。
LEADING [ qb_name ] table_name [, table _ name ] 指定多表连接时的顺序。
ORDERED 指定多表连接顺序按SQL中表出现的顺序。
FULL [qb _name ] table_name 指定表的访问方式为全表扫描(有主键时会读主键)。
USE_MERGE [qb _name ] table_name [, table_name ] 指定多表连接时使用MERGE算法。
USE_NL [ qb_name ] table_name [, table_name ] 指定多表连接时使用NEST LOOP算法。
USE_BNL [qb_name] table_name [,table_name] 指定多表连接时适用BLOCK NEST LOOP算法。
USE_HASH_AGGREGATION [ qb_name ] 指定 aggregate 方法使用HASH AGGREGATE,例如HASH GROUP BY,HASH DISTINCT。
NO_USE_HASH_AGGREGATION [ qb_name ] 指定 aggregate 方法不使用HASH AGGREGATE,使用MERGE GROUP BY,MERGE DISTINCT 。
QB_NAME qb_name 指定 query block的名称。
PARALLEL int64 指定分布式执行的并行度。