Re: Optimization in C

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: Optimization in C
Дата
Msg-id Pine.BSF.4.10.10008170853030.96893-100000@megazone23.bigpanda.com
обсуждение исходный текст
Ответ на Optimization in C  (Jerome Raupach <jraupach@intelcom.fr>)
Список pgsql-hackers
Is the thing you're trying to do really different from
SELECT service, noeud, rubrique, sum(date) FROM table
group by service, noeud, rubrique, assuming table is the 
same in both queries of course.

Also, since you aren't distincting the outside query, wouldn't
you be doing the same sequence of service, noeud and rubrique
more than once in the inner loop if it had more than one date 
(if it's only got one, why bother summing?)

Stephan Szabo
sszabo@bigpanda.com

On Thu, 17 Aug 2000, Jerome Raupach wrote:

> This solution isn't good when there are +10000 tuples in the table, it's
> slowly...
> anybody can help me ? :
> 
> 
>         string = "SELECT service, noeud, rubrique FROM table" ;
>         res = PQexec( conn, string.data() ) ;
>         if ( (! res) || (status = PQresultStatus( res ) !=
> PGRES_TUPLES_OK) )
>         {
>                 cerr << _ERROR << "Problem SELECT ! " << endl ;
>                 cerr << _ERROR << "Error : " << PQresStatus( status ) <<
> endl ;
>                 cerr << _ERROR << "Error : " << PQresultErrorMessage(
> res ) << endl ;
>                 PQclear( res ) ;
>         }
>         else
>         {
>                 for (int m=0; m < PQntuples( res ); m++)
>                 {
>                         service = PQgetvalue( resultat1, m, 0 ) ;
>                         noeud = PQgetvalue( resultat1, m, 1 ) ;
>                         rubrique = PQgetvalue( resultat1, m, 2 ) ;
> 
>                         commande = "SELECT SUM(date) FROM table WHERE
> service='" + service +
> "' AND noeud='" + noeud + "' AND rubrique='"+ rubrique + "'" ;
>                         res1 = PQexec( conn, string.data() ) ;
>                         if ( (! res1) || (status = PQresultStatus( res1
> ) != PGRES_TUPLES_OK)
> )
>                         {
>                                 cerr << _ERROR << "Problem SUM ! " <<
> endl ;
>                                 cerr << _ERROR << "Error : " <<
> PQresStatus( status ) << endl ;
>                                 cerr << _ERROR << "Error : " <<
> PQresultErrorMessage( res1 ) << endl
> ;
>                                 PQclear( res1 ) ;
>                         }
>                         else
>                         {
>                                 cout << _TRACE << "SUM ok." << endl ;
>                                 PQclear( res1 ) ;
>                         }
>                 }
>                 PQclear( res ) ;
>         }
> 
> Thanks. jerome.
> 




В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Ross J. Reedstrom"
Дата:
Сообщение: Re: Large # of Tables, Getting ready for the enterprise
Следующее
От: Andrew Selle
Дата:
Сообщение: Inserting a select statement result into another table