Re: [HACKERS] Reporting planning time with EXPLAIN - Mailing list pgsql-hackers
From | Stephen Frost |
---|---|
Subject | Re: [HACKERS] Reporting planning time with EXPLAIN |
Date | |
Msg-id | 20161228164752.GM18360@tamriel.snowman.net Whole thread Raw |
In response to | Re: [HACKERS] Reporting planning time with EXPLAIN (Tom Lane <tgl@sss.pgh.pa.us>) |
List | pgsql-hackers |
Tom, * Tom Lane (tgl@sss.pgh.pa.us) wrote: > Stephen Frost <sfrost@snowman.net> writes: > > * Ashutosh Bapat (ashutosh.bapat@enterprisedb.com) wrote: > >>> I am not sure whether using *summary* to print just planning time is a > >>> good idea. Another option could be SUMMARY_PLAN_TIME. > > > Using 'summary' seems entirely reasonable to me, > > I think it's an awful choice of name; it has nothing to do with either > the functionality or the printed name of the field. And I could imagine > future uses of "summary" to mean something much different, like say an > actual summary. (The dictionary meaning of "summary" is "a brief > restatement of the main points of something"; adding new information > is not even approximately within the meaning.) I don't particularly agree with this. It's a summary of the timing information today (and at least one dictionary agrees that "summary" can also mean "Formed into a sum") and in the future it certainly could be expanded on, in which case I'd expect the 'summary' option to control whatever else is added there. As an example, we might some day wish to include a summary of buffer information at the bottom too when 'buffers' is used. The proposed 'summary' option would cover that nicely, but 'timing' wouldn't. That's actually why I was thinking summary might be a good option to have. > How about just saying that the existing TIMING option turns this on, > if it's specified without ANALYZE? Right now that combination draws > an error: > > regression=# explain (timing on) select 1; > ERROR: EXPLAIN option TIMING requires ANALYZE > > so there's no existing usage that this would break. No, but consider how the docs for the current 'timing' option would have to be rewritten. Further, I'd expect to include examples of the ability to show planning time in 14.1 as that's something that regular users will actually be using, unlike 'timing's current usage which is, in my experience anyway, not terribly common. We would also have to say something like "the default when not using 'analyze' is off, but with 'analyze' the default is on" which seems pretty grotty to me. Then again, from a *user's* perspective, it should just be included by default. The reason it isn't hasn't got anything to do with what our *users* want, in my opinion at least. Having the summary option exposed would also provide a way for Andres to do what he wanted to originally from the referred-to thread. There may be other pieces to address if the plan might involve platform-specific details about sorts, etc, but from what he was suggesting that wouldn't be an issue for his initial case, and as Robert mentioned on that thread, we could do something about those other cases too. I don't think having 'timing' or 'whatever controls showing planning and total execution times at the bottom' would make sense as an option to disable showing platform-specific sort or hashing info though. Thanks! Stephen
pgsql-hackers by date: