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

Откуда:
Сообщений: 11156
Если запустить из студии вот так:

exec sp_executesql N'SELECT *
FROM [база на локальном сервере].[dbo].[вьюха, выбирающая из таблиц на линкованном сервере] AS [t0]
WHERE [t0].[поле1] LIKE @p0 AND [t0].[поле2] = @p1',N'@p0 nvarchar(10),@p1 int',@p0=N'%иванов%',@p1=1

то работает 30 секунд.
А если просто тот же запрос без sp_executesql, то есть вот так:

SELECT *
FROM [база на локальном сервере].[dbo].[вьюха, выбирающая из таблиц на линкованном сервере] AS [t0]
WHERE [t0].[поле1] LIKE %иванов% AND [t0].[поле2] = 1

то работает мгновенно.
Где засада?
18 сен 12, 10:41    [13180529]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sp_executesql, подозрение на связанный сервер  [new]
Glory
Member

Откуда:
Сообщений: 104760
SELECT *
FROM [база на локальном сервере].[dbo].[вьюха, выбирающая из таблиц на линкованном сервере] AS [t0]
WHERE [t0].[поле1] LIKE N'%иванов%' AND [t0].[поле2] = 1
18 сен 12, 10:46    [13180565]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sp_executesql, подозрение на связанный сервер  [new]
19lqs
Member [заблокирован]

Откуда:
Сообщений: 11156
Glory
SELECT *
FROM [база на локальном сервере].[dbo].[вьюха, выбирающая из таблиц на линкованном сервере] AS [t0]
WHERE [t0].[поле1] LIKE N'%иванов%' AND [t0].[поле2] = 1
N ничего не меняет, просто запрос отрабатывает мгновенно и с ней и без нее, а если его обернуть в sp_executesql, то 30 секунд.
18 сен 12, 11:03    [13180680]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sp_executesql, подозрение на связанный сервер  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
19lqs,

М.б. дело банально в параметрах? Что будет, если добавить внутрь
exec sp_executesql N'SELECT * 
FROM [база на локальном сервере].[dbo].[вьюха, выбирающая из таблиц на линкованном сервере] AS [t0]
WHERE [t0].[поле1] LIKE @p0 AND [t0].[поле2] = @p1 option(recompile)',N'@p0 nvarchar(10),@p1 int',@p0=N'%иванов%',@p1=1
18 сен 12, 11:12    [13180737]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sp_executesql, подозрение на связанный сервер  [new]
Glory
Member

Откуда:
Сообщений: 104760
19lqs
N ничего не меняет, просто запрос отрабатывает мгновенно и с ней и без нее, а если его обернуть в sp_executesql, то 30 секунд.

А планы и результаты одинаковы ?
18 сен 12, 11:14    [13180754]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sp_executesql, подозрение на связанный сервер  [new]
Читатель неместный
Guest
или
exec sp_executesql N'declare @s nvarchar(10);select @s=@p0; SELECT *
FROM [база на локальном сервере].[dbo].[вьюха, выбирающая из таблиц на линкованном сервере] AS [t0]
WHERE [t0].[поле1] LIKE @s AND [t0].[поле2] = @p1',N'@p0 nvarchar(10),@p1 int',@p0=N'%иванов%',@p1=1
18 сен 12, 11:14    [13180757]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sp_executesql, подозрение на связанный сервер  [new]
19lqs
Member [заблокирован]

Откуда:
Сообщений: 11156
Помогли в "Просто трепе", option(recompile) засунуть в sp_executesql - с ним мгновенно.
18 сен 12, 11:36    [13180927]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sp_executesql, подозрение на связанный сервер  [new]
Glory
Member

Откуда:
Сообщений: 104760
19lqs
Помогли в "Просто трепе", option(recompile) засунуть в sp_executesql - с ним мгновенно.

Там хоть сказали, что эта опция делает ?
Или вам главное "щоб работало" ?
18 сен 12, 11:37    [13180936]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sp_executesql, подозрение на связанный сервер  [new]
19lqs
Member [заблокирован]

Откуда:
Сообщений: 11156
Glory
19lqs
Помогли в "Просто трепе", option(recompile) засунуть в sp_executesql - с ним мгновенно.

Там хоть сказали, что эта опция делает ?
Или вам главное "щоб работало" ?
Не сказали, сам прочитаю, сейчас главное - чтобы работало:)
18 сен 12, 11:40    [13180963]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sp_executesql, подозрение на связанный сервер  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
первое что надо попробовать
OPTION (OPTIMIZE FOR UNKNOWN) или переобъявить параметры внутри

Да, часто МсСКЛ Сервер "гонит" и для двух разных, но идентичных запросов генерирует различные планы.

Сам ожидаю от одинаковых 500рублей, но двумя разными купюрами (или нескольких купюр или безналичной) - одинаковой стоимости денег, но в МсСКЛ эта логика для меня до сих пор "чёрный ящик".

Глори всегда будет отвечать в духе "...это разные запросы, смотрите планы...", такой вопрос он знает, видел его много раз и возможно часто знает ответ на него, просто "не скажет".
18 сен 12, 17:45    [13184233]     Ответить | Цитировать Сообщить модератору
 Re: Тормозит sp_executesql, подозрение на связанный сервер  [new]
Glory
Member

Откуда:
Сообщений: 104760
NIIIK
Глори всегда будет отвечать в духе "...это разные запросы, смотрите планы...", такой вопрос он знает, видел его много раз и возможно часто знает ответ на него, просто "не скажет".

Эти запросы как раз одинаковые.
А вот планы у них разные.
Не путайте божий дар с яичницей.
18 сен 12, 17:53    [13184281]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить