Skip to content

Commit d00817e

Browse files
authored
perf(coderd): simplify insights queries to speed them up (#9299)
1 parent 6b69abf commit d00817e

File tree

3 files changed

+0
-31
lines changed

3 files changed

+0
-31
lines changed

coderd/database/dbfake/dbfake.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2274,15 +2274,6 @@ func (q *FakeQuerier) GetTemplateDailyInsights(ctx context.Context, arg database
22742274
}
22752275

22762276
for _, s := range q.workspaceAppStats {
2277-
// (was.session_started_at >= ts.from_ AND was.session_started_at < ts.to_)
2278-
// OR (was.session_ended_at > ts.from_ AND was.session_ended_at < ts.to_)
2279-
// OR (was.session_started_at < ts.from_ AND was.session_ended_at >= ts.to_)
2280-
if !(((s.SessionStartedAt.After(arg.StartTime) || s.SessionStartedAt.Equal(arg.StartTime)) && s.SessionStartedAt.Before(arg.EndTime)) ||
2281-
(s.SessionEndedAt.After(arg.StartTime) && s.SessionEndedAt.Before(arg.EndTime)) ||
2282-
(s.SessionStartedAt.Before(arg.StartTime) && (s.SessionEndedAt.After(arg.EndTime) || s.SessionEndedAt.Equal(arg.EndTime)))) {
2283-
continue
2284-
}
2285-
22862277
w, err := q.getWorkspaceByIDNoLock(ctx, s.WorkspaceID)
22872278
if err != nil {
22882279
return nil, err

coderd/database/queries.sql.go

Lines changed: 0 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/insights.sql

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,6 @@ WITH ts AS (
5050
AND was.connection_count > 0
5151
AND CASE WHEN COALESCE(array_length(@template_ids::uuid[], 1), 0) > 0 THEN was.template_id = ANY(@template_ids::uuid[]) ELSE TRUE END
5252
)
53-
WHERE
54-
-- We already handle created_at in the join, but we use an additional
55-
-- check against a static timeframe to help speed up the query.
56-
was.created_at >= @start_time
57-
AND was.created_at < @end_time
5853
GROUP BY ts.from_, ts.to_, ts.seconds, was.user_id
5954
), template_ids AS (
6055
SELECT array_agg(DISTINCT template_id) AS ids
@@ -113,12 +108,6 @@ WITH ts AS (
113108
wa.agent_id = was.agent_id
114109
AND wa.slug = was.slug_or_port
115110
)
116-
WHERE
117-
-- We already handle timeframe in the join, but we use an additional
118-
-- check against a static timeframe to help speed up the query.
119-
(was.session_started_at >= @start_time AND was.session_started_at < @end_time)
120-
OR (was.session_ended_at > @start_time AND was.session_ended_at < @end_time)
121-
OR (was.session_started_at < @start_time AND was.session_ended_at >= @end_time)
122111
GROUP BY ts.from_, ts.to_, ts.seconds, w.template_id, was.user_id, was.agent_id, was.access_method, was.slug_or_port, wa.display_name, wa.icon, wa.slug
123112
)
124113

0 commit comments

Comments
 (0)