Lentidão no Acesso aos Dados
Pessoal, criei uma tela de cadastro bem genérica... coloco os eventos de forma que, sirvam pra várias tabelas... então crio os formulários (usando herança) para fazer meus cadastros, alterações, exclusões, ect... de uma tabela.
O caso é que, para algumas tabelas, o sistema parece simplesmente PARAR. Ele demora até 10 segundos para abrir uma tela... e nem mesmo abro o dataset, nesse instante... e mesmo que estivesse abrindo, meus selects são desse tipo: select * from tabela where id = :id, sendo ID um campo chave primária, ou seja, traria apenas 1 registro por vez.
Uso eventos nos botões do tipo:
DsMatriz.Dataset.Append;
onde
DsMatriz = Datasource.
Então após criar cada formulário, atribuo o respectivo Dataset para o datasource (DsMatriz) e já tenho uma tela de cadastro pronta.
Alguém saberia me dizer o motivo dessa lentidão? Já aconteceu com algum de vocês??
O caso é que, para algumas tabelas, o sistema parece simplesmente PARAR. Ele demora até 10 segundos para abrir uma tela... e nem mesmo abro o dataset, nesse instante... e mesmo que estivesse abrindo, meus selects são desse tipo: select * from tabela where id = :id, sendo ID um campo chave primária, ou seja, traria apenas 1 registro por vez.
Uso eventos nos botões do tipo:
DsMatriz.Dataset.Append;
onde
DsMatriz = Datasource.
Então após criar cada formulário, atribuo o respectivo Dataset para o datasource (DsMatriz) e já tenho uma tela de cadastro pronta.
Alguém saberia me dizer o motivo dessa lentidão? Já aconteceu com algum de vocês??
Thomaz_prg
Curtidas 0
Respostas
Emerson Nascimento
02/12/2005
bom... quais são seus componentes de conexão? no dbx, a propriedade KeepConnection poderia causar esse pequeno transtorno. se ela estiver como False, quando não houver necesidade da conexão aberta (tabels em uso, etc) a conexão é encerrada, sendo refeita quando for aberta uma nova tabela (o que causa uma certa lentidão no sistema).
setando como True, a conexão será feita pela primeira solicitação e será mantida até o encerramento do programa, independente de terem tabelas abertas ou de serem feitas solicitações ao banco.
de qualquer forma há algo estranho, pois você afirma que ´e nem mesmo abro o dataset, nesse instante´. se você não abre, o problema é outro.
setando como True, a conexão será feita pela primeira solicitação e será mantida até o encerramento do programa, independente de terem tabelas abertas ou de serem feitas solicitações ao banco.
de qualquer forma há algo estranho, pois você afirma que ´e nem mesmo abro o dataset, nesse instante´. se você não abre, o problema é outro.
GOSTEI 0
Thomaz_prg
02/12/2005
O problema é que se tiro o dataset, ou seja, se deixo a propriedade dataset do datasource nula, volta ao normal... até mesmo para um simples Insert, o negócio tá parando... Coisa que normalmente não ocorre...
GOSTEI 0