powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SP & UDF
6 сообщений из 6, страница 1 из 1
SP & UDF
    #32022420
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди!

Если заменить все процедуры, возвращающие resultset, на
UDF (функции), а то, что было процедурами, оформить в виде
оберток к функциям, ничего не пострадает (производительность
и т.п.)? Необходимо это для более простой обработки результатов
(типа JOIN результатов работы двух процедур без вспомогательных
таблиц, хотя, конечно, в самих UDF будут эти же самые вспомогательные
таблицы, но ведь код проще...)

Пример:

Было:

CREATE PROC test
AS
SELECT UserID FROM Users
Go

Стало:

CREATE FUNCTION FUsers()
RETURNS TABLE
AS
RETURN SELECT UserID FROM Users
Go
CREATE PROC test
AS
SELECT UserID FROM dbo.FUsers()
Go
...
Рейтинг: 0 / 0
SP & UDF
    #32022421
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет производительности сказать не берусь, а вот насчет _возможности_ замены процедур на функции можно... Большинство процедур, если они сложнее, чем begin select * from ... end, заменить будет не так легко. Ты в курсе, что в функциях нельзя вызывать stored proc? Это, наверное, самый большой и неподъемный камень такого перехода.
...
Рейтинг: 0 / 0
SP & UDF
    #32022448
MadDog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему наибольшей проблемой является отладка UDF. Ни select наружу не вернешь, ни raiserror. А хуже всего что STATISTICS_IO не работает.
...
Рейтинг: 0 / 0
SP & UDF
    #32022456
AlexanderVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И временной таблицей там не воспользуешься, и EXEC(@MySQL) - не работает. Короче, ограничений много, но и положительные стороны все же имеются.
...
Рейтинг: 0 / 0
SP & UDF
    #32022490
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю за ответы.

Но, тем не менее, ежели у меня все процедуры простые, типа JOIN-ов, но только параметризованных (то есть, VIEW не создать), то имеет ли смысл их переписать на UDF функции? Не приведет ли это к падению производительности по сравнению
с подходом sp+#tmp_table... Есть ли реальный опыт такого рода?

Размеры таблиц в моем случае - порядка сотен тысяч записей, выборки тоже сравнимы с таким количеством....
...
Рейтинг: 0 / 0
SP & UDF
    #32022495
MadDog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любая переделка может привести к изменению производительности, в том числе в худшую сторону. Сами по себе UDF(так же как и stored procedures, view и т.д.) являются просто инструментом.
Узнать в какую сторону изменится производительность можно с помощью отладки, а она затруднена(см. выше).
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SP & UDF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]