Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SP & UDF
|
|||
|---|---|---|---|
|
#18+
Люди! Если заменить все процедуры, возвращающие 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2002, 12:38 |
|
||
|
SP & UDF
|
|||
|---|---|---|---|
|
#18+
Насчет производительности сказать не берусь, а вот насчет _возможности_ замены процедур на функции можно... Большинство процедур, если они сложнее, чем begin select * from ... end, заменить будет не так легко. Ты в курсе, что в функциях нельзя вызывать stored proc? Это, наверное, самый большой и неподъемный камень такого перехода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2002, 12:55 |
|
||
|
SP & UDF
|
|||
|---|---|---|---|
|
#18+
По-моему наибольшей проблемой является отладка UDF. Ни select наружу не вернешь, ни raiserror. А хуже всего что STATISTICS_IO не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2002, 20:23 |
|
||
|
SP & UDF
|
|||
|---|---|---|---|
|
#18+
И временной таблицей там не воспользуешься, и EXEC(@MySQL) - не работает. Короче, ограничений много, но и положительные стороны все же имеются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2002, 02:00 |
|
||
|
SP & UDF
|
|||
|---|---|---|---|
|
#18+
Благодарю за ответы. Но, тем не менее, ежели у меня все процедуры простые, типа JOIN-ов, но только параметризованных (то есть, VIEW не создать), то имеет ли смысл их переписать на UDF функции? Не приведет ли это к падению производительности по сравнению с подходом sp+#tmp_table... Есть ли реальный опыт такого рода? Размеры таблиц в моем случае - порядка сотен тысяч записей, выборки тоже сравнимы с таким количеством.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2002, 08:50 |
|
||
|
SP & UDF
|
|||
|---|---|---|---|
|
#18+
Любая переделка может привести к изменению производительности, в том числе в худшую сторону. Сами по себе UDF(так же как и stored procedures, view и т.д.) являются просто инструментом. Узнать в какую сторону изменится производительность можно с помощью отладки, а она затруднена(см. выше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2002, 10:00 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32022420&tid=1823992]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 260ms |
| total: | 411ms |

| 0 / 0 |
