EXPLAIN ANALYZE time calculations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'd like to get confirmation that I'm correctly understanding the times given in EXPLAIN ANALYZE. Taking the example given in the Using Explain section of the docs,

http://www.postgresql.org/docs/current/static/using-explain

EXPLAIN ANALYZE SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 < 100 AND t1.unique2 = t2.unique2;

                                                            QUERY PLAN
------------------------------------------------------------------------ ---------------------------------------------------------- Nested Loop (cost=2.37..553.11 rows=106 width=488) (actual time=1.392..12.700 rows=100 loops=1) -> Bitmap Heap Scan on tenk1 t1 (cost=2.37..232.35 rows=106 width=244) (actual time=0.878..2.367 rows=100 loops=1)
         Recheck Cond: (unique1 < 100)
-> Bitmap Index Scan on tenk1_unique1 (cost=0.00..2.37 rows=106 width=0) (actual time=0.546..0.546 rows=100 loops=1)
               Index Cond: (unique1 < 100)
-> Index Scan using tenk2_unique2 on tenk2 t2 (cost=0.00..3.01 rows=1 width=244) (actual time=0.067..0.078 rows=1 loops=100)
         Index Cond: ("outer".unique2 = t2.unique2)
Total runtime: 14.452 ms

I'm interested in figuring out what percentage of the total runtime is spent in each node. Here are my calculations.

Nested loop:
  actual time: 12.700 ms/loop * 1 loop = 12.700 ms
  percent of total runtime: 88%
  percent spent in subnodes: 16% + 54% = 70%
  percent spent in node: 18%

    Bitmap Heap Scan on tenk1:
      actual time: 2.367 ms/loop * 1 loop = 2.367 ms
      percent of total runtime: 16%
      time spent in subnodes: 4%
      time spent in node: 12%

        Bitmap Heap Scan on tenk1_unique1:
          actual time: 0.546 ms/loop * 1 loop = 0.546 ms: 4%
          time spent in subnodes: 0%
          time spent in node: 4%

    Index Scan total time:
      actual time: 0.078 ms/loop * 100 loops = 7.80 ms
      percent of total runtime: 54%
      percent spent in subnodes: 0%
      percent spent in node: 54%

executor overhead: 14.452 ms - 12.700 ms = 1.752 ms: 12%

Is this correct?

Michael Glaesemann
grzm seespotcode net



---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at

               http://www.postgresql.org/about/donate

[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux