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

Откуда:
Сообщений: 257
Добрый день.

Подскажите, пожалуйста, есть ли способ вписать конструкцию создания временной таблицы и индекса в скалярной функции?
Табличную переменную смог вставить, но по ней идет Index Scan из-за этого очень долго отрабатывает запрос, если я тело функции выношу в отдельный запрос, не обернутый в функцию и делаю вместо табличной переменной временную таблицу и индекс на нее, то работает очень быстро.

Два вопроса, возможно ли создать временную таблицу внутри скалярной функции, если нет, то есть ли способ заставить делать index Seek по табличной переменной

Заранее спасибо
11 дек 14, 15:55    [16984197]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
user87
Подскажите, пожалуйста, есть ли способ вписать конструкцию создания временной таблицы и индекса в скалярной функции?

нет

user87
Табличную переменную смог вставить, но по ней идет Index Scan из-за этого очень долго отрабатывает запрос, если я тело функции выношу в отдельный запрос, не обернутый в функцию и делаю вместо табличной переменной временную таблицу и индекс на нее, то работает очень быстро.

Что мешает указать индекс при объявлении табличной переменной ?
11 дек 14, 15:56    [16984210]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
user87
Member

Откуда:
Сообщений: 257
Т.е можно на табличную переменную навесить индекс?
Делаю следующим образом
declare @Table table (Id int)
insert into @Table
select .....


create index IX_test on @Table(Id)
Но выдается ошибка
11 дек 14, 16:07    [16984307]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
Glory
Member

Откуда:
Сообщений: 104751
user87
Т.е можно на табличную переменную навесить индекс?

Еще раз
При объявлении табличной переменной можно объявить PK и UQ constarint-ы. Которые являются индексами
11 дек 14, 16:11    [16984326]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с запросом  [new]
user87
Member

Откуда:
Сообщений: 257
Точно, спасибо большое.
11 дек 14, 16:18    [16984368]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить