Есть много факторов, которые вступают в игру в отношении того, как быстро происходит вставка/обновление/удаление. Например, сколько индексов находится в таблице? Если таблица содержит много индексов, и вы вставляете/обновляете таблицу, это может привести к тому, что операция займет больше времени. Как хранятся данные в физических структурах базы данных (т. Е. Табличные пространства, если вы используете Oracle, например)? Являются ли ваши индексы и данные отдельными дисками, что может помочь ускорить ввод-вывод?
Очевидно, что если вы записываете записи аудита, это может повлиять на производительность. Но в хорошо настроенной базе данных она не должна замедлять ее настолько, чтобы вы заметили.
Подход, который я использую для таблиц аудита, заключается в использовании триггеров на основных таблицах, и эти триггеры записывают записи аудита. Но с точки зрения производительности, это действительно зависит от множества факторов в отношении того, насколько быстро будут обновляться ваши основные таблицы.
Я бы рекомендовал посмотреть вывод плана объяснения для одного из ваших медленных обновлений, если вы используете Oracle (в других БД обычно есть такие инструменты, как google может помочь здесь). Затем вы можете увидеть, какой план оптимизатор генерирует и диагностировать, где могут быть проблемы. Вы можете потенциально получить DBA, чтобы помочь вам, чтобы помочь выяснить, что вызывает медленность.
Почему? Вы хотите сказать, что {удалить все из таблицы (с 10.000)} займет то же время, что и {удалить все из таблицы (с 10.000.000)}> «вообще говоря, ответ не« <вы абсолютно НЕПРАВИЛЬНЫ! – magulla