Поделиться через


Выполнение хранимых процедур

Хранимая процедура представляет собой исполняемый объект, хранящийся в базе данных. SQL Server поддерживает.

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

    Одна или несколько инструкций SQL предварительно откомпилированы в одну исполняемую процедуру.

  • Расширенные хранимые процедуры

    Библиотеки динамических ссылок (DLL) C или C++, написанные с использованием API-интерфейса служб SQL Server Open Data Services для расширенных хранимых процедур. API-интерфейс служб Open Data Services расширяет возможности хранимых процедур, позволяя им использовать код на C или C++.

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

  • Более высокая производительность

    Инструкции SQL анализируются и компилируются во время формирования процедур. Затем эта дополнительная нагрузка компенсируется при выполнении процедур.

  • Снижение сетевых издержек

    Когда вместо отправки по сети сложных запросов выполняется процедура, это способствует сокращению объема сетевого трафика. Если при выполнении хранимой процедуры приложение ODBC использует синтаксическую конструкцию ODBC {CALL}, драйвер ODBC принимает дополнительные меры по оптимизации, которые снимают необходимость преобразования данных параметров.

  • Повышение уровня согласованности

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

  • Более высокая точность

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

  • Дополнительные функциональные возможности

    В расширенных хранимых процедурах можно использовать средства на языках C и C++, недоступные в инструкциях Transact-SQL.

    Пример вызова хранимой процедуры можно найти в образце обработки кодов возврата и выходных параметров на сайте CodePlex; дополнительные сведения см. в разделе Образцы компонента SQL Server Database Engine.