MDO - Unidirectional
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]
Quais seria as desvatagens?
[color=green:cda4c08045]Movido de Delphi para Interbase/Firebird[/color:cda4c08045]
Sistemald
Curtidas 0
Respostas
Beppe
19/08/2005
A vantagem é que ele não aloca buffer para resultados.
A desvantagem é que ele não aloca buffer para resultados.
A desvantagem é que ele não aloca buffer para resultados.
GOSTEI 0
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?
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
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+
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
19/08/2005
Obrigado pelas explicações, serão muito utils no desenvolvimento aqui na empresa.
GOSTEI 0
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.
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
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.
Mais para frente vou fazer um teste de performance com mario meios de acesso.
GOSTEI 0
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?
se UniDirectional estiver como false a performance vai ser melhor mesmo com o ClientDataSet?
GOSTEI 0
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+
|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