为什么 Vertica query_requests table 报告查询耗时几毫秒,而实际上耗时 10 秒?

Why does Vertica query_requests table report that a query took a few milliseconds, while it actually took 10 seconds?

我正在 运行查询 Vertica table,它有近 500 列,只有 100 000 行。

一个简单的查询(比如来自 mytable 的 select avg(col1))需要 10 秒,正如 Vertica vsql 客户端报告的那样\计时命令.

但是在检查此查询的列 query_requests.request_duration_ms 时,没有提到 10 秒,它报告少于 100 毫秒

query_requests.start_timestamp 列表示处理的开始是在我实际执行命令后 10 秒开始的。

resource_acquisitions table 显示资源获取没有延迟,但是它的 queue_entry_timestamp 列也显示队列条目发生在我实际执行命令后10秒。

对相同数据的相同查询 运行,但 table 立即只有一列 returns。由于我 运行 直接在 Vertica 节点上进行查询,因此我排除了任何网络延迟问题。

感觉Vertica在执行查询之前做了一些事情。这占用了大部分时间,并且与table的列数有关。知道它可能是什么,我可以尝试修复它吗?

我在没有负载的测试环境中使用 Vertica 8。

我是 运行 Vertica 8.1.0-1,看来问题是由查询计划阶段的 Vertica 错误引起的,导致性能下降。它在版本 >= 8.1.1 中得到解决: https://my.vertica.com/docs/ReleaseNotes/8.1./Vertica_8.1.x_Release_Notes.htm

VER-53602 - Optimizer - This fix improves complex query performance during the query planning phase.