Поддержка  •  Дневник  •  Без рекламы  •  О сайте  •  Реклама  •  Поставить баннер  •  Прислать  •  Хроника  •  Translate Гости: 7    Участники: 0 Авторизация Авторизация   Регистрация 
Метод Научного Тыка
RULVEN
Поиск  
Blackball iMag | интернет-журнал
Каталог


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

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


Добавлено: Пн 27.12.2010 • Sergeant
Источник: источник
Просмотров: 1161
Комментарии: 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



Комментарии

Чтобы добавить видео с YouTube, нужно написать [@youtube=xxxxx] , где xxxxx – ID видео.


Комментарии: 0
Нет ни одного комментария.
RSS-лента
Поделиться ссылкой:
Анальный секс для начинающих Анальный секс для начинающих
Удаление грудей
Коктейль виски со Швепсом – оригинальные и согревающие рецепты Коктейль виски со Швепсом – оригинальные и согревающие рецепты
Советы пользователю. Телевизоры. Советы пользователю. Телевизоры.
Крошка-сын к отцу пришёл
Речной окунь в духовке — 5 самых вкусных рецептов Речной окунь в духовке — 5 самых вкусных рецептов
Заголовки для экспресс-газеты
Хатуль Мадан
И все же жаль, что я давно гудка не слышал заводского…
Минздрав предупреждает

Новое
HDMI или Display Port: в чëм разница, и чем лучше выводить изображение на монитор вчера, 09:06
HDMI или Display Port: в чëм разница, и чем лучше выводить изображение на монитор
300+ вопросов по JavaScript на собеседовании 3 дня назад, 09:03
300+ вопросов по JavaScript на собеседовании
25 простых и вкусных маринадов для рыбы Сб 27.04.2024
25 простых и вкусных маринадов для рыбы
Ср 24.04.2024
6 самых мощных немецких автомобилей с двигателем V8
Минусы профессии программиста, что не нравится в работе Пн 22.04.2024
Минусы профессии программиста, что не нравится в работе
15 потрясающих соусов для свиных рёбрышек Сб 20.04.2024
15 потрясающих соусов для свиных рёбрышек
5 ошибок при разработке высоконагруженных сервисов Ср 17.04.2024
5 ошибок при разработке высоконагруженных сервисов
Soft skills: 18 самых важных навыков, которыми должен владеть каждый работник Ср 17.04.2024
Soft skills: 18 самых важных навыков, которыми должен владеть каждый работник
30 вопросов на собеседовании фронтенд разработчика Пн 15.04.2024
30 вопросов на собеседовании фронтенд разработчика
Как работает спидометр в машине: вы всегда хотели это знать, но никто не мог объяснить на пальцах Вс 14.04.2024
Как работает спидометр в машине: вы всегда хотели это знать, но никто не мог объяснить на пальцах
Книги
Высоконагруженные приложения 2 дня назад, 10:15
Высоконагруженные приложения
Год: 2018
Refactoring with C# Вт 23.04.2024
Refactoring with C#
Год: 2023
Building IoT Visualizations using Grafana Вт 09.04.2024
Building IoT Visualizations using Grafana
Год: 2022
Getting Started with Grafana Вт 02.04.2024
Getting Started with Grafana
Год: 2022

Разработано на основе BlackNight CMS
Release v.2024-04-19
© 2000–2024 Blackball
Дизайн & программирование:
О сайтеРеклама
Visitors
Web-site performed by Sergey Drozdov
BlackballРекламаСтатистикаПоддержка | МузыкаПлейлистыКиноВидеоИгрыАудиоПрограммыСтатьиКартинкиЮморФорумДневник сайтаПрислать контент