我正在 QuestDB 中运行以下查询:
SELECT
timestamp,
first(price) AS open,
last(price) AS close,
min(price),
max(price),
sum(amount) AS volume
FROM trades
WHERE symbol = 'BTC-USD' AND timestamp > dateadd('d', -1, now())
SAMPLE BY 15m ALIGN TO CALENDAR;
如何判断此查询使用了服务器上的所有可用核心?
您应该检查查询的执行计划。您可以通过在查询文本的开头添加 EXPLAIN 子句来查看它:
EXPLAIN SELECT
timestamp,
first(price) AS open,
last(price) AS close,
min(price),
max(price),
sum(amount) AS volume
FROM trades
WHERE symbol = 'BTC-USD' AND timestamp > dateadd('d', -1, now())
SAMPLE BY 15m ALIGN TO CALENDAR;
如果您在输出中看到
Async ...
节点,例如Async JIT Group By
或Async JIT Filter
,表示查询执行计划的相应部分并行运行,即在多个线程上运行。