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

Откуда:
Сообщений: 6
Добрый день.
Есть паблик сервер и подписчики, реплицируются только записи из таблиц.

на подписчике создано агрегатное представление, с группировкой по 4 полям.
На основание этих 4 полей создан кластерный индекс у вьюшки.

автор
CREATE VIEW [dbo].[CurrentViewCompact] WITH SCHEMABINDING
AS
SELECT
[dbo].[Tab2].[Datex] as Datex
[dbo].[Tab1].[WarehouseId] as WarehouseId,
[dbo].[Tab2].[BaseId] as BaseId,
[dbo].[Tab1].[GoodsId] as GoodsId,

sum([dbo].[Tab1].[Quantity]) as Quantity,
sum([dbo].[Tab1].[Summ]) as Summ,

sum([dbo].[Tab1].[Quantity]*[dbo].[Tab1].[Price_2]) as Sum2,
sum(IsNull([dbo].[Tab1].[Sum3],0)) as Sum3,
sum([dbo].[Tab1].[CountMen]) as CountMen,
COUNT_BIG(*) as RecordCount
FROM [dbo].[Tab2], [dbo].[Tab1]
WHERE [dbo].[Tab2].[CreditGroupId] = [dbo].[Tab1].[CreditGroupId]
group by
[dbo].[Tab2].[Datex]
[dbo].[Tab1].[WarehouseId],
[dbo].[Tab1].[GoodsId],
[dbo].[Tab2].[BaseId]



На подписчиках SQL2017 с разными CU(голый, 15, 17).
При уровне совместимости 120 - работает, нагрузка чтения на подписчике (20М/с).
При уровне совместимости 130/140 - репликация начинает копить очередь, нагрузка чтения на подписчике (500-600 М/с), если дропнуть индекс то с репликацией все сразу хорошо :)

собственно что можно сделать чтоб и на новых версиях не было проблем?
14 окт 19, 14:06    [21993722]     Ответить | Цитировать Сообщить модератору
 Re: индекс представления и уровень совместимости  [new]
strel51
Member

Откуда:
Сообщений: 6
strel51,
UP
Сделал 1 представление без группировки, добавил в него индекс 4 полями.
На основании него сделал уже агрегатное представление.
Репликация работает, но снизилась производительность отчетов.
15 окт 19, 09:10    [21994276]     Ответить | Цитировать Сообщить модератору
 Re: индекс представления и уровень совместимости  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31328
strel51
Есть паблик сервер и подписчики, реплицируются только записи из таблиц.

на подписчике создано агрегатное представление, с группировкой по 4 полям.
На основание этих 4 полей создан кластерный индекс у вьюшки.
Может, сделать представление в базе публикации? И реплицировать уже агрегатные данные?
15 окт 19, 09:33    [21994285]     Ответить | Цитировать Сообщить модератору
 Re: индекс представления и уровень совместимости  [new]
strel51
Member

Откуда:
Сообщений: 6
alexeyvg,

Так трудность с Индексом представления - объект который все равно будет высчитываться на подписчике.
15 окт 19, 12:50    [21994511]     Ответить | Цитировать Сообщить модератору
 Re: индекс представления и уровень совместимости  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31328
strel51
Так трудность с Индексом представления - объект который все равно будет высчитываться на подписчике.
Разве?
Индексированное представление можно реплицировать 3мя разными способами, как написано в документации.
И в одном из них реплицируются сами данные, при этом таблицы, которые используются в представлении, можно не реплицировать.
Насколько я помню.
15 окт 19, 13:15    [21994554]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить