русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Понятие хранимой процедуры


Дата добавления: 2015-07-09; просмотров: 691; Нарушение авторских прав


Задание 8

Использование хранимых процедур

Содержаниеработы.

1. Создание хранимой процедуры без параметров, которая возвращает простой набор данных. Эта процедура в работе будет использоваться как базовая.

2. Использование входных параметров.

3. Использование выходных параметров.

Создание (самостоятельно) хранимой процедуры для БД Sales с входными параметрами, подсчитывающую количество товаров во всех заказах, сделанных таким-то покупателем за такой-то период. Предварительно добавьте (если нужно) в БД три записи, две из которых относятся к заказам, сделанным указанным во входном параметре покупателем в указанный период времени. Протестируйте созданную процедуру.

Описание работы

Хранимая процедура - это инструмент, изначально предназначенный для оптимизации процесса извлечения данных.

Понятие хранимой процедуры

Хранимая процедура представляет собой запрос, хранящийся в базе данных SQL Server, а не в интерфейсном коде на клиентской машине. Зачем хранить запросы в базе данных на сервере? Причины здесь три:

производительность,

компилирование,

управление.

Как хранимые процедуры повышают производительность? Рассмотрим следующий запрос, который выводит все заказы из таблицы dbo.Orders базы данных Sales, сделанные на даты, начиная с 1 января 2008 года:

USE Sales

SELECT ProdID, Qty, OrdDate

FROM dbo.Sales

WHERE OrdDate > '1/1/2003'

ORDER BY OrdDate, ProdID

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

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



EXEC имя_хранимой_процедуры

Еще одно преимущество хранимых процедур касается компилирования запросов. Когда программа SQL Server компилирует запрос, она считыва­ет его, выискивает такие выражения, как JOIN и WHERE, и определяет, при исполь­зовании какого доступного индекса (если таковой есть) данные будут возвращаться быстрее всего. После определения самых быстрых индексов SQL Server создает план выполнения (представляющий собой набор инструкций запуска запроса) и сохраняет его в памяти. Нерегламентированные запросы практически всегда должны компилировать­ся при запуске, а хранимые процедуры — лишь раз, предварительно. Это означает, что хранимые процедуры практически всегда уже имеют свой план выполнения в памяти. Соответственно, они выполняются быстрее нерегламентированных запросов.

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

Если запрос запускается редко (нерегла­ментированный запрос), нет реальной необходимости создавать хранимую процедура на сервере. Если же пользователи запускают некоторый запрос регулярно, то имеет смысл создать для него хранимую процедуру.

Самая простая хранимая процедура возвращает результаты, не требуя никаких па­раметров. В этом плане она похожа на запрос.

Данная хранимая процедура будет предназначена для извлечения информации обо всех заказах из таблицы dbo.Orders базы данных Sales, сделанные на даты, начиная с 1 января 2008 года.

1. Откройте SQL Server Management Studio. В окне Object Explorer разверните папки сервера Databases=> Sales=> Programmability.

2. Щелкните правой кнопкой на папке Stored Procedures и выберите команду New Stored Procedure. Откроется редактор запросов SQL Server с шаблоном запроса на создание хранимой процедуры.

3. В предложении CREATE PROCEDURE введите имя процедуры: Show_Orders.

4. В секции Add the parameters for the stored procedure here закомментируйте (или удалите) шаблоны параметров.

5. В секции Insert statements for procedure here измените код, чтобы он выглядел следующим образом (рис.1).

SELECT ProdID, Qty, OrdDate

FROM dbo.Sales

WHERE OrdDate > '1/1/2003'

ORDER BY OrdDate, ProdID

 

Рис.1. Создание хранимой процедуры

6. Чтобы сохранить процедуру, щелкните на кнопке Save панели инструментов и в раскрывшемся окне введите имя процедуры: Show_Orders.

7. Чтобы протестировать новую процедуру, откройте новый запрос SQL Server и
выполните следующий код (рис.2).

USE Sales

EXEC dbo.Show_Orders

8. Закройте окно запроса.

 

Рис.2. Результат выполнения хранимой процедуры

Теперь для получения информации пользователи будут пересылать по сети всего лишь одну строку кода (EXEC Show_Orders) вместо пяти. как было перед созданием процедуры.

Единственная проблема, связанная с хранимыми процедурами, состоит в статич­ности всех значений. Если пользователям потребуются данные о продажах с 1 января 1998 года, то эта процедура им не поможет — им придется создавать нерегламентированный запрос.



<== предыдущая лекция | следующая лекция ==>
Модификация данных через представление | Использование входных параметров


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.795 сек.