- Совместное использование хранимых процедур и приложений.
Хранимые процедуры
- Возможная реализация дополнительных механизмов защиты. К хранимым процедурам доступ пользователь не имеет. Пользователю запрещено чтение из таблицы, но благодаря хранимой процедуре эта возможность появляется.
- Автоматическое выполнение хранимых процедур при запуске SQL Server.
- Улучшенная производительность хранимых процедур.
Формальные запросы на SQL
Ответ-таблица
Вводим промежуточный уровень на котором прописаны SQL запросы, что позволяет снизить сетевой трафик.
Обработка сохраненных процедур.
Выполнение, рекомпиляция ХП. Изменилась версия схемы, изменились индексы; изменилась среда компиляции ХП, изменилась статистика таблиц или индекса на который ссылается ХП.
Оптимизация ХП:
- Выясняется объем данных таблиц в которых хранятся ХП.
- Выясняется наличие индексов.
- При оптимальном рассмотрении условия, формируется в приложении.
- Группировка.
Компиляция ХП – процесс анализа, сохраненных процедур и создание плана выполнения запроса. После план выполнения ХП помещается в кэш для повторного использования.
Синтаксис создания ХП.
Create procedure имя_процедуры
Имя процедуры не должно начинаться с префикса sp.
@параметр тип данных = значение по умолчанию output
as
операторы SQL
Вызов процедуры.
Exec имя_процедуры параметры
Project Worker
Id_project id_worker
Name name
Boss spec
Deadline status
Create proc p1
As
Select distinct worker.name from worker, project
Where worker.id_worker = project.boss
Триггеры в MS SQL Server. Использование триггеров. Правила использования триггеров. Принцип работы триггеров
Триггеры.
Особенный тип хранимой процедуры автоматически выполняемый при изменении данных в защищенной таблице. Бывают следующих типов:
- срабатывает при вставке в таблицу;
- срабатывает при изменении в таблице;
- срабатывает при удалении из таблицы.
Вызов происходит неявным способом, не используя специальные команды.
Каждый триггер определяется для конкретной таблицы. Каждый триггер выполняется как единая транзакция даже без явного задания триггера. Возможно использование нескольких операторов RollBack.