|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
report generation from table.Hi All,
I have been searching for, Preparing report from a huge table. Queries am executing now are, SELECT count(*) from HUGE_TBL where cond1, cond2; SELECT count(*) from HUGE_TBL where cond1, cond3; --- like this i have different conditions(10-15 different things ) and different amount of conditions ( 2 - 5 condition ). As that is a very huge table, it took time to execute each query ( 2 min ). And finally it takes 15 times that ( 30 min ). Is there anyway to do the above report efficiently ? Such executing the query only once, and getting all different outputs required ? or fetching result from some cache ? Or i dont have any other way ?! |
|
|
Re: report generation from table.In response to sathiya psql :
> Hi All, > > I have been searching for, Preparing report from a huge table. > > Queries am executing now are, > SELECT count(*) from HUGE_TBL where cond1, cond2; > SELECT count(*) from HUGE_TBL where cond1, cond3; > --- like this i have different conditions(10-15 different things ) and > different amount of conditions ( 2 - 5 condition ). > > As that is a very huge table, it took time to execute each query ( 2 min ). And > finally it takes 15 times that ( 30 min ). Is there anyway to do the above > report efficiently ? > > Such executing the query only once, and getting all different outputs required > ? or fetching result from some cache ? select sum(case when <cond1> and <cond2> then 1 else 0 end) as query1, sum(case when <cond1> and <cond3> then 1 else 0 end) as query2, ... from table; It forces a whole seq. scan, but only once. Regards, Andreas -- Andreas Kretschmer Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header) -- Sent via pgsql-sql mailing list (pgsql-sql@...) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql |
|
|
Re: report generation from table.A. Kretschmer wrote: > In response to sathiya psql : >> Hi All, >> >> I have been searching for, Preparing report from a huge table. >> >> Queries am executing now are, >> SELECT count(*) from HUGE_TBL where cond1, cond2; >> SELECT count(*) from HUGE_TBL where cond1, cond3; >> --- like this i have different conditions(10-15 different things ) and >> different amount of conditions ( 2 - 5 condition ). >> >> As that is a very huge table, it took time to execute each query ( 2 min ). And >> finally it takes 15 times that ( 30 min ). Is there anyway to do the above >> report efficiently ? >> >> Such executing the query only once, and getting all different outputs required >> ? or fetching result from some cache ? > > select sum(case when <cond1> and <cond2> then 1 else 0 end) as query1, > sum(case when <cond1> and <cond3> then 1 else 0 end) as query2, ... from > table; > > > It forces a whole seq. scan, but only once. > > > Regards, Andreas Probably should check (analyse) the various queries separately to see if any of them scan the huge table. If one does scan the table, then give Andreas's plan should be fine. However, it's possible that your conditions are all hitting indexes and not scanning, in which case you may be better off as is. -- Sent via pgsql-sql mailing list (pgsql-sql@...) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql |
| Free embeddable forum powered by Nabble | Forum Help |