Śledzenie wykonań wyzwalacza
Jednym z ważnych elementów monitorowania wyzwalaczy jest przechowywanie historii ich wykonań. Dzięki temu możesz powiązać momenty uruchomienia wyzwalaczy z problemami, które pojawiają się w bazie danych.
Jeśli czasy się pokrywają, istnieje możliwość, że problemy zostały spowodowane przez wyzwalacz.
SQL Server udostępnia informacje o wykonaniu wyzwalaczy aktualnie przechowywanych w pamięci w widoku sys.dm_exec_trigger_stats. Jednak gdy wyzwalacz zostanie usunięty z pamięci, wszelkie informacje o nim znikają również z tego widoku – tracisz wtedy historię jego wykonań.
Aby obejść to ograniczenie, postanawiasz skorzystać z tabeli TriggerAudit do zapisywania informacji o każdej próbie modyfikacji wierszy w tabeli Orders, ponieważ użytkownicy zgłaszają, że tabela często przestaje odpowiadać.
To ćwiczenie jest częścią kursu
Tworzenie i optymalizacja triggerów w SQL Server
Instrukcje do ćwiczenia
- Zmodyfikuj wyzwalacz
PreventOrdersUpdate. - Ustaw wyzwalacz tak, aby uruchamiał się przy aktualizacji wierszy w tabeli
Orders. - Dodaj dodatkowe informacje o wykonaniu wyzwalacza do tabeli
TriggerAudit.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- Modify the trigger to add new functionality
___ TRIGGER PreventOrdersUpdate
ON ___
-- Prevent any row changes
INSTEAD OF ___
AS
-- Keep history of trigger executions
INSERT INTO ___ (TriggerName, ExecutionDate)
SELECT 'PreventOrdersUpdate',
GETDATE();
RAISERROR ('Updates on "Orders" table are not permitted.
Place a new order to add new products.', 16, 1);