_query_trace
表的查询性能。桌子模式是
create _query_trace (
ts timestamp,
query_text varchar,
execution_micros long
)
我如何查询每分钟同时查询的平均最大计数?
dateadd
execution_micros
进行查询启动,而对于查询端。这应该告诉我任何给定的行我有多少个并发查询。 then是为每个时间戳汇总总数的问题,而通过仅过滤查询事件的行进行采样。
SUM
要使用QUESTDB中的
+1
表计算每分钟同时查询的平均最大计数,您可以使用以下SQL查询:Query
-1
InnerQuery:
1m
:将时间戳铺平到最近的一分钟。
start
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
:平均每分钟的最大计数。
此查询将提供每分钟同时查询的平均最大计数。如果您还有其他问题或需要其他修改,请随时提出!