Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Корпоротивные ИС.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
442.37 Кб
Скачать

14. Sql запросы. Обработка запросов. Способы кэширования запросов. Организация транзакций

Обработка запросов.

Можно разделить запросы на два типа: кэшированные и некэшированные. Увидеть ход выполнения запроса можно в Query Analizer.

Некэшированные

    1. Анализ, проверка правильного синтаксиса.

    2. Проверка прав пользователя на выполнение операций.

    3. Определение целесообразности создания индексов и стратегии объединения.

    4. Перевод запроса в исполнительную форму.

    5. Обработка откомпилированного запроса.

Кэшированные

Способы кэширования запросов.

  1. Кэширование незапланированных запросов. Происходит автоматически. Если SQL Server встречает структуру уже выполненного запроса, то возможно использование КЭШа уже выполненного запроса. Кэш уникален от пользователя.

  1. Кэширование по спецификации. При помощи хранимой процедуры, которая называется SP_EXECUTESQL можно задать запрос и его параметр и сократить время на выполнение запросов. Применение кэширования по спецификации: использование сложных запросов, использующих агрегированные функции.

Организация транзакций.

  1. Перед началом транзакции база данных находится в согласованном состоянии.

  2. Приложение объявляет о начале транзакции. Этот процесс может быть инициирован явно с помощью оператора BEGIN TRANSACTION. Первый же оператор Transact SQL, исполняемый после завершения предыдущей транзакции, автоматически запускает новую транзакцию. В начале транзакции в журнал не заносится никаких записей; первая запись в журнале появляется при модификации данных.

  3. Приложение начинает производить по очереди модификации данных.

  4. Когда приложение достигает этапа, на котором все модификации успешно завершены, и база данных снова находится в согласованном состоянии, приложение фиксирует транзакцию. На этом этапе все сделанные модификации базы данных становятся постоянными.

  5. Если приложение обнаруживает ошибки, которые предотвращают завершение транзакции, оно выполняет отмену (откат) всех модификаций данных. Этот процесс возвращает базу данных к той точке, в которой она находилась до начала транзакции.

15. Хранимые процедуры в ms sql Server. Преимущества использования хранимых процедур. Обработка хранимых процедур. Синтаксис создания хранимых процедур

Сохраненная процедура – именованный набор операторов SQL, хранящийся на сервере.

Они позволяют:

  1. Включать группы операторов

  2. Вызывать другие сохраненные процедуры

  3. Принимать входные и возвращать выходные параметры

  4. Возвращать статус выполнения

Хранимые процедуры бывают

  • системные – хранятся в БД master и начинаются с префикса SP_

  • пользовательские сохраненные процедуры – хранятся в пользовательских БД

  • временные сохраненные процедуры – хранятся во временной БД tempdb и удаляются автоматически.

  • удаленные хранимые процедуры – хранимые процедуры других SQL Server.

  • расширенные системные сохраненные процедуры - в отличии от всех перечисленных представляют из себя созданные на других языках программирования и откомпилированные программы, которые могут быть вызваны из SQL Server.

Преимущества создания приложений.

  1. Совместное использование хранимых процедур и приложений.

Хранимые процедуры

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

  2. Автоматическое выполнение хранимых процедур при запуске SQL Server.

  3. Улучшенная производительность хранимых процедур.

Формальные запросы на SQL

Ответ-таблица

Вводим промежуточный уровень на котором прописаны SQL запросы, что позволяет снизить сетевой трафик.

Обработка сохраненных процедур.

Выполнение, рекомпиляция ХП. Изменилась версия схемы, изменились индексы; изменилась среда компиляции ХП, изменилась статистика таблиц или индекса на который ссылается ХП.

Оптимизация ХП:

  1. Выясняется объем данных таблиц в которых хранятся ХП.

  2. Выясняется наличие индексов.

  3. При оптимальном рассмотрении условия, формируется в приложении.

  4. Группировка.

Компиляция ХП – процесс анализа, сохраненных процедур и создание плана выполнения запроса. После план выполнения ХП помещается в кэш для повторного использования.

Синтаксис создания ХП.

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