Thread: how to use explain analyze

how to use explain analyze

From
alan
Date:
I'm new to postgres and was wondering how to use EXPLAIN ANALYZE ....

Can I use the output from ANALYZE EXPLAIN to estimate or predict the
actual time
it would take for a given query to return?

I ask because I'm writing a typical web app that allows the user to
build and submit a query
to my DB. Since I don't know how "simple" or "complex" the user-
generated queries will be
I thought it might be possible to use the ANALYZE EXPLAIN output to
make a "guestimation"
about the expected return time of the query.

I'd like to use this in my web-app to determine whether to run the
query in real-time (user waits
for results) or queue up the query (and notify the user once the query
is finished). E.g.:
  if (the Total runtime" reported by explain analyze is > n ms) {
      tell the user that his request was submitted for processing, and
notify the user once resuilts are available
  } else {
     run the query and wait for the results in real time.
  }

Thanks,
Alan

Re: how to use explain analyze

From
Julius Tuskenis
Date:
Hello, Alan

On 2011.10.25 17:12, alan wrote:
> I'm new to postgres and was wondering how to use EXPLAIN ANALYZE ....
>
> Can I use the output from ANALYZE EXPLAIN to estimate or predict the
> actual time
> it would take for a given query to return?
Explain analyze executes the query, so you get the actual execution time
(not always accurate as some extra job must be done while executing the
query to compute the rows and loops).
> I ask because I'm writing a typical web app that allows the user to
> build and submit a query
Be carefull about that idea - especially if a user can write custom
queries like "delete from important_table"
> Thanks,
> Alan
>


--
Julius Tuskenis
Programavimo skyriaus vadovas
UAB nSoft
mob. +37068233050