Performance - ClientDataSet Query UpdateSQL
22/01/2006
0
Gostaria de obter informações sobre performance de uma query ligada um clietdataset.
Estou usando uma query conectada a um datasetprovider que por sua vez está conectada a um clientdataset, a propriedade RequestLive da query está definida como true, diz-se que com esta propriedade setada dessa forma perde-se em performance.
Baseado nisso gostaria de saber se usando um updatesql ligado a essa query (permitindo que coloque o RequestLive como false) ligado ao provider e por ultimo ligado ao clietdaset, eu ganharia mais em performance? ou a performance permaneceria a mesma visto que estou usando clientdataset que por sí só já possui uma performance melhor?
Agradeço a cooperação
Gardel
Posts
22/01/2006
Vinicius2k
Na verdade, não creio que você necessite de setar RequestLive para True. Você já tentou sem? O set feito por você é exclusivamente para que a Query seja atualizável?
Se sim, até aonde eu sei, isto não é necessário quando se utiliza Midas (TDataSetProvider + TClientDataSet). Digo ´até aonde eu sei´ porque nunca trabalhei com BDE + Midas. Como você não mencionou a camada de acesso, apenas o RequestLive, suponho que seja BDE.
Se não, seria bom você dar mais detalhes sobre como está trabalhando os dados, o porque do RequestLive := True, para que tentemos lhe ajudar a melhorar a performance.
23/01/2006
Gardel
Ligo a zconnection com uma zquery o provider na zquery e o clientdataset no provider... até ai tudo certo...
Mas se deixo requestlive como false a seguinte mensagem de erro é apresentada:
ZQuery1: Cannot modify a read-only dataset.
Se seto RequestLive para true ele faz tudo certinho...
Mas até onde sei, quem trata diretamente de atualizações, inserções e exclusões é provider, ele trata direto com o bd, nesse caso a query só funciona como um provedor para que o clientdataset saiba que campos usar, isso é estranho parece que a query é quem ta tratando com o bd, pq para necessitar de requestlive ela precisa atualizar dados no bd...
Me corrijam se eu estiver errado...
Preciso de ajuda.
Agradeço desde já
23/01/2006
Vinicius2k
Até a última versão estável da Zeos (6.1.5-stable) ela não dava suporte à Midas. Inclusive isto é mencionado pelos autores no ´KnowBugs´.
Não sei qual versão você está utilizando, se for até a 6.1.5-stable a razão do erro é essa. Se for mais nova (6.5.1-alpha), e ela já oferecer suporte, *deve* ser um bug.
Suas considerações sobre a Midas estão corretas. A Query é um mero ´coadjuvante´.
T+
24/01/2006
Gardel
Estou usando a 6.5.1-stable, dei uma olhada nos bugs conhecidos e realmente está lá, fui dar uma olhada no site do zeos, achei que ta muito bugado mesmo essa versão alpha, até pq é ainda é alpha né :D...
Nesse caso tenho que ver uma outra alternativa de conexão, o que vc recomenda, preciso de algo free e que me de garantias futuras que eu vo ter conexão, por exemplo não gostaria de investir em ibx pq não tenho garantia que essa biblioteca vai ser compativel com o firebird 2.0 por exemplo, exatamente por isso optei por zeos...
Se vc tiver alguma sugestão, por favor me informe...
Agradeço muito a sua ajuda...
24/01/2006
Vinicius2k
O método de conexão mais seguro quanto a isto é ADO+ODBC.
Isto porque os times de desenvolvimento de todos os SGBDs sempre desenvolvem um driver ODBC,com certeza, compatível com a versão atual do SGBD.
T+
25/01/2006
Gardel
Mas qdo se usa odbc num se perde em performance?
Essa perda é muito grande?
Porque caso a performance seja muito prejudica, estou cogitando a possibilidade de usar ibx mesmo.
Agradeço,
Até mais
25/01/2006
Thomaz_prg
Realmente, utilizando-se ODBC perde-se em performance para os componentes nativos. Porém essa perda não é muito grande não.
Se seu sistema for bem elaborado, você praticamente não notará a diferença.
Clique aqui para fazer login e interagir na Comunidade :)