2017-05-04 12 views
0

나는 100 개 이상의 열이있는 기존 테이블이 있습니다. 이제 같은 테이블에 클러스터 된 columnstore 인덱스를 만들려고하지만 일부 열이 제한으로 인해 데이터 형식 조건을 충족시키지 않아 오류가 발생합니다. Clustered ColumnStore Index 요구 사항을 충족시키지 못하는 열을 무시하는 방법이 있습니까? 고맙습니다.데이터 형식 문제로 인해 참여할 수없는 열 저장소 인덱스의 일부로 열을 무시하는 방법

SQL for creating CCSI :- 



CREATE CLUSTERED COLUMNSTORE INDEX CCSI 
ON [Dbname].[dbo].[testtable] 
WITH (DROP_EXISTING = OFF); 

Error :- 

The statement failed. Column 'Column1' has a data type that cannot participate in a columnstore index. Omit column 'Column1'. 
+0

, 당신은 columnstore 인덱스에 의해 지원되지 않는 데이터 형식이있는 열을 포함해서는 안된다 - https : //로 raresql합니다. column/index-not-a-column-index-omit-column에 참여할 수없는 데이터 유형 -/ –

답변

0

Clustered ColumnStore Index를 사용하는 동안 열을 무시할 수 없습니다. 선택한 열의 아래로 비 클러스터 ColumnStore 색인을 위해 이동해야합니다 : 당신은 columnstore 인덱스를 만들 때마다

CREATE NONCLUSTERED COLUMNSTORE INDEX CCSI 
ON [Dbname].[dbo].[testtable] (Col1, Col2...required columns) 
WITH (DROP_EXISTING = OFF); 
+0

테이블 목록을 반복하고 있습니다. 열을 하드 코딩하는 대신 일반 솔루션을 작성하고 싶습니다. 각 테이블에는 고유 한 열이 있습니다. – Teja

+0

해당 테이블에 대해 sys.columns를 사용하여 모든 열 이름을 반복해야하고 클러스터 된 열 저장소 인덱스의 열을 제외 할 방법이 없으므로 생성해야 할 수도 있습니다 –