SQL Server 2014 оптимизированный по памяти тип таблицы
Только что установил SQL Server 2014.
Синтаксис прямо из документации не работает.
Это терпит неудачу на Sales
:
CREATE TYPE [Sales].[SalesOrderDetailType_inmem] AS TABLE(
[OrderQty] [smallint] NOT NULL,
[ProductID] [int] NOT NULL,
[SpecialOfferID] [int] NOT NULL,
[LocalID] [int] NOT NULL,
INDEX [IX_ProductID] HASH ([ProductID]) WITH ( BUCKET_COUNT = 8),
INDEX [IX_SpecialOfferID] NONCLUSTERED
)
WITH ( MEMORY_OPTIMIZED = ON )
Но если я уберу Sales
это все еще терпит неудачу
CREATE TYPE [SalesOrderDetailType_inmem] AS TABLE(
[OrderQty] [smallint] NOT NULL,
[ProductID] [int] NOT NULL,
[SpecialOfferID] [int] NOT NULL,
[LocalID] [int] NOT NULL,
INDEX [IX_ProductID] HASH ([ProductID]) WITH ( BUCKET_COUNT = 8),
INDEX [IX_SpecialOfferID] NONCLUSTERED
)
WITH ( MEMORY_OPTIMIZED = ON )
Со следующей ошибкой
Msg 8135, уровень 16, состояние 0, строка 10
Ограничение уровня таблицы не определяет список столбцов, таблица "SalesOrderDetailType_inmem".
Как создать тип таблицы оптимизации памяти?
1 ответ
Решение
Следующий синтаксис, кажется, работает. Я написал для dbo
схемы. Рекомендуется, чтобы BUCKET_COUNT
устанавливается в ~1x-2x уникальные значения, которые будут храниться.
CREATE TYPE [SalesOrderDetailType_inmem] AS TABLE(
[OrderQty] [smallint] NOT NULL,
[ProductID] [int] NOT NULL
INDEX [IX_ProductID] HASH ([ProductID]) WITH ( BUCKET_COUNT = 8),
[SpecialOfferID] [int] NOT NULL
INDEX [IX_SpecialOfferID] NONCLUSTERED ,
[LocalID] [int] NOT NULL
)
WITH ( MEMORY_OPTIMIZED = ON )