2017-12-21 15 views
0

~ 43M 행을 가진 테이블이 있습니다. 내부 용으로이 테이블에서 클러스터형 컬럼 스토어 인덱스를 생성해야합니다. 이러한 목적을 위해 다음 명령을 사용합니다. 아래의 이미지를 볼 수Columnstore 행 그룹 몇 행

CREATE CLUSTERED COLUMNSTORE INDEX CCI_tblName ON dbo.tblName 
WITH (MAXDOP = 1) 

그러나 어떤 이유에서 행 그룹이 너무 작습니다.

enter image description here

어떤이의 원인이 될 수 있습니까? 내가 아는 한, 행 그룹의 최소 크기는 102,400 행이므로이 행 그룹이 얼마나 작 았는지 이해할 수 없습니다.

해당 테이블에 대해 전체적으로 775 row groups이 생성되었습니다.


업데이트 # - 1 sys.dm_db_column_store_row_group_physical_stats 통계를 확인은 트림 이유는 대부분 DICTIONARY_SIZE에 의해 발생합니다. 이 상황을 어떻게 처리할까요?

+0

SQL Server에서 사용할 수있는 메모리 양은 어느 정도입니까? IIRC에서 대상 행 그룹 크기는 1M 행이지만 사용할 수있는 메모리가 충분하지 않으면 줄어 듭니다. –

+0

dictionary_size, https://blogs.msdn.microsoft.com/sqlserverstorageengine/2014/05/03/clustered-column-store-factors-that-impact-size-of-a-groupgroup/의 문제인 것 같습니다. – DNac

+0

'sys.dm_db_column_store_row_group_physical_stats'을 검사하여'DICTIONARY_SIZE'가 이유인지 확인 했습니까? 그렇다면 해당 쿼리의 결과를 대답으로 게시하십시오. –

답변

0

서버의 메모리가 부족할 수 있습니다.

그의 블로그 게시물은 가장 중요한 현실 세계에 중점을 둡니다. - 메모리 압력. 자신의 컴퓨터 또는 제어 환경에서 일부 개발 서버에서 테스트하는 동안, 대부분의 시간은 항상 , 당신은 어떤 한계를 치는되지 않습니다. 서버에 요청을하여 폭탄을 던지는 동시 접속의 수는 이고, 사용 가능한 버퍼 풀 을 모두 삭제하는 쿼리는 없습니다. ,

는 최근 시험의 몇 가지를 실행 한과 유출 과정을 보여주기 위해 최대 메모리 설정을 을 실험하는 동안, 난 완전히 원래 값으로 재설정 잊어 하는 동안 그래서 클러스터 Columnstore 인덱스를 다시 작성 나는 매우 놀랐다. 별개의 값은 행 그룹의 최대 크기가 이되었다. 이 블로그 게시물은 내가 이후 발견 한 세부 정보 중 일부에 대한 다이빙에 관한 것입니다.

출처 : 또한 http://www.nikoport.com/2014/06/21/clustered-columnstore-indexes-part-31-memory-pressure-and-row-group-sizes/

, 당신은 겉보기에 비슷한 값, 따라서 다른 그룹 사이의 차이를 만드는 쿼리의 결과에 보이지 않는 약간의 흰색 문자가있을 수 있습니다. 이 문제도 조사해야합니다.