Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Имеет ли смысл писать extended stored proc  [new]
Mike Neck
Member

Откуда:
Сообщений: 56
Есть у меня такая функция

CREATE function dbo.check_date_intervals(@begin_date1 datetime,@due_date1 datetime,@begin_date2 datetime,@due_date2 datetime)
RETURNS int
--- проверяет диапазон дат на совпадение, пересечение и. т. д.

as
begin
declare @Result int

set @Result = null

------ Один период содержится в другом -----------------------------

if @begin_date1>@begin_date2 and @due_date1<@due_date2
set @Result = 1

if @begin_date2>@begin_date1 and @due_date2<@due_date1
set @Result = -1


-----------------Интервалы совпадают-----------------------------------------------

if @begin_date1=@begin_date2 and @due_date1=@due_date2 set @Result = 0


------------------------Интервалы пересекаются--------------------------

if (@begin_date1 between @begin_date2 and @due_date2) and (@due_date1 > @due_date2) set @Result = 2

if (@due_date1 between @begin_date2 and @due_date2) and( @begin_date1< @begin_date2) set @Result = -2

return @Result
end


Вызыватся должна очень часто по идее. Имеет ли смысл сабж или же мне лучше её код поставлять во все места вместо вызова(геморой то какой) или же оставить как есть функцией и всё будет нормально? Или может переписать как?
30 мар 04, 09:34    [603169]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл писать extended stored proc  [new]
rst
Member

Откуда: Йобурк
Сообщений: 1005
сабж -имхо смысла абсолютно никакого нет.
Оставить функцией как есть.

лучше её код поставлять во все места вместо вызова
Если в некоторых запросах нужна будет оптимизация с использованием индексов по полю datetime - то может и стоит без функции обойтись..
а так - нет..
30 мар 04, 09:43    [603179]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл писать extended stored proc  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Писать внешнюю хранимку имеет смысл для расчетных задач - сиквел считает примерзко. Например, хеши, подписи, ... и т.д. Но надо учитывать, что сам по себе вызов внешней хранимки тоже жручий. Плюс, обычно, внешнюю хранимку оборачивают в T-SQL объект - функцию или процу. На их первичную компиляцию тоже тратятся ресурсы. Вот и прикидываем, когда надо, а когда - нет. Ну и общение с внешним миром средствами самого сиквела сделать очень трудно (да и не нужно :)) , тут тоже внешние хранимки помогут . Но не более того .
30 мар 04, 10:48    [603343]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить