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


Характеристики выполнения расширенных хранимых процедур

Важное примечаниеВажно!

В будущей версии Microsoft SQL Server эта возможность будет удалена. Не используйте ее при работе над новыми приложениями и как можно быстрее измените приложения, в которых она в настоящее время используется. Пользуйтесь вместо этого интеграцией со средой CLR.

Выполнение расширенных хранимых процедур имеет следующие характеристики:

  • расширенная хранимая процедура выполняется в контексте безопасности Microsoft SQL Server;

  • расширенная хранимая процедура выполняется в пространстве процесса SQL Server;

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

    Примечание по безопасностиПримечание по безопасности

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

После загрузки DLL-библиотеки расширенной хранимой процедуры, DLL-библиотека остается загруженной в адресном пространстве сервера, пока не останавливается SQL Server или администратор явно не выгружает ее из памяти, используя DBCC DLL_name (FREE).

Расширенная хранимая процедура может выполняться в Transact-SQL как хранимая процедура с помощью инструкции EXECUTE:

EXECUTE @retval = xp_extendedProcName @param1, @param2 OUTPUT

Параметры

  • @ retval
    Возвращаемое значение.

  • @ param1
    Входной параметр.

  • @ param2
    Входной и (или) выходной параметр.

    ПредупреждениеВнимание!

    Расширенные хранимые процедуры увеличивают производительность и расширяют возможности SQL Server. Однако из-за того, что DLL-библиотека расширенной хранимой процедуры и SQL Server совместно используют одно и то же адресное пространство, проблемная процедура может отрицательно повлиять на работу SQL Server. Хотя исключения, вызываемые DLL-библиотеками расширенных хранимых процедур, обрабатываются SQL Server, тем не менее, можно повредить области данных SQL Server. В качестве меры безопасности только системные администраторы SQL Server могут добавлять расширенные хранимые процедуры к SQL Server. Перед установкой эти процедуры следует тщательно протестировать.