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

Откуда:
Сообщений: 12
Есть некая таблица из которой делается селект за какое-время (в данном случае 150 миллисекунд).
На основе таблицы сделана вьюха (представление), селект из которой занимает 30 миллисекунд.
Однако две хранимых процедуры с выборкой на основе таблицы и на основе вьюхи делаются за одинаковое время - 150 миллисекунд.
Почему выборка из вьюхи не даёт ускорения при включении в хранимую процедуру?

Вот прямая выборка:
select rq.id
,rq.id_otdel
,rq.id_post
,rq.id_oper1
,rq.porthole
,rq.data_conf
,rq.data_out
,(select gruz3.Gruz1_FPost(rq.id_post)) as 'cname'
,rq.cprimech
,(select abbriviation from dbo.departments where id=rq.id_otdel) as 'otdel'
,us.name
,isnull(sp.privelege,0) as 'privelege'
,rq.toolate
,(select top(1) dl.id_request
from gruz3.j_Gruz1_OperDelete dl
where rq.id=dl.id_request) as 'Twice'
,(select isnull(pr.DestinationPort,0)
from gruz3.j_Gruz1_Perenos pr
where pr.SourcePort=rq.porthole and pr.id_Department=rq.id_otdel and pr.ReturnValue>0) as 'DestinationPort' -- and pr.ReturnValue>0)
from dbo.j_trequest rq
left join dbo.users us
on rq.id_oper1=us.id
left join dbo.s_post sp
on rq.id_post=sp.id
where (rq.data_out>=(@dt-1) and rq.data_out<(@dt+1)
and rq.porthole = @pPort
and rq.data_conf is not null
and rq.id not in
(select rq.id_request
from gruz3.j_Gruz1_Request rq
where rq.DeleteCar=0)
)
order by cname

Вот выборка из представления:
select id
,id_otdel
,id_post
,id_oper1
,porthole
,data_conf
,data_out
,cname
,cprimech
,otdel
,name
,privelege
,toolate
,Twice
,DestinationPort
from dbo.Gruz1_vRequestForPort
where porthole = @pPort
order by cname
18 май 11, 10:21    [10669340]     Ответить | Цитировать Сообщить модератору
 Re: Select из view в хранимой процедуре  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Ну, дык... планы сравнивайте.
18 май 11, 10:23    [10669346]     Ответить | Цитировать Сообщить модератору
 Re: Select из view в хранимой процедуре  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
GamalPaperot,

попробуйте поменять внути процедуры переменные

CREATE proc proc1
@pPort int
as
decalre @pPort1 int
set @pPort = @pPort1
select ... where porthole = @pPort1
18 май 11, 10:40    [10669475]     Ответить | Цитировать Сообщить модератору
 Re: Select из view в хранимой процедуре  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
поторопился слегка:)




CREATE proc proc1
@pPort int
as
declare @pPort1 int
set @pPort1 = @pPort
select ... where porthole = @pPort1
18 май 11, 10:42    [10669486]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить