Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Индексированная вьюшка / 10 сообщений из 10, страница 1 из 1
03.08.2018, 12:47
    #39683043
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексированная вьюшка
Есть табличка типа примерно такой структуры

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE ds2(
	[id] [INT] IDENTITY(1,1) NOT NULL,
	[idschet] [INT] NOT NULL,
	[idcase] [INT] NOT NULL,
	[DS2] [VARCHAR](10) NOT NULL,
 CONSTRAINT [PK.ds2] PRIMARY KEY NONCLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]



Хочется сделать индексированную вьюшку типа idschet, idcase, (составная строка всех значений DS2) через запятую для пары значений idschet и idcase

Саму вьюшку WITH SCHEMABINDING сделать проблемы нет, проблема при попытке создать кластерный индекс на эту вьюшку, так как строку собираю подзапросом на основе XML, и кластеризованный индекс соответственно создать не дает. Можно как-то переделать запрос так чтобы была возможность создать необходимый мне кластерный индекс?
...
Рейтинг: 0 / 0
03.08.2018, 13:01
    #39683053
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексированная вьюшка
энди, никак не создашь.
Индексированные представления - достаточно жестко лимитированная конструкция.
ХМЛ подзапросы, к сожалению туда не ложатся.

https://docs.microsoft.com/ru-ru/sql/relational-databases/views/create-indexed-views?view=sql-server-2017
...
Рейтинг: 0 / 0
03.08.2018, 13:32
    #39683074
лолл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексированная вьюшка
энди,

быть может проще создать тогда таблицу, а не индексированное представление?
...
Рейтинг: 0 / 0
03.08.2018, 13:56
    #39683093
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексированная вьюшка
В MSSQL-2017 появилась агрегатная функция STRING_AGG().
Её, наверно, можно применять в индексированном представлении
...
Рейтинг: 0 / 0
03.08.2018, 19:08
    #39683222
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексированная вьюшка
iapВ MSSQL-2017 появилась агрегатная функция STRING_AGG().
Её, наверно, можно применять в индексированном представлении

Садись - неуд.

Не надо быть семи пядей во лбу, чтобы осознать: ограничения на индексированные вьюшки, в сущности, сводятся к возможности "пересчитать вью только в одной строке, при добавлении/убавлении/обновлении одной строки базовой таблицы, НЕ ВЫПОЛНЯЯ ГРУППИРОВКИ всей таблицы".

Со аггрегированной строкой такой фикус не проходит.
...
Рейтинг: 0 / 0
03.08.2018, 19:33
    #39683231
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексированная вьюшка
aleks222iapВ MSSQL-2017 появилась агрегатная функция STRING_AGG().
Её, наверно, можно применять в индексированном представлении

Садись - неуд.

Не надо быть семи пядей во лбу, чтобы осознать: ограничения на индексированные вьюшки, в сущности, сводятся к возможности "пересчитать вью только в одной строке, при добавлении/убавлении/обновлении одной строки базовой таблицы, НЕ ВЫПОЛНЯЯ ГРУППИРОВКИ всей таблицы".

Со аггрегированной строкой такой фикус не проходит.Да. Может и так. В статье MS про индексированные представления про эту функцию ничего нет.
Я подумал, что есть надежда. Проверить не могу - нет поблизости 2017-го сервера.
...
Рейтинг: 0 / 0
04.08.2018, 08:39
    #39683275
энди
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексированная вьюшка
Боюсь мне это не поможет, у клиентосов сервера начиная с 2012
...
Рейтинг: 0 / 0
06.08.2018, 09:38
    #39683583
tunknown
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексированная вьюшка
эндиХочется сделать индексированную вьюшку типа idschet, idcase, (составная строка всех значений DS2) через запятую для пары значений idschet и idcaseОбращаться к такой view только напрямую? "indexed view matching" автоматически работает только на Enterprise, на остальных редакциях нужно хинт NOEXPAND в запросах вручную ставить. На Express, кажется, совсем не работает.
...
Рейтинг: 0 / 0
06.08.2018, 12:50
    #39683673
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексированная вьюшка
tunknownэндиХочется сделать индексированную вьюшку типа idschet, idcase, (составная строка всех значений DS2) через запятую для пары значений idschet и idcaseОбращаться к такой view только напрямую? "indexed view matching" автоматически работает только на Enterprise, на остальных редакциях нужно хинт NOEXPAND в запросах вручную ставить. На Express, кажется, совсем не работает.

Работает оно везде.

А мракетологический высер мелкософта легко обходится доп. вьюшкой:

Код: sql
1.
2.
3.
create view MyCoolIndexedView
as
select * from IndexedView with(noexpand)
...
Рейтинг: 0 / 0
01.07.2019, 15:50
    #39832368
Павел677
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексированная вьюшка
aleks222Работает оно везде.

А мракетологический высер мелкософта легко обходится доп. вьюшкой:

Код: sql
1.
2.
3.
create view MyCoolIndexedView
as
select * from IndexedView with(noexpand)



а есть какой нить обходной путь, чтобы сделать индексированную вьюху по системному объекту ?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Индексированная вьюшка / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]