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

Откуда:
Сообщений: 1062
Добрый день!
пытаюсь создать индексированое представление на запрос

select
T1.X,
T2.X
from T1
left join T2 on T2.X=T1.X

ругается что нельзя использовать left join

Это можно обойти?
21 май 14, 09:55    [16046236]     Ответить | Цитировать Сообщить модератору
 Re: индексированное представление  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
http://msdn.microsoft.com/ru-ru/library/ms191432.aspx

автор
Инструкция SELECT в определении представления не должна содержать следующие элементы языка Transact-SQL:

...
Инструкции объединения OUTER (LEFT, RIGHT или FULL)
...
21 май 14, 10:06    [16046300]     Ответить | Цитировать Сообщить модератору
 Re: индексированное представление  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5118
достаточно глянуть в доку Ограничения
21 май 14, 10:10    [16046330]     Ответить | Цитировать Сообщить модератору
 Re: индексированное представление  [new]
кириллk
Member

Откуда:
Сообщений: 1062
Дедушка,

Про ограничения я понял, я просил можно ли как нить обойти :)
21 май 14, 10:26    [16046459]     Ответить | Цитировать Сообщить модератору
 Re: индексированное представление  [new]
денормализация
Guest
кириллk
Дедушка,

Про ограничения я понял, я просил можно ли как нить обойти :)

Сделать постоянную таблицу с нужными индексами и заполнять ее через триггеры или в коде процедур меняющих исходные таблицы
21 май 14, 10:30    [16046485]     Ответить | Цитировать Сообщить модератору
 Re: индексированное представление  [new]
Crimean
Member

Откуда:
Сообщений: 13147
кириллk,

обернуть индексированное представление неиндексированным и уже в нем сделать OUTER JOIN
21 май 14, 10:32    [16046499]     Ответить | Цитировать Сообщить модератору
 Re: индексированное представление  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
кириллk,

если все поля VIEW - это просто поля базовых таблиц,
то смысл индексированного VIEW равен нулю.
Индексы надо сделать по самим полям этих таблиц.
И просто пользоваться показанным Вами VIEW.

Вот если бы там были агрегаты какие-нибудь,
то тогда имело бы смысл их хранить в индексе VIEW,
чтобы не пересчитывать в каждом SELECTе.
21 май 14, 10:34    [16046512]     Ответить | Цитировать Сообщить модератору
 Re: индексированное представление  [new]
денормализация
Guest
iap
кириллk,

если все поля VIEW - это просто поля базовых таблиц,
то смысл индексированного VIEW равен нулю.
Индексы надо сделать по самим полям этих таблиц.
И просто пользоваться показанным Вами VIEW.

Вот если бы там были агрегаты какие-нибудь,
то тогда имело бы смысл их хранить в индексе VIEW,
чтобы не пересчитывать в каждом SELECTе.

Не соглашусь с вами, создание индексированного вью или просто денормализованной таблицы (что на уровне хранения данных практически одно и тоже) бывает полезно с точки зрения перфоманса (отсутствие nested loop). Это примерно тоже самое, что добавление include полей в индекс.
21 май 14, 10:49    [16046630]     Ответить | Цитировать Сообщить модератору
 Re: индексированное представление  [new]
dma_caviar
Member

Откуда: https://itproduct.ru
Сообщений: 2361
iap
кириллk,

если все поля VIEW - это просто поля базовых таблиц,
то смысл индексированного VIEW равен нулю.
Индексы надо сделать по самим полям этих таблиц.
И просто пользоваться показанным Вами VIEW.

Вот если бы там были агрегаты какие-нибудь,
то тогда имело бы смысл их хранить в индексе VIEW,
чтобы не пересчитывать в каждом SELECTе.

А если нужен составной индекс, состоящий из полей разных таблиц?
21 май 14, 12:54    [16047803]     Ответить | Цитировать Сообщить модератору
 Re: индексированное представление  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5118
dma_caviar
А если нужен составной индекс, состоящий из полей разных таблиц?
тогда поминаем хорошими словами того человека который вам такую схему спроектировал
21 май 14, 13:53    [16048406]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить