![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разница в скорости работы хранимой процедуры
Term © (2006-08-14 11:48:00)Вопросец такой, хранимая из Query Analazer'а отрабатывает мгновенно, а из приложения 5 минут... в чём может быть причина...
Term (2006-08-14 13:26:00) [1]победил, дело было в том что
запрос в ХП
select @move_time=max(btime) from splaceshandling with(index(IX_splaceshandling_doc),nolock) where doc=@doc
почему то необращал внимание на индекс
после того как данные выбрал во временную таблицу, и сделал max по ней всё заработало
Term (2006-08-14 12:06:00) [2]
CREATE procedure dbo.GetDoc
--поиск документа с заданными свойствами откуда, куда в заданном мх
@from int,
@to int,
@sp int,
@outres bit = 1
as
set nocount on
set transaction isolation level read uncommitted
declare
@doc int,
@time datetime,
@doc_time datetime,
@move_time datetime
set @time=getdate()
select @doc=A.storageplace, @doc_time=A.btime
from storageplaces A with(index(StPlacesParentIx),nolock)
left join spproperties B with(index(IX_spproperties_sp_type),nolock) on B.storageplace=A.storageplace and B.type=4 and B.value=@from
left join spproperties C with(index(IX_spproperties_sp_type),nolock) on C.storageplace=A.storageplace and C.type=5 and C.value=@to
where
A.parentplace=@sp
and A.dtime>getdate()
if IsNull(@doc,0)>0
select @move_time=max(btime) from splaceshandling with(index(IX_splaceshandling_doc),nolock) where doc=@doc
Finish:
if @outres = 1
select IsNull(@doc,0) as doc, IsNull(@doc_time,0) as doc_time, IsNull(@move_time,0) as move_time
else
return(@doc)
tupoy (2006-08-14 12:01:00) [3]покажи запрос
Term (2006-08-14 11:58:00) [4]Profiler показал следующее
из приложения
reads - 254
duration - 266
из Analayzer'a
reads - 252
duration - 186
вот такие данные
Sergey13 (2006-08-14 11:54:00) [5]> [4] Term © (14.08.06 11:52)
Значит в [5] я был не прав в своем предположении.
Term (2006-08-14 11:52:00) [6]
> Например, в том что твое приложение пытается фетчить все
> записи, в то время как QA фетчит только необходимые для
> просмотра в дан.момент записи.
ХП возвращает только одну строку
Sergey13 (2006-08-14 11:52:00) [7]Например, в приложении идет полный фетч записей на клиента. Если это так, то раз он идет 5 минут - это проблема в .... в голове в общем.
Сергей М. (2006-08-14 11:51:00) [8]Например, в том что твое приложение пытается фетчить все записи, в то время как QA фетчит только необходимые для просмотра в дан.момент записи.
Term (2006-08-14 11:51:00) [9]есть трасса в которую выводица исполняющийся в данный момент запрос, так вот именно на ней и висит по 5 минут...
stone (2006-08-14 11:49:00) [10]в 17-ой строке наверное
как время выполнения в приложении замерял?