Классика баз данных - статьи

       

Для триггеров имеется много ограничений


Для триггеров имеется много ограничений (например, число триггеров, ассоциируемых с одной таблицей), и отсутствует какой-либо способ гарантирования безопасности набора триггеров (т.е. гарантирования того, что при выполнении триггеров не образуется бесконечный цикл). Во всех системах имеется очень ограниченная (или отсутствует вовсе) поддержка программирования триггеров. Например, невозможно увидеть, какие триггеры уместны для данного приложения, и отсутствует возможность добавления триггера к таблице средствами графического пользовательского интерфейса. Кроме того, виртуальные и материализованные представления могут определяться для обычных таблиц, но не для триггеров. Наконец, в существующих серверах триггеры часто вызывают проблемы производительности. Когда инженеры StreamBase попытались применить триггеры в приложении Feed Alarm, они не смогли обработать более 900 сообщений в секунду. В целом, триггеры встраивались в существующие разработки задним умом, и в существующих системах они являются жителями второго сорта.

По-другому это различие можно представить следующим образом. Серверы с выходной обработкой сначала сохраняют данные, а затем выполняют запросы над этими данными. Системы же с входной обработкой сначала сохраняют запросы, а затем пропускают сквозь эти запросы входящие данные (сообщения).

Хотя представляется возможным сконструировать некоторый сервер, который могли бы функционировать и в режиме входной обработки, и в режиме выходной обработки, для этого требуется дополнительная исследовательская работа. В настоящее время СУБД оптимизируются для выходной обработки, а системы обработки потоковых данных – для выходной обработки. В приложении Feed Alarm это отличие в подходе во многом способствовало получению существенного выигрыша в производительности.


Содержание  Назад  Вперед