[firebase-br] Log em uma tabela diferente
Firebase
firebase em dominioinf.com.br
Qui Dez 22 09:27:37 -03 2016
Bom dia,
Enviei uma mensagem anterior, mas não apareceu aqui na lista, ficou
aguardando aprovação.
Entao estou enviando como estou fazendo na trigger, para verificar se é por
esse motivo a lentidão.
Estou fazendo dessa forma:
CREATE TRIGGER DML_COR_L_U FOR COR
ACTIVE AFTER UPDATE POSITION 32767
AS
DECLARE VARIABLE VAR_ID NUMERIC(18,0);
DECLARE VARIABLE USER_NAME VARCHAR(31);
DECLARE VARIABLE CAMINHO VARCHAR(255);
BEGIN
USER_NAME = USER;
SELECT CAMINHOBD FROM EMPRESA where CAMINHOBD IS NOT NULL INTO :CAMINHO;
EXECUTE PROCEDURE P_INSERTINTOIBLM$OPERATIONLOG (:USER_NAME, 'COR',
'UPDATE', 'CODIGO', OLD.CODIGO, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, CURRENT_TRANSACTION, CURRENT_CONNECTION, rdb$get_context('SYSTEM',
'CLIENT_ADDRESS'), rdb$get_context('SYSTEM', 'NETWORK_PROTOCOL'),
rdb$get_context('SYSTEM', 'DB_NAME'), rdb$get_context('SYSTEM',
'ISOLATION_LEVEL')) RETURNING_VALUES :VAR_ID;
IF ((OLD.CODIGO IS DISTINCT FROM NEW.CODIGO)) THEN BEGIN
EXECUTE STATEMENT('INSERT INTO IBLM$COLUMNLOG (ID, OPERATIONLOG_ID,
COLUMN_NAME, OLD_VALUE, NEW_VALUE, OLD_VALUE_BLOB, NEW_VALUE_BLOB)
VALUES(GEN_ID(GEN_IBLM$COLUMNLOG_ID, 1), ?, ?, ?, ?, ?, ?)')
(:VAR_ID, 'CODIGO', OLD.CODIGO , NEW.CODIGO, NULL, NULL)
ON EXTERNAL :CAMINHO AS USER 'SYSDBA' PASSWORD 'masterkey' WITH AUTONOMOUS
TRANSACTION;
END
IF ((OLD.COR IS DISTINCT FROM NEW.COR)) THEN BEGIN
EXECUTE STATEMENT('INSERT INTO IBLM$COLUMNLOG (ID, OPERATIONLOG_ID,
COLUMN_NAME, OLD_VALUE, NEW_VALUE, OLD_VALUE_BLOB, NEW_VALUE_BLOB)
VALUES(GEN_ID(GEN_IBLM$COLUMNLOG_ID, 1), ?, ?, ?, ?, ?, ?)')
(:VAR_ID, 'COR', OLD.COR , NEW.COR, NULL, NULL)
ON EXTERNAL :CAMINHO AS USER 'SYSDBA' PASSWORD 'masterkey' WITH AUTONOMOUS
TRANSACTION;
END
IF ((OLD.EMPRESA IS DISTINCT FROM NEW.EMPRESA)) THEN BEGIN
EXECUTE STATEMENT('INSERT INTO IBLM$COLUMNLOG (ID, OPERATIONLOG_ID,
COLUMN_NAME, OLD_VALUE, NEW_VALUE, OLD_VALUE_BLOB, NEW_VALUE_BLOB)
VALUES(GEN_ID(GEN_IBLM$COLUMNLOG_ID, 1), ?, ?, ?, ?, ?, ?)')
(:VAR_ID, 'EMPRESA', OLD.EMPRESA , NEW.EMPRESA, NULL, NULL)
ON EXTERNAL :CAMINHO AS USER 'SYSDBA' PASSWORD 'masterkey' WITH AUTONOMOUS
TRANSACTION;
END
IF ((OLD.CODEMPRESA IS DISTINCT FROM NEW.CODEMPRESA)) THEN BEGIN
EXECUTE STATEMENT('INSERT INTO IBLM$COLUMNLOG (ID, OPERATIONLOG_ID,
COLUMN_NAME, OLD_VALUE, NEW_VALUE, OLD_VALUE_BLOB, NEW_VALUE_BLOB)
VALUES(GEN_ID(GEN_IBLM$COLUMNLOG_ID, 1), ?, ?, ?, ?, ?, ?)')
(:VAR_ID, 'CODEMPRESA', OLD.CODEMPRESA , NEW.CODEMPRESA, NULL, NULL)
ON EXTERNAL :CAMINHO AS USER 'SYSDBA' PASSWORD 'masterkey' WITH AUTONOMOUS
TRANSACTION;
END
END
;
Tem uma para delete e uma para insert também, mas a extrutura é bem
parecida.
Será que estou fazendo algo errado?
Grato
-----Mensagem Original-----
From: Marcos Weimer
Sent: Monday, December 19, 2016 8:09 AM
To: FireBase
Subject: Re: [firebase-br] Log em uma tabela diferente
Estranho a lentidão, aqui temos base com mais de 10gb e o lag é mínimo
-=Ma®©oS=-
Marcos R. Weimer
Delphi / C# / ASP.NET / PHP / WebServices / Firebird
Em 17 de dezembro de 2016 10:04, Firebase <firebase em dominioinf.com.br>
escreveu:
> Bom dia Marcos,
>
> Fiz as alterações necessárias aqui, deu bastante trabalho, mas ufa,
> consegui.
>
> O log passou a realizar operações em tabelas externas.
>
> No meu computador a principio ficou super rapido, mas coloquei em produção
> em alguns clientes
>
> e ficou muito lento. Pra lançar um item por exemplo tava chegando a levar
> até 15 segundos, mesmo no
>
> servidor.
>
> Sera que tem que ajustar alguma coisa ainda? Ou tem algum outro meio de
> não demorar tanto?
>
> Grato
>
>
>
> -----Mensagem Original----- From: Marcos Weimer
> Sent: Wednesday, December 14, 2016 2:14 PM
>
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas:
http://www.firebase.com.br/pesquisa_lista.html
---
Este email foi escaneado pelo Avast antivírus.
https://www.avast.com/antivirus
Mais detalhes sobre a lista de discussão lista