Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Временная таблица @T в связке с Exec() внутри процедуры тормозит жутко!  [new]
Oleg Krivopusk
Member

Откуда: Хабаровск
Сообщений: 50
Создал процедуру в которую передаю строку запроса @S
В моем случае выбирается порядка сотни строк.
Но если использовать @T то это занимает около 9-10 сек, а если #T - то просто махом все выдает.
Причем если использовать даже @T, но не с Exec() - а с готовым текстом - то тоже летает.
В чем такая проблема?

Create Procedure Reports.up_UserSelecting @S varchar(max) 
As 
// Вариант 1 - тормозит !!!  - 9 секунд
Declare @T Table (PK varchar(20) primary key)
Insert @T 
Exec('Select distinct A+CAST(PK as varchar(10)) from dbo.vF2Union4Report Where '+@S)
....

// Вариант 2 - влет идет - милисекунды
Create Table #T (PK varchar(20) primary key)
Insert #T 
Exec('Select distinct A+CAST(PK as varchar(10)) from dbo.vF2Union4Report Where '+@S)
....

Go

Exec Reports.up_UserSelecting 'D = ''110'' ' 
11 апр 13, 08:07    [14165139]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица @T в связке с Exec() внутри процедуры тормозит жутко!  [new]
Crimzic
Member

Откуда: Sydney
Сообщений: 59
Oleg Krivopusk,

А планы обоих запросов можно посмотреть?
11 апр 13, 08:21    [14165157]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица @T в связке с Exec() внутри процедуры тормозит жутко!  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Oleg Krivopusk,

попробуйте поменять местами вариант 1 и вариант 2 или очистите кэш DBCC DROPCLEANBUFFERS после вставки в табличную пременную
11 апр 13, 08:22    [14165159]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица @T в связке с Exec() внутри процедуры тормозит жутко!  [new]
Oleg Krivopusk
Member

Откуда: Хабаровск
Сообщений: 50
Ruuu
Oleg Krivopusk,

попробуйте поменять местами вариант 1 и вариант 2 или очистите кэш DBCC DROPCLEANBUFFERS после вставки в табличную пременную


Я выполняю только 1 из вариантов (не по очереди)
В тексте процедуры при компиляции - только 1 вариант не закомментирован
11 апр 13, 09:06    [14165251]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица @T в связке с Exec() внутри процедуры тормозит жутко!  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
Oleg Krivopusk,

приведите, пожалуйста, планы запросов и результат SELECT @@VERSION
11 апр 13, 09:20    [14165299]     Ответить | Цитировать Сообщить модератору
 Re: Временная таблица @T в связке с Exec() внутри процедуры тормозит жутко!  [new]
Oleg Krivopusk
Member

Откуда: Хабаровск
Сообщений: 50
Прошу прощения. Все заработало нормально. Но глюк был. Гонял минут 20 ...
11 апр 13, 09:49    [14165386]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить