Populate missing dismissal fields for vulnerabilities
This MR populates the missing dismissed_at
and dismissed_by
for vulnerabilities due to #404426 (closed).
Query analysis
EXEC CREATE INDEX CONCURRENTLY "tmp_index_vulnerability_dismissal_info" ON "vulnerabilities" ("id")WHERE state = 2 AND (dismissed_at IS NULL OR dismissed_by_id IS NULL)
The query has been executed. Duration: 7.484 min
EXPLAIN SELECT id FROM vulnerabilities WHERE state = 2 AND (dismissed_at IS NULL OR dismissed_by_id IS NULL)
Without Index:
Time: 9.959 min
- planning: 2.380 ms
- execution: 9.959 min
https://postgres.ai/console/gitlab/gitlab-production-tunnel-pg12/sessions/17768/commands/59272.
With Index:
Index Only Scan using tmp_index_vulnerability_dismissal_info on public.vulnerabilities (cost=0.29..237985.32 rows=3312857 width=8) (actual time=0.058..110.083 rows=90798 loops=1)
Heap Fetches: 15076
Buffers: shared hit=31535 read=1020
I/O Timings: read=53.820 write=0.000
Time: 116.989 ms
- planning: 2.519 ms
- execution: 114.470 ms
https://postgres.ai/console/gitlab/gitlab-production-tunnel-pg12/sessions/17768/commands/59275.
Related to #405032 (closed)
Edited by Subashis Chakraborty