HINT 关键字

HINT 关键字是一种特殊的 SQL 指令,旨在提供一种直接指导数据库优化器执行策略的机制。在特定场景下,使用不同的 HINT 关键字,能够有效优化 SQL 查询的执行计划与效率 。

以下是 DolphinDB 支持的 HINT 关键字列表。

关键字 flag 使用说明 例子
[HINT_LOCAL] [1] 在分布式集群环境下, 仅获取在本地所有节点数据的查询结果。 select [HINT_LOCAL] sum(*) from pt
[HINT_HASH] [32] group by 分组时优先采用哈希算法。 select [HINT_HASH] count(*) from t group by sym
[HINT_SNAPSHOT] [64] 使用 registerSnapshotEngine 注册快照引擎后,从分布式表的快照引擎中查询数据。 select [HINT_SNAPSHOT] * from loadTable(dbName,tableName)
[HINT_KEEPORDER] [128] 确保 context by 分组后计算的输出结果顺序和输入保持一致。 select [HINT_KEEPORDER] cumsum(vol) from t context by date, sym
[HINT_SEQ] [512] 内存资源紧缺时,使分区查询串行执行,节约并发的资源开销。 timer select [HINT_SEQ] avg(vol) from t
[HINT_NOMERGE] [1024] 对无需返回查询结果的中间步骤,省略查询结果的合并步骤,直接返回分区表的句柄。 select [HINT_NOMERGE] price from pt context by ticker
[HINT_PRELOAD] [4096] 仅 TSDB引擎支持,在 where 语句进行条件过滤前预加载相关数据。 select [HINT_PRELOAD] sum(price) from t where volume > 100000
[HINT_EXPLAIN] [32768] 用于 SQL 查询性能调优,执行 SQL 语句时系统将打印执行过程,以实时监测查询速度和执行顺序。详见[HINT_EXPLAIN] select [HINT_EXPLAIN] * from tb where id > 20
[HINT_SORT] [524288] group by 分组时使用排序算法进行数据处理。 select [HINT_SORT] avg(price) from trades group by sym
[HINT_VECTORIZED] [4194304] group by 分组时采用向量化运算(vectorization)。 select [HINT_VECTORIZED] sum(price) from trades group by sym