Skip to content

Populate missing dismissal fields for vulnerabilities

Subashis Chakraborty requested to merge 405032-missing-data into master

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

Merge request reports