[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