MDO - Unidirectional

Firebird

19/08/2005

Se eu setar a propriedade UniDirectional para True haverá um ganho em peformance?

Quais seria as desvatagens?

[color=green:cda4c08045]Movido de Delphi para Interbase/Firebird[/color:cda4c08045]


Sistemald

Sistemald

Curtidas 0

Respostas

Beppe

Beppe

19/08/2005

A vantagem é que ele não aloca buffer para resultados.
A desvantagem é que ele não aloca buffer para resultados.


GOSTEI 0
Sistemald

Sistemald

19/08/2005

Vamos mais a fundo,

Quais as vantagens de se aloca buffer para resultados?

Quais as vantagens de se não aloca buffer para resultados?

Qual você utiliza?


GOSTEI 0
Afarias

Afarias

19/08/2005

|Quais as vantagens de se aloca buffer para resultados?

vc pode navegar os registros livremente para frente e para tras, pode usar componentes como DBGrid entre outros...


|Quais as vantagens de se não aloca buffer para resultados?

como não há o trabalho de alocar os recursos, a performance é maior


|Qual você utiliza?

cada um tem seu lugar. se a query é aberta apenas para processar registros (while not eof ...) então usa-se UniDirecional, mas se a query é usada num cadastro com DataControls (DBGrid, etc...) então UniDirecional = False.


T+


GOSTEI 0
Sistemald

Sistemald

19/08/2005

Obrigado pelas explicações, serão muito utils no desenvolvimento aqui na empresa.


GOSTEI 0
Beppe

Beppe

19/08/2005

|Qual você utiliza?

Uso dbExpress, que só oferece o modo unidirecional. Geralmente se usa em conjunto de TClientDataSet, que fará cache dos dados. Já usei uma vez somente DBX, mas o caso era simples, apenas inserts e while not eof.

Nunca testei a performance, mas meu chefe disse que o Zeos(faz buffer) não fica mais lento em relação ao DBX.


GOSTEI 0
Sistemald

Sistemald

19/08/2005

Eu estou utilizando o MDO, ele é um pouco mais lento que o IBX, mas é uma suite brasileira, e promete ter uns recursos interessantes como LoadDefaults e outros, e deverá manter a compatibilidade com as versões mais novas do Firebird.

Mais para frente vou fazer um teste de performance com mario meios de acesso.


GOSTEI 0
Raserafim

Raserafim

19/08/2005

se eu associar um DBGrid a um ClientDataSet (BIdirecional), tem alguma diferença em abilitar ou desabilitar este recurso (UniDirectional) na query?

se UniDirectional estiver como false a performance vai ser melhor mesmo com o ClientDataSet?


GOSTEI 0
Afarias

Afarias

19/08/2005

|se eu associar um DBGrid a um ClientDataSet (BIdirecional), tem
|alguma diferença em abilitar ou desabilitar este recurso (UniDirectional)
|na query?

se vai usar ClientDataSets sempre use Unidirecional = TRUE


|se UniDirectional estiver como false a performance vai ser melhor
|mesmo com o ClientDataSet?

para poucos registros a diferença na performance não é percebida, mas ainda assim vc vai estar usando mais recursos (memória) do q precisa.


T+


GOSTEI 0
POSTAR