[firebase-br] Cursores FB RC5

Marciano Bandeira marciano.bandeira em bol.com.br
Qui Out 5 00:35:38 -03 2006


Salve lista

Após a decepção com os cursores no fb 2.0 rc 4 com relação ao for select, uma surpresa o mesmo teste realizado no fb 2.0 rc5, o tempo de fetch nas duas maneiras foi praticamente o mesmo.

Teste feito no rc5

Create Table Clientes
(
  CODIGO Integer,
  NOME VarChar(40)
)

foi inserido um milhão de registros nesta tabela...
... teste feito com For Select

Execute Block
Returns
  (
    CODIGO Integer,
    NOME   VarChar(40)
  )
As
Begin
  For Select
    *
  From
    Clientes
  Into
    :CODIGO,
    :NOME
  Do
    Suspend;
end

Prepare time = 0ms
Execute time = 34s 656ms
Avg fetch time = 0,03 ms




teste feito com cursores...

Execute Block
Returns
  (
    CODIGO Integer,
    NOME   VarChar(40)
  )
As
declare variable c cursor for (Select * From Clientes);
Begin
  Open c;

  Fetch c into :CODIGO,:NOME;
  While (row_count > 0) Do
    begin
      Suspend;
      Fetch c into :CODIGO,:NOME;
    end

  Close c;
end

Prepare time = 16ms
Execute time = 28s 422ms
Avg fetch time = 0,03 ms


PS:
O Mesmo teste feito no RC4, o cursor demorou mais ou menos uns 4 minutos pra trazer todos os registros, ja o for select foi questão de uns 30 e alguma coisa segundos (se naum me falha a memória).
Acabei de instalar o RC5 e ainda nao li o release notes, vou fazer isso, mais alguém sabe se houve alguma melhoria na performance dos cursores?

Grato 
Marciano Bandeira


Mais detalhes sobre a lista de discussão lista