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

Откуда:
Сообщений: 16
Коллеги, приветствую!

Кто-нибудь сталкивался с такой проблемой:

простой запрос к вьюхе работает около 30 сек:
declare @p0 int = 1,@p1 bit = 1,@p2 int=12427
 
select TOP (1) *
from dbo.vSavedChanges SCh
where  SCh.ObjectId=@p2


Внутри вьюхи находится достаточно сложный запрос с UNION и объединением 5-ти таблиц. Но при подстановке параметров напрямую в запрос, в обход самой VIEW, запрос выполняется моментально.
Т.е. запрос один и тот же, но когда он внутри view, то выполняется значительно дольше из-за того, что начинается table scan

Кто-нибудь сталкивался с таким поведением? Можно ли с ним что-нибудь сделать?

PS
избавиться от вызова view сложно, т.к. она прописана в коде приложения.
3 сен 13, 17:34    [14790694]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит выполнение запроса через View  [new]
Glory
Member

Откуда:
Сообщений: 104751
vnik82
Но при подстановке параметров напрямую в запрос, в обход самой VIEW,

И как это выглядит програмно ?
3 сен 13, 17:35    [14790706]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит выполнение запроса через View  [new]
o-o
Guest
поди когда не во вью, фильтруется внутри сложного запроса,
а когда фильтруется вью, то фильтр внешний после всех соединений?
может, иналйн функцией переписать, чтоб сразу фильтровать где надо?
3 сен 13, 17:40    [14790753]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит выполнение запроса через View  [new]
_Shakill
Guest
o-o
поди когда не во вью, фильтруется внутри сложного запроса,
а когда фильтруется вью, то фильтр внешний после всех соединений?
может, иналйн функцией переписать, чтоб сразу фильтровать где надо?

+1. если фильтр накладывается внутри частей UNION, то это уже совсем другой запрос получается, нельзя говорить что "один и тот же"
3 сен 13, 17:44    [14790771]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит выполнение запроса через View  [new]
aleks2
Guest
Научите его уже inline-функции писать...
3 сен 13, 17:46    [14790787]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит выполнение запроса через View  [new]
vnik82
Member

Откуда:
Сообщений: 16
_Shakill
+1. если фильтр накладывается внутри частей UNION, то это уже совсем другой запрос получается, нельзя говорить что "один и тот же"


Точно! Слона то я и не приметил :(
3 сен 13, 17:54    [14790857]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить