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

Откуда: Москва
Сообщений: 8
Здравствуйте!
Есть база DWH на MS Sql Server 2017 и кубовая Analysis Services. На DWH есть memory optimized таблицы.
Сейчас пытаюсь перевести DWH на snapshot.
Для этого выполнил скрипты:
ALTER DATABASE DWH
SET READ_COMMITTED_SNAPSHOT ON
GO

ALTER DATABASE DWH
SET ALLOW_SNAPSHOT_ISOLATION ON
GO

ALTER DATABASE DWH
SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT ON
GO

В SSAS солюшне в свойствах источника данных DWH установил MARS connection в True и Isolation в Snapshot. Куб не процессится, падает на ошибке
Error: 0xC1060000 at Time, Analysis Services Execute DDL Task: Ошибка OLE DB: Ошибка OLE DB или ODBC : Memory optimized tables and natively compiled modules cannot be accessed or created when the session TRANSACTION ISOLATION LEVEL is set to SNAPSHOT.; 42000.
Пробую отпроцесить одно измерение Timeloss Cause.dim, которое получает данных из вьюхи с in-memory таблицей const.[YesNo]
CREATE VIEW [updatable].[view_dimTimeLossCause]
AS
	SELECT tlCause.IsTimeLossCauseArchive		AS IsTimeLossCauseArchive
		, tlArchiveYN.Name						AS IsTimeLossCauseArchiveName
		, tlCause.TimeLossCauseDWID				AS TimeLossCauseDWID
		, tlCause.TimeLossCauseName				AS TimeLossCauseName
		FROM updatable.dictTimeLossCause	AS tlCause (nolock)
			LEFT JOIN const.[YesNo]			AS tlArchiveYN (nolock)
				ON tlCause.IsTimeLossCauseArchive = tlArchiveYN.DWID
GO

При процессинге падает ошибка
Ошибки модуля хранения OLAP: При обработке dimension с идентификатором "View Dim Time Loss Cause" и именем "Причина списания" произошла ошибка.
Если в свойствах источника данных вернуть isolation в Readcommited, то всё успешно процессится.

В профайлере в database engine запрос из вьюхи возвращает 0 строк для snapshot и нужное количество при ReadCommited, в профайлере при подключении к Analysis Services процессинг закначивается как раз после селекта из вьюхи.
В студии запрос выполняется без проблем.

Пробовал менять хинт NOLOCK на SNAPSHOT, но ничего не менялось.

Помогите, пожалуйста, разобраться с проблемой.
1 ноя 18, 12:38    [21721362]     Ответить | Цитировать Сообщить модератору
 Re: In-memory tables, SSAS и Snapshot  [new]
Владислав Колосов
Member

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

Вы не можете перевести сообщение об ошибке или что?
1 ноя 18, 13:05    [21721417]     Ответить | Цитировать Сообщить модератору
 Re: In-memory tables, SSAS и Snapshot  [new]
Lissaro
Member

Откуда: Москва
Сообщений: 8
Владислав Колосов, могу, конечно.
Вопрос, можно ли как-то это обойти?
1 ноя 18, 13:06    [21721420]     Ответить | Цитировать Сообщить модератору
 Re: In-memory tables, SSAS и Snapshot  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3618
Lissaro
Владислав Колосов, могу, конечно.
Вопрос, можно ли как-то это обойти?

а зачем вам снапшот изоляция на двх?
1 ноя 18, 13:32    [21721471]     Ответить | Цитировать Сообщить модератору
 Re: In-memory tables, SSAS и Snapshot  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7771
Подозреваю, что для достижения целостности. Иначе куб может криво загрузиться. Можно настроить CDC + SSIS для тех же целей.
1 ноя 18, 13:41    [21721492]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить