2014-05-13 3 views
0

방금 ​​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를 제거하면 여전히 다음과 같은 오류

메시지 8135, 수준 16, 상태 0으로

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) 

실패, 줄 10
테이블 수준 제약 조건은 사양이 아닙니다. ify 열 목록, 'SalesOrderDetailType_inemem'테이블.

메모리 최적화 테이블 유형을 만드는 방법은 무엇입니까?

+0

메모리 최적화 테이블 형식이 기존 #temp보다 빠르지 않았습니다. 쿼리는 8 초에서 10 초가되었습니다. 그리고 이것은 MEMORY_OPTIMIZED 테이블 유형의 주요 후보처럼 보입니다. 두 테이블 유형에는 800,000 개의 행이로드되고 크기는 2,000,000입니다. – Paparazzi

+0

일부 성능 테스트를 수행했는데 in-mem 개체가 인상적이지 않습니다. 나는 그들이 동시에 높은 하중을 받고 빛나고 있다고 믿게되었다. – MarkD

+0

@ MarkD 나는 많은 행에 대해 여전히 테이블 형식을 사용하지 않아야하기 때문에 이것이 희망입니다. 나는 정규 표를 가지고 있으며 나는 전환 중이다. 보길 원하고 거기에서 개선. – Paparazzi

답변

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)