Encontrei isto no manual: 36.7.1.2 RETURN NEXT
Note The current implementation of RETURN NEXT for PL/pgSQL stores the entire result set before returning from the function, as discussed above. That means that if a PL/pgSQL function produces a very large result set, performance may be poor: data will be written to disk to avoid memory exhaustion, but the function itself will not return until the entire result set has been generated. A future version of PL/pgSQL may allow users to define set-returning functions that do not have this limitation. Currently, the point at which data begins being written to disk is controlled by the work_mem configuration variable. Administrators who have sufficient memory to store larger result sets in memory should consider increasing this parameter --- Joao <[EMAIL PROTECTED]> escreveu: > eu acho q depende como vc escreveu sua SP > ----- Original Message ----- > From: "marlon david de souza" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Thursday, May 04, 2006 2:56 PM > Subject: Re: [PostgreSQL-Brasil] Otimização de > consulta > > > Creio que não fui bem entendido. > Para ficar mais claro, segue abaixo um exemplo: > > - Consulta executada no Firebird: > > select first 1 * from LISTA_CLIENTES('todos'); /* > stored-procedure que > retorna 10.000 linhas. */ > > Ao executar o comando acima, usando o utilitário > ISQL, a resposta me é > dada > em menos de 1 segundo. > > > - Consulta executada no PostgreSQL: > > select * from LISTA_CLIENTES('todos') limit 1; /* > função que retorna > 10.000 > linhas. */ > > Ao executar o comando acima, usando o utilitário > PSQL, a resposta me é > dada > em cerca de 2 minutos. > > > A diferença de tempo ocorre porque o Firebird não > espera a SP terminar > para > então dar uma resposta. Já o Post espera a função > terminar para então dar a > resposta. > > Em Qui 04 Mai 2006 19:45, Giancarlo Rubio escreveu: > > marlon david de souza disse: > > > Boa tarde a todos, > > > > > > No Firebird, ao realizar consultas contendo a > cláusula "first", mas > > > sem > > > usar ordenação (order by), é retornado quase > que instantaneamente as > > > linhas > > > selecionadas. > > >Isso porque o Firebird não espera que a consulta > termine > > > para > > > então retornar as primeiras "N" linhas. Já no > Postgres isso não > > > acontece, visto que ele executa toda a consulta > para então retornar o > > > que > > > foi determinado. > > > > Ja leu a documentacao?? > > > > Td q firebird faz o postgresql faz e melhor.. > > > > >Por causa disso temos casos no sistema que, com o > Firebird, > > > um > > > processo leva 1 segundo para processar enquanto > que no Postgres leva > > > mais > > > de > > > 2 minutos. > > > Alguém tem conhecimento se existe alguma > previsão de que futuramente o > > > Postgres passe a trabalhar de forma semelhante? > > > > Ja faz tempo q utiliza isso desde os tempos de > postgres se nao me engano > > > > > Caso não exista, alguém que tenha acesso > poderia sugerir essa > > > implementação > > > para os desenvolvedores do Post? > > > > Select linha1 FROM tabelax LIMIT 1 > > > > Uauuuuuuuuuuuuuuuuuuu > > > > Select linha1 FROM tabelax LIMIT 1 OFFSET 30 > > > > (apenas 1 linha iniciando da linha 30 > > > > Giancarlo Rubio > > > > > Sem mais, > > > > > > ---------------------- > > > Marlon David de Souza > > > Desenvolvimento > > > Sysmo Informática Ltda > _______________________________________________ > Grupo de Usuários do PostgreSQL no Brasil > http://www.postgresql.org.br > > _______________________________________________ > Grupo de Usuários do PostgreSQL no Brasil > http://www.postgresql.org.br > _______________________________________________________ Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz. http://br.info.mail.yahoo.com/ _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil http://www.postgresql.org.br
