quarta-feira, 30 de março de 2016

Performance: NESTED TRIGGERS - SQL SERVER

Hoje falaremos um pouco sobre performance:
Em especifico melhoras no modulo de NESTED TRIGGERS DO SQL SERVER


Configuração permite o uso ou não de triggers aninhadas. Por padrão é configurada a opção 1, que significa que o uso de triggers aninhadas está ativo. Sabemos que eles consomem uma boa parte do processamento de uma transação, então caso deseje que os desenvolvedores não usem este tipos de triggers, basta setar esta configuração para o valor 0.


EXEC SP_CONFIGURE 'nested triggers', 0
GO
RECONFIGURE WITH OVERRIDE
GO

Lição De Casa: https://msdn.microsoft.com/pt-br/library/ms190739

Se gatilhos aninhados forem permitidos e um gatilho na cadeia iniciar um loop infinito, o nível de aninhamento será excedido e o gatilho será encerrado. Podemos usar gatilhos aninhados para executar funções de manutenção úteis, como armazenar uma cópia de backup de linhas afetadas por um gatilho anterior.Por exemplo, você pode criar um gatilho em PurchaseOrderDetail que salva uma cópia de backup das linhas de PurchaseOrderDetail que o gatilho delcascadetrig excluiu.Com o gatilho delcascadetrig em vigor, excluirPurchaseOrderID 1965 de PurchaseOrderHeader exclui a linha correspondente dePurchaseOrderDetail.Para salvar os dados, você pode criar um gatilho DELETE emPurchaseOrderDetail que salva os dados excluídos em outra tabela criada separadamente,del_save. Por exemplo:
CREATE TRIGGER Purchasing.savedel
   ON Purchasing.PurchaseOrderDetail
FOR DELETE
AS
   INSERT del_save;
   SELECT * FROM deleted;

Nenhum comentário:

Postar um comentário