![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Extendet function в (см. UDF)? [MSSQL]
АлексейК © (2003-04-29 04:28:00)Возникло желание написать свой пакет функций для MSSQL2000, подобных UDF в InterBase, однако в документации нашел только описание создания расширенных хранимых процедур, которые подключаются из DLL. Но для их выполнения нужно использовать команду EXEC, и следовательно в выражение их неподставишь. Если у кого-нибудь оптыт в этом деле?
АлексейК (2003-04-29 12:09:00) [1]Поясняю.
Для сравнения два запроса:
1. select substring(field_text, x, y)+" "+substring(field_text, x, y) from table
2. select format_str(field_text) from table
Где format_str
create function format_str(@vl varchar(X))
returns varchar(x)
as
begin
declare @r varchar(x)
set @r=substring(vl, x, y)+" "+substring(vl, x, y)
return(@r)
end
Так вот первый запрос (учитывая, что substring встроенная функция) работает на порядок быстрее, и загрузка процессора при этом много ниже. Если сравнить трассировку этих двух запросов, то разница приципиальная. Так вот и хотелось бы подключить свои функции из DLL, именно как функции дабы использовать в запросах.
stone (2003-04-29 09:13:00) [2]
> Возникло желание написать свой пакет функций для MSSQL2000
см. справку в BOL по CREATE FUNCTION
wicked (2003-04-29 05:58:00) [3]а функцию с exec"ом не судьба написать?...
mad0max (2003-04-29 05:11:00) [4]А что в MS SQL есть Extented Functions? Я все время думал что там Extented Procedures, я думаю этим все сказано....
А вообще я в свое время писал эти расширенные процедуры, в один прекрасный момент мне надоли постоянные тормоза и я переписал все на нормальный SQL, по сей день не жалею об этом... Так что я бы посоветовал использовать обычные хранимые процедуры или функции....
Я так думаю...
:)