Хранимые процедуры как один из способов повышения производительности информационной системы | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 29 января, печатный экземпляр отправим 2 февраля.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №44 (334) октябрь 2020 г.

Дата публикации: 28.10.2020

Статья просмотрена: 35 раз

Библиографическое описание:

Абсатаров, Р. Н. Хранимые процедуры как один из способов повышения производительности информационной системы / Р. Н. Абсатаров. — Текст : непосредственный // Молодой ученый. — 2020. — № 44 (334). — С. 4-5. — URL: https://moluch.ru/archive/334/74556/ (дата обращения: 19.01.2022).



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

Ключевые слова: хранимая процедура, база данных, производительность.

Ни одно достаточно сложное приложение применяющее, базу данных, не обходится без использования хранимых процедур.

Хранимая процедура представляет собой подпрограмму, хранящуюся в базе данных. Такая подпрограмма может иметь набор входных параметров, а результатом ее работы является ряд манипуляций над базой данных: добавление, удаление, редактирование, просмотр хранимых записей.

Применение хранимых процедур позволяет управлять достаточно сложной бизнес-логикой на стороне СУБД, снижая тем самым нагрузку на клиентскую часть приложения и сокращая трафик, передаваемый по сети между клиентом и сервером [1].

Хранимые процедуры позволяют отказаться от использования внешних скриптов, при автоматизации сложных процессов на уровне MySQL. Такой подход имеет высокую скорость выполнения, благодаря снижению количества отправляемых запросов [2]. Достаточно всего лишь вызвать необходимую процедуру.

Преимущества использования хранимых процедур:

  1. Разделение логики выполнения с другими программами. Хранимые процедуры инкапсулируют функциональность, это обеспечивает связность между данными и управления ими между собой.
  2. Изоляция пользователя от таблиц, что способствует защите базы данных и обеспечивает доступ не к данным из базы, а к хранимым процедурам. Обеспечение данного механизма защиты доступ к данным можно получить только при помощи процедуры, и никто не сможет удалить данные с использованием запроса delete.
  3. Улучшение выполнения, а как следствие сокращение используемого трафика. С помощью хранимых процедур можно объединить несколько запросов.
  4. Использование процедур для большинства реляционных СУБД, хранимые процедуры InterBase могут играть роль полноценных наборов данных, что позволяет использовать создаваемые им процедуры и их результаты в обычных SQL — запросах.
  5. Приложения, которые обращаются к одной базе данных, могут использовать одну процедуру, что позволит избавиться от двойного кода, уменьшая код программы и устраняя потенциальные ошибки.
  6. Если используемая процедура подверглась изменениям и внесениям ряда различных поправок, то эти изменения автоматически будут отображаться во всех приложениях, которые используют данную процедуру, что обеспечивает их согласованность. При этом нет необходимости зонного перекомпилировать приложения.

Недостатки использования хранимых процедур:

  1. Повышение нагрузки на сервер, так как процедура компилируется и исполняется не на клиентской стороне, а на стороне сервера. Значит необходимо контролировать и оптимизировать выполнение хранимых процедур.
  2. Дублирование логики приложения в нескольких местах: код на сервере и код для хранимых процедур, тем самым усложняется процесс манипулирования данными.
  3. Сложность при миграции из одной СУБД в другую, что может привести к проблемам.

Несмотря на то, что хранимые процедуры реализуются на стороне сервера, они позволяют существенно оптимизировать его работу и повысить ее скорость. Это становится возможным благодаря тому, что код процедуры после первого ее выполнения сохраняется в кэше оперативной памяти [3]. Таким образом, для дальнейших вызовов, процедура будет извлекается из кэша, в место того, чтобы снова выполняться.

Также хранимые процедуры увеличивают скорость выполнения запросов, поскольку они не требуют компиляции — они хранятся уже в скомпилированном виде.

Применение хранимых процедур позволяет скрывать логику выполнения запросов, реализуя принцип «черного ящика», в который на вход подается набор параметров, а на выходе получается результат [4].

Как говорилось ранее: применение хранимых процедур переносит нагрузку с клиентской стороны, на сторону сервера, из этого можно сделать вывод, что применение хранимых процедур оправдано в том, случае, когда один сервер, обслуживает большой поток клиентов. В там случае, повышение нагрузки на сервер является оправданной мерой, это позволяет сократить используемый трафик, за счет снижения количества информации, передаваемой между клиентом и сервером [5]. Как правило, от клиентов поступает большое количество однотипных запросов, поэтому сохраненные в кэше выполняемые процедуры приведут к значительному приросту производительности системы в целом.

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

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

Литература:

  1. В. Ю. Пирогов. Информационные системы и базы данных. Организация и проектирование. — СПб.: БХВ-Петербург, 2009. — 528 с.
  2. С. Д. Кузнецов. Основы баз данных. — М.: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2007. — 488 с.
  3. В.Дунаев. Базы данных. Язык SQL для студента. — СПб.: БХВ-Петербург, 2012. — 320 с.
  4. С. Н. Смирнов, А. В. Киселев. Практикум по работе с базами данных. — М.: Гелиос АРВ, 2012. — 160 с.
  5. И. А. Кумскова. Базы данных. — М.: КноРус, 2010. — 496 с.
Основные термины (генерируются автоматически): процедура, баз данных, сторона сервера, SQL, база данных, данные, используемый трафик, клиентская сторона, повышение нагрузки, хранимая процедура.


Ключевые слова

база данных, производительность, хранимая процедура
Задать вопрос