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 )
Другие вопросы по тегам