Abstract:
Czy wyzwalacze są rzeczywiście mało wydajne? To jedna z wielokrotnie powtarzanych tez dotyczących wyzwalaczy bazodanowych. W pracy spróbowano przeanalizować narzut na czas realizacji poleceń SQL najczęściej występujących wyzwalaczy, czyli wyzwalaczy DML. Zrealizowanie 9 scenariuszy zajęło prawie 26 godzin czasu pracy BD. Przebadano różne sposoby uzupełniania identyfikatorów, sposoby walidacji skomplikowanych wymagań biznesowych dla wprowadzanych danych, wydajność wyzwalaczy w celach audytowych, różnice między wyzwalaczami tabelarycznymi i wierszowymi, sposoby wzbogacenia danych oraz metody rozwiązania problemu tabel mutujących przy pomocą pakietów pomocniczych oraz Compound Trigger. Eksperymenty w pełni zostały wykonane za pomocą skryptów PL/SQL. Każda opcja w każdym ze scenariuszy została wykonana w pętli z minimum 40 iteracjami. Jednym z głównych problemów, było stworzenie jak najbardziej realnych scenariuszy oraz określenie wolumenów danych. W zależności od scenariusza wyzwalacze okazywały się czasem lepszym, a czasem gorszym rozwiązaniem. Zastosowanie wyzwalaczy okazało się wydajniejsze m.in. w przypadku uzupełnienia identyfikatorów oraz walidacji danych. To pokazało, że to nie wyzwalacze są mało wydajne, a sposoby wykorzystania tej technologii.