Обсуждение: Not clear with the Explain Plan output

Поиск
Список
Период
Сортировка

Not clear with the Explain Plan output

От
Siraj G
Дата:
Hello experts!

I am new in the PgSQL domain, so I need assistance in understanding the explain plan. I took the plan of a SQL via PgAdmin and it looks like the attached one. I am unable to see the numbers that indicate where the heavy processing is being done, to determine the IO and cpu processing. 

Is this the right way to collect explain plan? If so, how do I interpret this? If there is another or a better way to collect this, please let me know.

Regards
Siraj 
Вложения

Re: Not clear with the Explain Plan output

От
hubert depesz lubaczewski
Дата:
On Mon, May 13, 2024 at 09:07:14PM +0530, Siraj G wrote:
> Hello experts!
> 
> I am new in the PgSQL domain, so I need assistance in understanding the
> explain plan. I took the plan of a SQL via PgAdmin and it looks like the
> attached one. I am unable to see the numbers that indicate where the heavy
> processing is being done, to determine the IO and cpu processing.
> 
> Is this the right way to collect explain plan? If so, how do I interpret
> this? If there is another or a better way to collect this, please let me
> know.

Just run 'explain analyze' and read the text output. Graphs, in my
opinion, hide too much info.

Normal explain looks like:

#v+
                                                                  QUERY PLAN

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Sort  (cost=35.41..35.50 rows=35 width=224) (actual time=0.160..0.162 rows=4 loops=1)
   Sort Key: n.nspname, c.relname
   Sort Method: quicksort  Memory: 25kB
   Buffers: shared hit=15
   ->  Hash Join  (cost=1.09..34.51 rows=35 width=224) (actual time=0.046..0.153 rows=4 loops=1)
         Hash Cond: (c.relnamespace = n.oid)
         Buffers: shared hit=15
         ->  Seq Scan on pg_class c  (cost=0.00..32.16 rows=70 width=77) (actual time=0.009..0.107 rows=146 loops=1)
               Filter: ((relkind = ANY ('{r,p,v,m,S,f,""}'::"char"[])) AND pg_table_is_visible(oid))
               Rows Removed by Filter: 280
               Buffers: shared hit=14
         ->  Hash  (cost=1.07..1.07 rows=2 width=68) (actual time=0.029..0.029 rows=2 loops=1)
               Buckets: 1024  Batches: 1  Memory Usage: 9kB
               Buffers: shared hit=1
               ->  Seq Scan on pg_namespace n  (cost=0.00..1.07 rows=2 width=68) (actual time=0.013..0.015 rows=2
loops=1)
                     Filter: ((nspname <> 'pg_catalog'::name) AND (nspname !~ '^pg_toast'::text) AND (nspname <>
'information_schema'::name))
                     Rows Removed by Filter: 3
                     Buffers: shared hit=1
 Planning:
   Buffers: shared hit=9
 Planning Time: 0.204 ms
 Execution Time: 0.189 ms
(22 rows)
#v-

Best regards,

depesz