我如何查询Max,AVG同时查询QuestDB

问题描述 投票:0回答:2
我正在使用QuestDB中使用

_query_trace

表的查询性能。桌子模式是

create _query_trace ( ts timestamp, query_text varchar, execution_micros long )
我如何查询每分钟同时查询的平均最大计数?
    

questdb
2个回答
0
投票
我会结合查询启动时间和查询结束时间。对于查询端,i rate the Start Timestamp加上

dateadd

。现在,我有一个查询启动和查询结束的“事件”的行,我可以使用

execution_micros

进行查询启动,而对于查询端。这应该告诉我任何给定的行我有多少个并发查询。
then是为每个时间戳汇总总数的问题,而通过仅过滤查询事件的行进行采样。
SUM
    
要使用QUESTDB中的
+1
表计算每分钟同时查询的平均最大计数,您可以使用以下SQL查询:
Query

-1

解释

InnerQuery

0
投票

1m

:将时间戳铺平到最近的一分钟。

start

:计算每个时间戳的查询数。

  1. WITH query_events AS ( SELECT ts AS ts, 1 AS delta, 'start' as event_type FROM queries UNION ALL SELECT dateadd('u', execution_micros::int, ts) AS ts, -1 AS delta, 'end' as event_type FROM queries ), query_counting as ( SELECT ts, SUM(delta) OVER (ORDER BY ts) AS simultaneous_queries, event_type FROM query_events ORDER by ts ) SELECT ts, min(simultaneous_queries), avg(simultaneous_queries), max(simultaneous_queries) FROM query_counting WHERE event_type = 'start' SAMPLE BY 1m; :计算每分钟同时查询的最大计数。

    • outer查询:

    • _query_trace

      :平均每分钟的最大计数。
      

    • 结果由地板时间戳分组并相应地分组。
    • 
      

      此查询将提供每分钟同时查询的平均最大计数。如果您还有其他问题或需要其他修改,请随时提出!
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.