Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado

ola a todos. tenho a seguinte situacao:

uma tabela de nota fiscal e outra de itens da nota fiscal. um simples master detail ao editar ou inserir um item na detail e clicar em cancelar( dbnavigator ou via query.cancel )

dar um delay de 2 a 3 segundos so pra executar o cancel. sendo q a tabela de itens tem apenas 5 registros

 

alguem ja passou por isso, sabe com contornar, ja tentei de tudo quando forma as dicas da embarcadero.

ate me desfiz do lookup pra melhorar, criei um projeto a parte do zero so pra testar.

se alguem tiver usando dblookup campo virtual na query com firedac e puder dar umas dicas. ou voces costumam usar o campo FK + DESCRICAO DO FK tipo:

COD_CLIENTE , NOME_CLI ENTE NAS TABELAS E NAO FAZEM JOIN?

 

  • Consultores
Postado

Você precisa debugar e analisar onde o tempo está sendo gasto exatamente no código. Pode usar algum profiler, por exemplo.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

ja debuguei e fiz inumeros testes e cheguei a conclusao:

1 - com CACHED UPDATES - funciona muito bom 

2 - modo normal um simples edit e depois cancel na tabela( delay de 2 a 3 segundos so pra cancelar a edicao )

3 - testei com UNIDAC - nao precisei configurar nada, 10X mais rapido que o FIREDAC. mais nao convem fazer update da aplicacao toda.

 

  • 3 semanas depois ...
  • Membros Pro
Postado

Caro colega uma pergunta boba a sua tabela tem muitos registros? se sim existe índices nos campos que mais usado em join e em pesquisas?

Sérgio Guedes

LSI Sistemas

Postado (editado)

sim todas indexadas, tabela master com 21 mil registros.ja resolvir passei para UNIDAC( 10 X mais rapido que firedac ).

nem tudo nativo sao mil maravilhas. o unidac em termos fetch é muito mais poderoso que o firedac.

Editado por gss200610
  • Curtir 2
  • Moderadores
Postado

Monte as Tabelas assim :

CREATE TABLE NOTA (
    iCHAVENOTAFISCAL     BIGINT NOT NULL,
    iSERIE           	 INTEGER NOT NULL,
    iNNOTA               BIGINT NOT NULL,
    iCODIGODOCLIENTE     BIGINT NOT NULL
);

/******************************************************************************/
/***                              Primary Keys                              ***/
/******************************************************************************/

ALTER TABLE NOTA ADD CONSTRAINT PK_NOTA PRIMARY KEY (iCHAVENOTAFISCAL);

/******************************************************************************/
/***                                Indices                                 ***/
/******************************************************************************/

CREATE INDEX NOTA_IDX1 ON NOTA (iSERIE, iNOTA);

CREATE TABLE NOTA_IT (
    iREGISTRO           BIGINT NOT NULL,
    iCHAVENOTAFISCAL    BIGINT NOT NULL,
    sXPROD              varchar(50),
    sUNIDADE            varchar(10)
);

/******************************************************************************/
/***                              Primary Keys                              ***/
/******************************************************************************/

ALTER TABLE NOTA_IT ADD CONSTRAINT PK_NOTA_IT PRIMARY KEY (iREGISTRO);

/******************************************************************************/
/***                                Indices                                 ***/
/******************************************************************************/
CREATE INDEX NOTA_IT_IDX1 ON NOTA_IT (iCHAVENOTAFISCAL,iREGISTRO);

Obs :

iChavenotafiscal  -> Autoincremento na tabela nota.

iRegistro -> Autoincremento na tabela nota_it.

O select de Nota :

select * from nota order by iserie , inota

O Select de Nota_it :

select * from nota_it order by iChavenotaFiscal , iRegistro

 

 A ligação master detail  será:

    Nota.iChavenotafiscal --> Nota_it.iChavenotafiscal.

 

Estude bastante .. o meu exemplo , pois existente grandes pegadinhas para estudar .

 

 

 

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Postado

agradeço sua dica. mais isso ja faço, uso firebird a anos, o meu problema não é em logica e sim componente mesmo.

o mesmo teste feito com IBO , UNIDAC se sairam muito melhores que o firedac.

 

  • Moderadores
Postado

ok.  e se fizer  para :

O Select de Nota_it :


select * from nota_it  where iChavenotaFiscal = :iChavenotaFiscal order by iChavenotaFiscal , iRegistro

ainda ficar ruim ?

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

  • 1 mês depois ...
  • 2 anos depois...
  • Membros Pro
Postado
Em 16/02/2016 at 16:40, gss200610 disse:

agradeço sua dica. mais isso ja faço, uso firebird a anos, o meu problema não é em logica e sim componente mesmo.

o mesmo teste feito com IBO , UNIDAC se sairam muito melhores que o firedac.

 

Oi amigo,

Qual versão do Unidac você está utilizando. Estou com o mesmo problema.

Grato

Rodrigo Cardilo

Card System Info

[email protected]

  • 5 anos depois...

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.