Geo: Slow JOIN query with project_repository_states
In terms of total_time
, this appears to be the slowest query in production now:
gitlabhq_production=# select * from pg_stat_statements order by total_time desc limit 10;
-[ RECORD 1 ]-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
userid | 16384
dbid | 16385
queryid | 1990603067
query | SELECT "projects"."id" FROM "projects" LEFT OUTER JOIN "routes" ON "routes"."source_id" = "projects"."id" AND "routes"."source_type" = ? LEFT OUTER JOIN "project_repository_states" ON
"projects"."id" = "project_repository_states"."project_id" WHERE "project_repository_states"."project_id" IS NULL AND "projects"."repository_storage" = ? LIMIT ?
calls | 216557
total_time | 685690332.906985
min_time | 0.065
max_time | 10525.851
mean_time | 3166.32726213888
stddev_time | 1100.65954526562
rows | 2335409
shared_blks_hit | 328794521372
shared_blks_read | 409495
shared_blks_dirtied | 71530
shared_blks_written | 0
local_blks_hit | 0
local_blks_read | 0
local_blks_dirtied | 0
local_blks_written | 0
temp_blks_read | 58213593
temp_blks_written | 58213593
blk_read_time | 2969.026
blk_write_time | 0
/cc: @dbalexandre, @digitalmoksha
Edited by Stan Hu