One of the first things new DBA hears is “Use the EXPLAIN". And upon first try he/she is greeted with incomprehensible:
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------
Sort (cost=146.63..148.65 ROWS=808 width=138) (actual TIME=55.009..55.012 ROWS=71 loops=1)
Sort KEY: n.nspname, p.proname, (pg_get_function_arguments(p.oid))
Sort Method: quicksort Memory: 43kB
-> Hash JOIN (cost=1.14..107.61 ROWS=808 width=138) (actual TIME=42.495..54.854 ROWS=71 loops=1)
Hash Cond: (p.pronamespace = n.oid)
-> Seq Scan ON pg_proc p (cost=0.00..89.30 ROWS=808 width=78) (actual TIME=0.052..53.465 ROWS=2402 loops=1)
FILTER: pg_function_is_visible(oid)
-> Hash (cost=1.09..1.09 ROWS=4 width=68) (actual TIME=0.011..0.011 ROWS=4 loops=1)
Buckets: 1024 Batches: 1 Memory Usage: 1kB
-> Seq Scan ON pg_namespace n (cost=0.00..1.09 ROWS=4 width=68) (actual TIME=0.005..0.007 ROWS=4 loops=1)
FILTER: ((nspname <> 'pg_catalog'::name) AND (nspname <> 'information_schema'::name))
What does it even mean?
Continue reading Explaining the unexplainable