Сообщение администратору
Имя:
Почта:
Сообщение:
Вход на сайт
Логин:
Пароль:

Статистика
Поделиться
Поддержка  •  Дневник  •  О сайте  •  Реклама  •  Поставить баннер  •  Прислать  •  Хроника  •  Translate  •  Рекомендованное  •  Написать администратору OpenToWork Гости: 7    Участники: 1 Авторизация Авторизация   Регистрация 
Метод Научного Тыка
RULVEN
Поиск  
RSS-лента
Поделиться ссылкой:

Начало » Разработка ПО » Microsoft SQL Server » Производительность триггеров

Производительность триггеров


Добавлено: Пн 27.12.2010 • Sergeant
Источник: источник
Просмотров: 1197
Комментарии: 0


Время выполнения триггера зависит от количества таблиц, указанных в триггере, и количеству записей, обрабатываемых во время запуска триггера. Поэтому всегда старайтесь уменьшить количество запрашиваемых таблиц и используемых записей в триггере.

Если триггер выполняет SELECT из таблиц, не забудьте включить необходимые индексы. Про запросы SELECT внутри триггера легко забыть. Однако использование индексов, как и для обычных запросов SELECT, может значительно повлиять на производительность. Одним их способов проверить это является запуск кода триггера в Query Analyzer и проверка результирующего плана выполнения. Это достаточно быстро поможет разобраться - нужно добавлять индексы или нет.

Если вы замечаете что операции INSERT, UPDATE или DELETE занимают дольше времени чем ожидается, то проверьте - используются ли триггеры для этой таблицы. Проблемы производительности могут возникать как раз из-за триггеров, а не из-за модификации данных самих по себе. Не забывайте настроить код триггера так же как и любой другой запрос. Так как триггер "скрыт", многие просто забывают о нем и не могут понять в чем может быть источник падения производительности. Вы можете использовать Profiler и Query Analyzer для того чтобы разобраться как триггеры действуют в вашей базе данных.

Не используйте триггер чтобы реализовать ссылочную целостность. В SQL Server встроена поддержка ссылочной целостности. Использовать ее намного лучше и быстрее чем заставлять триггер делать то же самое.

Если у вас есть выбор - использовать триггер или ограничение CHECK для реализации бизнес правил, то лучше всего использовать CHECK. Это ограничение работает быстрее чем триггер, проверяющий то же самое.

Старайтесь чтобы код триггера был минимальным. Это очень важно особенно для OLTP приложений, когда триггеры срабатывают во время операций INSERT, UPDATE или DELETE. Чем больше кода исполняет триггер, тем медленнее срабатывают операции модификации данных.

Избегайте делать откат транзакции в триггерах, так как это вызовет значительные издержки. Вместо этого пытайтесь откатить транзакцию еще до триггера, если ваш код позволяет это сделать. Подобный способ обработки транзакции займет намного меньше системных ресурсов. Обработку ошибок можно переложить в код запускающий транзакцию. Иногда достаточно добавить ограничение CHECK на таблицу. Если ограничение сработает и вызовет ошибку, то триггер не запустится.

Для реализации каскадной ссылочной целостности (например, каскадного удаления) в базе данных SQL 2000 используйте встроенную каскадную ссылочную целостность вместо триггеров, это более эффективно.

Иногда, для повышение производительности, нужно хранить денормализованные данные. Например, вам необходимо содержать агрегированные значения в таблице, иначе их расчет во время выполнения запроса занял бы длительное время. Одним из простых способов поддержки денормализованных данных является использование триггеров. Например, при добавлении записи в таблицу продаж SALES срабатывает триггер, который заносит данные в таблицу суммарных значений SalesTotal.



Мне нравится 0   Мне не нравится 0



Сейчас читают:
Участников (0) и гостей (0)




Комментарии: 0
Нет ни одного комментария.
Новое
Нашли, кого уволить. Microsoft массово избавляется от программистов – разработку Windows доверили искусственному интеллекту 2 дня назад, 12:16
Нашли, кого уволить. Microsoft массово избавляется от программистов – разработку Windows доверили искусственному интеллекту
ИИ прошёл Тьюринга, а ты — нет. Добро пожаловать в XXI век Вс 11.05.2025
ИИ прошёл Тьюринга, а ты — нет. Добро пожаловать в XXI век
Продуктивность растёт, а уважение падает — новая ловушка для фанатов ИИ Сб 10.05.2025
Продуктивность растёт, а уважение падает — новая ловушка для фанатов ИИ
Ваша современная Windows 11 по-прежнему содержит файл, созданный для запуска MS-DOS программ в 1993 году — и никто не знает, зачем Пт 09.05.2025
Ваша современная Windows 11 по-прежнему содержит файл, созданный для запуска MS-DOS программ в 1993 году — и никто не знает, зачем
Обзор внешней звуковой карты Creative Sound Blaster G8 Ср 07.05.2025
Обзор внешней звуковой карты Creative Sound Blaster G8
«Алло, это ИТ-отдел. Поставьте AnyDesk, сейчас быстренько вам кое-что поправим» Вт 06.05.2025
«Алло, это ИТ-отдел. Поставьте AnyDesk, сейчас быстренько вам кое-что поправим»
Бабл-ти: 16 простых и вкусных рецептов в домашних условиях Сб 03.05.2025
Бабл-ти: 16 простых и вкусных рецептов в домашних условиях
Как свойства древесины влияют на качество виски? Сб 03.05.2025
Как свойства древесины влияют на качество виски?
Сб 03.05.2025
Калорийность водки: что нужно знать
Как соцсети закрепляют искажения и превращают мнение в зеркало самого себя Сб 03.05.2025
Как соцсети закрепляют искажения и превращают мнение в зеркало самого себя
Книги
Web API Development with ASP.NET Core 8 Вт 25.03.2025
Web API Development with ASP.NET Core 8
Год: 2024
Azure Adventures with C# Вт 18.03.2025
Azure Adventures with C#
Год: 2024
Fundamentals of Enterprise Architecture Вт 11.03.2025
Fundamentals of Enterprise Architecture
Год: 2024
Pro .NET Memory Management, Second Edition Вт 04.03.2025
Pro .NET Memory Management, Second Edition
Год: 2024
Разработано на основе BlackNight CMS
Release v.2025-05-17
© 2000–2025 Blackball
Дизайн & программирование:
О сайтеРеклама
PULS.LV Professional rating system
Visitors
Web-site performed by Sergey Drozdov
BlackballРекламаСтатистикаПоддержка
МузыкаПлейлистыКиноВидеоИгрыАудиоПрограммыСтатьиКартинкиЮморФорумДневник сайтаПрислать контентРекомендованное
ЧасыLava LampWazeНастройка WindowsFleshlight
Complete your gift to make an impact
Buy Me A Coffee
Если вам понравился этот сайт и вы хотите меня поддержать, вы можете купить мне кофе. Спасибо!