Files
coder/coderd/searchquery
Ethan 5ff749617b chore(coderd/database): optimize AuditLogs queries (cherry-pick #18600) (#19193)
A customer who recently upgraded their deployment to 2.24 is seeing
their audit log queries take longer than a minute to load (resulting in
a gateway timeout). As such, Support's requested we backport this fix to
2.24 (in the next patch), as it does not require a database migration.

### Original PR Description (https://github.com/coder/coder/pull/18600):

Closes #17689

This PR optimizes the audit logs query performance by extracting the
count operation into a separate query and replacing the OR-based
workspace_builds with conditional joins.

## Query changes
* Extracted count query to separate one
* Replaced single `workspace_builds` join with OR conditions with
separate conditional joins
* Added conditional joins
* `wb_build` for workspace_build audit logs (which is a direct lookup)
    * `wb_workspace` for workspace create audit logs (via workspace)

Optimized AuditLogsOffset query:
https://explain.dalibo.com/plan/4g1hbedg4a564bg8

New CountAuditLogs query:
https://explain.dalibo.com/plan/ga2fbcecb9efbce3

Co-authored-by: Kacper Sawicki <kacper@coder.com>
2025-08-07 22:21:15 +10:00
..