explain.depesz.com

PostgreSQL's explain analyze made readable

Result: AAQA

Settings
# exclusive inclusive rows x rows loops node
1. 1.927 47,495.744 ↑ 2.8 1,138 1

Unique (cost=25,882.86..25,995.74 rows=3,225 width=631) (actual time=47,493.700..47,495.744 rows=1,138 loops=1)

2. 11.039 47,493.817 ↑ 2.8 1,138 1

Sort (cost=25,882.86..25,890.92 rows=3,225 width=631) (actual time=47,493.698..47,493.817 rows=1,138 loops=1)

  • Sort Key: ((current_database())::information_schema.sql_identifier), ((nc_1.nspname)::information_schema.sql_identifier), ((c_3.relname)::information_schema.sql_identifier), ((CASE WHEN (nc.oid = pg_my_temp_schema()) THEN 'LOCAL TEMPORARY'::text WHEN (c_2.relkind = ANY ('{r,p}'::"char"[])) THEN 'BASE TABLE'::text WHEN (c_2.relkind = 'v'::"char") THEN 'VIEW'::text WHEN (c_2.relkind = 'f'::"char") THEN 'FOREIGN'::text ELSE NULL::text END)::information_schema.character_data), (CASE WHEN ((((CASE WHEN ((c_2.relkind = ANY ('{r,p}'::"char"[])) OR ((c_2.relkind = ANY ('{v,f}'::"char"[])) AND ((pg_relation_is_updatable((c_2.oid)::regclass, false) & 8) = 8))) THEN 'YES'::text ELSE 'NO'::text END)::information_schema.yes_or_no))::text = 'YES'::text) THEN true ELSE false END), (((json_agg(json_build_object('name', (a_2.attname)::information_schema.sql_identifier, 'udt', (COALESCE(bt.typname, t_2.typname))::information_schema.sql_identifier, 'dbt', (CASE WHEN (t_2.typtype = 'd'::"char") THEN CASE WHEN ((bt.typelem <> '0'::oid) AND (bt.typlen = '-1'::integer)) THEN 'ARRAY'::text WHEN (nbt.nspname = 'pg_catalog'::name) THEN format_type(t_2.typbasetype, NULL::integer) ELSE 'USER-DEFINED'::text END ELSE CASE WHEN ((t_2.typelem <> '0'::oid) AND (t_2.typlen = '-1'::integer)) THEN 'ARRAY'::text WHEN (nt_1.nspname = 'pg_catalog'::name) THEN format_type(a_2.atttypid, NULL::integer) ELSE 'USER-DEFINED'::text END END)::information_schema.character_data, 'auto', (((c_4.relname)::information_schema.sql_identifier)::text <> ''::text), 'isnull', lower(((CASE WHEN (a_2.attnotnull OR ((t_2.typtype = 'd'::"char") AND t_2.typnotnull)) THEN 'NO'::text ELSE 'YES'::text END)::information_schema.yes_or_no)::text), 'seq', (c_4.relname)::information_schema.sql_identifier))))::jsonb), a_1.attname, (format_type(a_1.atttypid, a_1.atttypmod)), a.attname, (COALESCE(postgis_typmod_dims(a.atttypmod), (replace(split_part(s_1.consrc, ' = '::text, 2), ')'::text, ''::text))::integer, 2)), (COALESCE(NULLIF(postgis_typmod_srid(a.atttypmod), 0), (replace(replace(split_part(s_2.consrc, ' = '::text, 2), ')'::text, ''::text), '('::text, ''::text))::integer, 0)), ((replace(replace(COALESCE(NULLIF(upper(postgis_typmod_type(a.atttypmod)), 'GEOMETRY'::text), replace(split_part(s.consrc, ''''::text, 2), ')'::text, ''::text), 'GEOMETRY'::text), 'ZM'::text, ''::text), 'Z'::text, ''::text))::character varying(30)), ((((('GEOMETRY('::text || (((replace(replace(COALESCE(NULLIF(upper(postgis_typmod_type(a.atttypmod)), 'GEOMETRY'::text), replace(split_part(s.consrc, ''''::text, 2), ')'::text, ''::text), 'GEOMETRY'::text), 'ZM'::text, ''::text), 'Z'::text, ''::text))::character varying(30)))::text) || ','::text) || ((COALESCE(NULLIF(postgis_typmod_srid(a.atttypmod), 0), (replace(replace(split_part(s_2.consrc, ' = '::text, 2), ')'::text, ''::text), '('::text, ''::text))::integer, 0)))::text) || ')'::text))
  • Sort Method: quicksort Memory: 4,229kB
3. 86.133 47,482.778 ↑ 2.8 1,138 1

Hash Right Join (cost=5,433.69..25,694.92 rows=3,225 width=631) (actual time=47,374.507..47,482.778 rows=1,138 loops=1)

  • Hash Cond: ((s_3.nspname = (((nc_1.nspname)::information_schema.sql_identifier))::name) AND (c_1.relname = (((c_3.relname)::information_schema.sql_identifier))::name))
4. 8.128 25.996 ↓ 24.7 1,579 1

Nested Loop (cost=197.04..20,258.15 rows=64 width=224) (actual time=3.740..25.996 rows=1,579 loops=1)

  • Join Filter: (c_1.relnamespace = s_3.oid)
  • Rows Removed by Join Filter: 72,634
5. 0.055 0.055 ↓ 3.9 47 1

Index Scan using pg_namespace_nspname_index on pg_namespace s_3 (cost=0.14..3.62 rows=12 width=68) (actual time=0.011..0.055 rows=47 loops=1)

6. 5.354 17.813 ↓ 24.7 1,579 47

Materialize (cost=196.91..20,243.18 rows=64 width=164) (actual time=0.038..0.379 rows=1,579 loops=47)

7. 1.378 12.459 ↓ 24.7 1,579 1

Nested Loop (cost=196.91..20,242.86 rows=64 width=164) (actual time=1.778..12.459 rows=1,579 loops=1)

8. 0.872 4.765 ↑ 4.1 1,579 1

Hash Join (cost=196.62..18,221.71 rows=6,446 width=106) (actual time=1.745..4.765 rows=1,579 loops=1)

  • Hash Cond: (pg_index.indrelid = c_1.oid)
9. 1.563 2.173 ↑ 645.3 1,579 1

ProjectSet (cost=0.00..5,160.19 rows=1,019,000 width=210) (actual time=0.014..2.173 rows=1,579 loops=1)

10. 0.610 0.610 ↓ 1.0 1,043 1

Seq Scan on pg_index (cost=0.00..57.55 rows=1,019 width=30) (actual time=0.008..0.610 rows=1,043 loops=1)

  • Filter: indisprimary
  • Rows Removed by Filter: 745
11. 0.738 1.720 ↓ 1.0 3,994 1

Hash (cost=146.83..146.83 rows=3,983 width=72) (actual time=1.719..1.720 rows=3,994 loops=1)

  • Buckets: 4,096 Batches: 1 Memory Usage: 438kB
12. 0.982 0.982 ↓ 1.0 3,994 1

Seq Scan on pg_class c_1 (cost=0.00..146.83 rows=3,983 width=72) (actual time=0.007..0.982 rows=3,994 loops=1)

13. 6.316 6.316 ↑ 1.0 1 1,579

Index Scan using pg_attribute_relid_attnum_index on pg_attribute a_1 (cost=0.29..0.31 rows=1 width=102) (actual time=0.004..0.004 rows=1 loops=1,579)

  • Index Cond: ((attrelid = pg_index.indrelid) AND (attnum = (pg_index.indkey)[(generate_subscripts(pg_index.indkey, 1))]))
14. 6.555 47,370.649 ↑ 2.9 1,129 1

Hash (cost=5,188.27..5,188.27 rows=3,225 width=342) (actual time=47,370.649..47,370.649 rows=1,129 loops=1)

  • Buckets: 4,096 Batches: 1 Memory Usage: 2,935kB
15. 3.162 47,364.094 ↑ 2.9 1,129 1

Merge Left Join (cost=4,735.02..5,188.27 rows=3,225 width=342) (actual time=47,167.836..47,364.094 rows=1,129 loops=1)

  • Merge Cond: (((((nc_1.nspname)::information_schema.sql_identifier))::text = (((nc.nspname)::information_schema.sql_identifier)::text)) AND ((((c_3.relname)::information_schema.sql_identifier))::text = (((c_2.relname)::information_schema.sql_identifier)::text)))
  • Join Filter: (((current_database())::information_schema.sql_identifier)::text = (((current_database())::information_schema.sql_identifier))::text)
16. 1.973 47,203.712 ↑ 2.9 1,129 1

Merge Left Join (cost=4,209.82..4,604.91 rows=3,225 width=278) (actual time=47,010.810..47,203.712 rows=1,129 loops=1)

  • Merge Cond: (((((nc_1.nspname)::information_schema.sql_identifier))::text = ((n.nspname)::text)) AND ((((c_3.relname)::information_schema.sql_identifier))::text = ((c.relname)::text)))
  • Join Filter: (((current_database())::character varying(256))::text = (((current_database())::information_schema.sql_identifier))::text)
17. 176.530 47,148.663 ↑ 3.0 1,093 1

GroupAggregate (cost=3,158.99..3,489.55 rows=3,225 width=128) (actual time=46,957.802..47,148.663 rows=1,093 loops=1)

  • Group Key: ((current_database())::information_schema.sql_identifier), ((nc_1.nspname)::information_schema.sql_identifier), ((c_3.relname)::information_schema.sql_identifier)
18. 163.169 46,972.133 ↓ 7.4 23,893 1

Sort (cost=3,158.99..3,167.05 rows=3,225 width=503) (actual time=46,957.630..46,972.133 rows=23,893 loops=1)

  • Sort Key: ((nc_1.nspname)::information_schema.sql_identifier), ((c_3.relname)::information_schema.sql_identifier)
  • Sort Method: external merge Disk: 6,928kB
19. 27.009 46,808.964 ↓ 7.4 23,893 1

Hash Left Join (cost=2,102.57..2,971.05 rows=3,225 width=503) (actual time=136.207..46,808.964 rows=23,893 loops=1)

  • Hash Cond: (a_2.attcollation = co.oid)
20. 46,620.627 46,780.842 ↓ 7.4 23,893 1

Hash Left Join (cost=2,059.63..2,827.33 rows=3,225 width=539) (actual time=135.082..46,780.842 rows=23,893 loops=1)

  • Hash Cond: (((nc_1.nspname)::information_schema.sql_identifier)::text = ((nc_2.nspname)::information_schema.sql_identifier)::text)
  • Join Filter: ((((current_database())::information_schema.sql_identifier)::text = ((current_database())::information_schema.sql_identifier)::text) AND (((pg_get_expr(ad.adbin, ad.adrelid))::information_schema.character_data)::text ~ similar_escape((('%('::text || ((c_4.relname)::information_schema.sql_identifier)::text) || ')%'::text), NULL::text)))
  • Rows Removed by Join Filter: 4,293,307
21. 25.652 153.986 ↓ 7.4 23,889 1

Hash Right Join (cost=1,787.08..2,205.42 rows=3,225 width=756) (actual time=128.501..153.986 rows=23,889 loops=1)

  • Hash Cond: ((dep.refobjid = c_3.oid) AND (dep.refobjsubid = a_2.attnum))
22. 0.079 2.302 ↓ 0.0 0 1

Hash Join (cost=18.28..436.36 rows=21 width=8) (actual time=2.302..2.302 rows=0 loops=1)

  • Hash Cond: (dep.objid = seq.seqrelid)
23. 2.033 2.033 ↓ 1.2 515 1

Index Scan using pg_depend_depender_index on pg_depend dep (cost=0.29..417.28 rows=414 width=12) (actual time=0.130..2.033 rows=515 loops=1)

  • Index Cond: (classid = '1259'::oid)
  • Filter: ((deptype = 'i'::"char") AND (refclassid = '1259'::oid))
  • Rows Removed by Filter: 5,611
24. 0.083 0.190 ↓ 1.1 561 1

Hash (cost=11.33..11.33 rows=533 width=4) (actual time=0.190..0.190 rows=561 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 28kB
25. 0.107 0.107 ↓ 1.1 561 1

Seq Scan on pg_sequence seq (cost=0.00..11.33 rows=533 width=4) (actual time=0.009..0.107 rows=561 loops=1)

26. 36.497 126.032 ↓ 7.4 23,889 1

Hash (cost=1,720.42..1,720.42 rows=3,225 width=762) (actual time=126.032..126.032 rows=23,889 loops=1)

  • Buckets: 32,768 (originally 4096) Batches: 2 (originally 1) Memory Usage: 7,234kB
27. 12.584 89.535 ↓ 7.4 23,889 1

Hash Join (cost=399.87..1,720.42 rows=3,225 width=762) (actual time=8.655..89.535 rows=23,889 loops=1)

  • Hash Cond: (t_2.typnamespace = nt_1.oid)
28. 10.532 76.914 ↓ 7.4 23,889 1

Hash Left Join (cost=398.60..1,707.69 rows=3,225 width=702) (actual time=8.600..76.914 rows=23,889 loops=1)

  • Hash Cond: ((a_2.attrelid = ad.adrelid) AND (a_2.attnum = ad.adnum))
29. 9.251 65.099 ↓ 7.4 23,889 1

Hash Left Join (cost=314.70..1,606.86 rows=3,225 width=425) (actual time=7.297..65.099 rows=23,889 loops=1)

  • Hash Cond: (t_2.typbasetype = bt.oid)
  • Join Filter: (t_2.typtype = 'd'::"char")
30. 12.542 51.888 ↓ 7.4 23,889 1

Hash Join (cost=151.71..1,391.46 rows=3,225 width=291) (actual time=3.304..51.888 rows=23,889 loops=1)

  • Hash Cond: (a_2.atttypid = t_2.oid)
31. 7.197 36.439 ↓ 7.4 23,889 1

Nested Loop (cost=1.54..1,232.81 rows=3,225 width=211) (actual time=0.370..36.439 rows=23,889 loops=1)

32. 0.633 3.010 ↓ 1.5 1,093 1

Hash Join (cost=1.25..171.87 rows=727 width=136) (actual time=0.333..3.010 rows=1,093 loops=1)

  • Hash Cond: (c_3.relnamespace = nc_1.oid)
33. 2.072 2.072 ↓ 1.0 1,093 1

Seq Scan on pg_class c_3 (cost=0.00..166.75 rows=1,091 width=76) (actual time=0.012..2.072 rows=1,093 loops=1)

  • Filter: (relkind = ANY ('{r,v,f,p}'::"char"[]))
  • Rows Removed by Filter: 2,901
34. 0.011 0.305 ↓ 1.4 11 1

Hash (cost=1.15..1.15 rows=8 width=68) (actual time=0.304..0.305 rows=11 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 10kB
35. 0.294 0.294 ↓ 1.4 11 1

Seq Scan on pg_namespace nc_1 (cost=0.00..1.15 rows=8 width=68) (actual time=0.023..0.294 rows=11 loops=1)

  • Filter: (NOT pg_is_other_temp_schema(oid))
  • Rows Removed by Filter: 36
36. 26.232 26.232 ↓ 4.4 22 1,093

Index Scan using pg_attribute_relid_attnum_index on pg_attribute a_2 (cost=0.29..1.41 rows=5 width=79) (actual time=0.006..0.024 rows=22 loops=1,093)

  • Index Cond: ((attrelid = c_3.oid) AND (attnum > 0))
  • Filter: ((NOT attisdropped) AND (pg_has_role(c_3.relowner, 'USAGE'::text) OR has_column_privilege(c_3.oid, attnum, 'SELECT, INSERT, UPDATE, REFERENCES'::text)))
  • Rows Removed by Filter: 0
37. 1.446 2.907 ↓ 1.0 3,329 1

Hash (cost=109.52..109.52 rows=3,252 width=84) (actual time=2.907..2.907 rows=3,329 loops=1)

  • Buckets: 4,096 Batches: 1 Memory Usage: 423kB
38. 1.461 1.461 ↓ 1.0 3,329 1

Seq Scan on pg_type t_2 (cost=0.00..109.52 rows=3,252 width=84) (actual time=0.006..1.461 rows=3,329 loops=1)

39. 1.530 3.960 ↓ 1.0 3,329 1

Hash (cost=122.34..122.34 rows=3,252 width=138) (actual time=3.959..3.960 rows=3,329 loops=1)

  • Buckets: 4,096 Batches: 1 Memory Usage: 592kB
40. 1.297 2.430 ↓ 1.0 3,329 1

Hash Join (cost=1.27..122.34 rows=3,252 width=138) (actual time=0.143..2.430 rows=3,329 loops=1)

  • Hash Cond: (bt.typnamespace = nbt.oid)
41. 1.107 1.107 ↓ 1.0 3,329 1

Seq Scan on pg_type bt (cost=0.00..109.52 rows=3,252 width=78) (actual time=0.005..1.107 rows=3,329 loops=1)

42. 0.014 0.026 ↓ 3.9 47 1

Hash (cost=1.12..1.12 rows=12 width=68) (actual time=0.026..0.026 rows=47 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 13kB
43. 0.012 0.012 ↓ 3.9 47 1

Seq Scan on pg_namespace nbt (cost=0.00..1.12 rows=12 width=68) (actual time=0.006..0.012 rows=47 loops=1)

44. 0.885 1.283 ↑ 1.0 1,191 1

Hash (cost=65.96..65.96 rows=1,196 width=283) (actual time=1.283..1.283 rows=1,191 loops=1)

  • Buckets: 2,048 Batches: 1 Memory Usage: 389kB
45. 0.398 0.398 ↑ 1.0 1,191 1

Seq Scan on pg_attrdef ad (cost=0.00..65.96 rows=1,196 width=283) (actual time=0.011..0.398 rows=1,191 loops=1)

46. 0.019 0.037 ↓ 3.9 47 1

Hash (cost=1.12..1.12 rows=12 width=68) (actual time=0.036..0.037 rows=47 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 13kB
47. 0.018 0.018 ↓ 3.9 47 1

Seq Scan on pg_namespace nt_1 (cost=0.00..1.12 rows=12 width=68) (actual time=0.011..0.018 rows=47 loops=1)

48. 0.437 6.229 ↓ 25.5 561 1

Hash (cost=272.28..272.28 rows=22 width=128) (actual time=6.229..6.229 rows=561 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 96kB
49. 0.217 5.792 ↓ 25.5 561 1

Nested Loop Anti Join (cost=19.53..272.28 rows=22 width=128) (actual time=0.239..5.792 rows=561 loops=1)

50. 0.258 2.770 ↓ 20.8 561 1

Hash Join (cost=19.24..226.77 rows=27 width=132) (actual time=0.225..2.770 rows=561 loops=1)

  • Hash Cond: (c_4.relnamespace = nc_2.oid)
51. 0.334 2.478 ↓ 13.7 561 1

Hash Join (cost=17.99..225.38 rows=41 width=72) (actual time=0.182..2.478 rows=561 loops=1)

  • Hash Cond: (c_4.oid = s_4.seqrelid)
52. 1.978 1.978 ↓ 1.8 561 1

Seq Scan on pg_class c_4 (cost=0.00..206.57 rows=308 width=72) (actual time=0.010..1.978 rows=561 loops=1)

  • Filter: ((relkind = 'S'::"char") AND (pg_has_role(relowner, 'USAGE'::text) OR has_sequence_privilege(oid, 'SELECT, UPDATE, USAGE'::text)) AND (((relname)::information_schema.sql_identifier)::text <> ''::text))
  • Rows Removed by Filter: 3,433
53. 0.083 0.166 ↓ 1.1 561 1

Hash (cost=11.33..11.33 rows=533 width=4) (actual time=0.166..0.166 rows=561 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 28kB
54. 0.083 0.083 ↓ 1.1 561 1

Seq Scan on pg_sequence s_4 (cost=0.00..11.33 rows=533 width=4) (actual time=0.005..0.083 rows=561 loops=1)

55. 0.005 0.034 ↓ 1.4 11 1

Hash (cost=1.15..1.15 rows=8 width=68) (actual time=0.034..0.034 rows=11 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 10kB
56. 0.029 0.029 ↓ 1.4 11 1

Seq Scan on pg_namespace nc_2 (cost=0.00..1.15 rows=8 width=68) (actual time=0.010..0.029 rows=11 loops=1)

  • Filter: (NOT pg_is_other_temp_schema(oid))
  • Rows Removed by Filter: 36
57. 2.805 2.805 ↓ 0.0 0 561

Index Scan using pg_depend_depender_index on pg_depend (cost=0.29..1.68 rows=1 width=4) (actual time=0.005..0.005 rows=0 loops=561)

  • Index Cond: ((classid = '1259'::oid) AND (objid = c_4.oid))
  • Filter: (deptype = 'i'::"char")
  • Rows Removed by Filter: 2
58. 0.238 1.113 ↑ 1.0 704 1

Hash (cost=34.12..34.12 rows=705 width=4) (actual time=1.112..1.113 rows=704 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 33kB
59. 0.473 0.875 ↑ 1.0 704 1

Hash Join (cost=1.27..34.12 rows=705 width=4) (actual time=0.067..0.875 rows=704 loops=1)

  • Hash Cond: (co.collnamespace = nco.oid)
  • Join Filter: ((nco.nspname <> 'pg_catalog'::name) OR (co.collname <> 'default'::name))
  • Rows Removed by Join Filter: 1
60. 0.364 0.364 ↑ 1.0 705 1

Seq Scan on pg_collation co (cost=0.00..30.05 rows=705 width=72) (actual time=0.018..0.364 rows=705 loops=1)

61. 0.021 0.038 ↓ 3.9 47 1

Hash (cost=1.12..1.12 rows=12 width=68) (actual time=0.038..0.038 rows=47 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 13kB
62. 0.017 0.017 ↓ 3.9 47 1

Seq Scan on pg_namespace nco (cost=0.00..1.12 rows=12 width=68) (actual time=0.006..0.017 rows=47 loops=1)

63. 2.158 53.076 ↓ 469.0 469 1

Sort (cost=1,050.83..1,050.83 rows=1 width=278) (actual time=53.001..53.076 rows=469 loops=1)

  • Sort Key: ((n.nspname)::text), ((c.relname)::text)
  • Sort Method: quicksort Memory: 216kB
64. 0.923 50.918 ↓ 469.0 469 1

Nested Loop Left Join (cost=1.40..1,050.82 rows=1 width=278) (actual time=0.379..50.918 rows=469 loops=1)

  • Join Filter: ((s_2.connamespace = n.oid) AND (a.attnum = ANY (s_2.conkey)))
65. 1.692 48.588 ↓ 469.0 469 1

Nested Loop Left Join (cost=1.12..1,050.26 rows=1 width=288) (actual time=0.351..48.588 rows=469 loops=1)

  • Join Filter: ((s.connamespace = n.oid) AND (a.attnum = ANY (s.conkey)))
66. 0.632 45.489 ↓ 469.0 469 1

Nested Loop Left Join (cost=0.85..1,049.70 rows=1 width=210) (actual time=0.327..45.489 rows=469 loops=1)

  • Join Filter: ((s_1.connamespace = n.oid) AND (a.attnum = ANY (s_1.conkey)))
67. 1.330 42.981 ↓ 469.0 469 1

Nested Loop (cost=0.57..1,049.15 rows=1 width=206) (actual time=0.234..42.981 rows=469 loops=1)

  • Join Filter: (c.relnamespace = n.oid)
  • Rows Removed by Join Filter: 4,822
68. 3.978 39.775 ↓ 469.0 469 1

Nested Loop (cost=0.57..1,047.88 rows=1 width=142) (actual time=0.224..39.775 rows=469 loops=1)

  • Join Filter: (t.oid = a.atttypid)
  • Rows Removed by Join Filter: 27,039
69. 0.314 20.481 ↓ 4.5 1,094 1

Nested Loop (cost=0.28..206.52 rows=243 width=76) (actual time=0.066..20.481 rows=1,094 loops=1)

70. 0.015 0.015 ↑ 1.0 1 1

Index Scan using pg_type_typname_nsp_index on pg_type t (cost=0.28..2.50 rows=1 width=4) (actual time=0.014..0.015 rows=1 loops=1)

  • Index Cond: (typname = 'geometry'::name)
71. 20.152 20.152 ↓ 4.5 1,094 1

Seq Scan on pg_class c (cost=0.00..201.60 rows=243 width=72) (actual time=0.048..20.152 rows=1,094 loops=1)

  • Filter: ((relname <> 'raster_columns'::name) AND (NOT pg_is_other_temp_schema(relnamespace)) AND has_table_privilege(oid, 'SELECT'::text) AND (relkind = ANY ('{r,v,m,f,p}'::"char"[])))
  • Rows Removed by Filter: 2,900
72. 15.316 15.316 ↓ 2.1 25 1,094

Index Scan using pg_attribute_relid_attnum_index on pg_attribute a (cost=0.29..3.31 rows=12 width=78) (actual time=0.004..0.014 rows=25 loops=1,094)

  • Index Cond: (attrelid = c.oid)
  • Filter: (NOT attisdropped)
  • Rows Removed by Filter: 0
73. 1.876 1.876 ↑ 1.1 11 469

Seq Scan on pg_namespace n (cost=0.00..1.12 rows=12 width=68) (actual time=0.002..0.004 rows=11 loops=469)

74. 1.876 1.876 ↓ 0.0 0 469

Index Scan using pg_constraint_conrelid_contypid_conname_index on pg_constraint s_1 (cost=0.28..0.52 rows=1 width=72) (actual time=0.003..0.004 rows=0 loops=469)

  • Index Cond: (conrelid = c.oid)
  • Filter: (consrc ~~* '%ndims(% = %'::text)
  • Rows Removed by Filter: 1
75. 1.407 1.407 ↓ 0.0 0 469

Index Scan using pg_constraint_conrelid_contypid_conname_index on pg_constraint s (cost=0.28..0.52 rows=1 width=72) (actual time=0.003..0.003 rows=0 loops=469)

  • Index Cond: (conrelid = c.oid)
  • Filter: (consrc ~~* '%geometrytype(% = %'::text)
  • Rows Removed by Filter: 1
76. 1.407 1.407 ↓ 0.0 0 469

Index Scan using pg_constraint_conrelid_contypid_conname_index on pg_constraint s_2 (cost=0.28..0.52 rows=1 width=72) (actual time=0.003..0.003 rows=0 loops=469)

  • Index Cond: (conrelid = c.oid)
  • Filter: (consrc ~~* '%srid(% = %'::text)
  • Rows Removed by Filter: 1
77. 4.930 157.220 ↓ 2.2 1,129 1

Sort (cost=525.20..526.48 rows=512 width=192) (actual time=157.014..157.220 rows=1,129 loops=1)

  • Sort Key: (((nc.nspname)::information_schema.sql_identifier)::text), (((c_2.relname)::information_schema.sql_identifier)::text)
  • Sort Method: quicksort Memory: 339kB
78. 1.397 152.290 ↓ 2.1 1,093 1

Hash Join (cost=164.24..502.16 rows=512 width=192) (actual time=2.536..152.290 rows=1,093 loops=1)

  • Hash Cond: (c_2.relnamespace = nc.oid)
79. 0.737 150.864 ↓ 1.4 1,093 1

Hash Left Join (cost=162.99..490.51 rows=768 width=101) (actual time=2.494..150.864 rows=1,093 loops=1)

  • Hash Cond: (c_2.reloftype = t_1.oid)
80. 147.828 147.828 ↓ 1.4 1,093 1

Seq Scan on pg_class c_2 (cost=0.00..316.96 rows=768 width=105) (actual time=0.186..147.828 rows=1,093 loops=1)

  • Filter: ((relkind = ANY ('{r,v,f,p}'::"char"[])) AND (pg_has_role(relowner, 'USAGE'::text) OR has_table_privilege(oid, 'SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER'::text) OR has_any_column_privilege(oid, 'SELECT, INSERT, UPDATE, REFERENCES'::text)))
  • Rows Removed by Filter: 2,901
81. 0.577 2.299 ↓ 1.0 3,329 1

Hash (cost=122.34..122.34 rows=3,252 width=4) (actual time=2.299..2.299 rows=3,329 loops=1)

  • Buckets: 4,096 Batches: 1 Memory Usage: 150kB
82. 0.939 1.722 ↓ 1.0 3,329 1

Hash Join (cost=1.27..122.34 rows=3,252 width=4) (actual time=0.040..1.722 rows=3,329 loops=1)

  • Hash Cond: (t_1.typnamespace = nt.oid)
83. 0.764 0.764 ↓ 1.0 3,329 1

Seq Scan on pg_type t_1 (cost=0.00..109.52 rows=3,252 width=8) (actual time=0.007..0.764 rows=3,329 loops=1)

84. 0.009 0.019 ↓ 3.9 47 1

Hash (cost=1.12..1.12 rows=12 width=4) (actual time=0.018..0.019 rows=47 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 10kB
85. 0.010 0.010 ↓ 3.9 47 1

Seq Scan on pg_namespace nt (cost=0.00..1.12 rows=12 width=4) (actual time=0.004..0.010 rows=47 loops=1)

86. 0.005 0.029 ↓ 1.4 11 1

Hash (cost=1.15..1.15 rows=8 width=68) (actual time=0.029..0.029 rows=11 loops=1)

  • Buckets: 1,024 Batches: 1 Memory Usage: 10kB
87. 0.024 0.024 ↓ 1.4 11 1

Seq Scan on pg_namespace nc (cost=0.00..1.15 rows=8 width=68) (actual time=0.009..0.024 rows=11 loops=1)

  • Filter: (NOT pg_is_other_temp_schema(oid))
  • Rows Removed by Filter: 36