2011-04-21 2 views
2

매우 큰 데이터베이스의 SQL 2008에 대한 통계를 처리하는 좋은 방법은 무엇입니까? 100m + 행이 여러 개인 테이블대형 데이터베이스의 SQL 통계

통계를 자동으로 업데이트해야합니까? 통계 자동 업데이트 비동기 도움말이 자동 업데이트됩니까? 일종의 일정에 대한 통계를 수동으로 업데이트하도록 작업을 설정해야합니까?

일반적으로 데이터는 테이블에 추가되지만 이전 데이터는 자주 변경되지 않습니다.

업데이트 : 매시간 약 100,000 개의 행이 삽입되었습니다. 대부분보고는 데이터에서 수행됩니다. 하루에 ~ 500k 행의 1-2 열에서 업데이트가 발생할 수 있습니다.

답변

2

큰 통계표를 하루 중 큰 테이블에서 실행하고 싶지 않으므로 아니오라고 대답합니다. 어쨌든 시작하기 전에 임계 값 (20 % 믿을 만함)을 맞춰야합니다.

이제 색인을 다시 작성한 작업이 있으면 통계가 자동으로 업데이트됩니다 (reorg/defrag를 사용하면 맞지 않습니다)

또한 1 억 개의 행이 많지는 않습니다. 테이블이 12 바이트 너비 (행당) 인 경우 행 수가 4100 바이트와 비교할 때 큰 차이가 있습니다 (특히 행 테이블 당 4100 바이트로 인해 전적으로 페이지 당 1 줄)

+0

을보고 10192, 74 및 506을 테스트해야합니다. –

1

매우 큰 데이터베이스의 SQL 2008에 대한 통계를 처리하는 좋은 방법은 무엇입니까? 각각 개의 100m + 행을 가진 다중 테이블.

제발 전화하지 마세요. 나는 당신에게 아주 큰 예를 보여줍니다. 우리는 창고에있는 일부 데이터에 대해서만 SQL 문을 실행합니다. 온도 공간 사용량은 180GB로 최고입니다. 그 성명서. Db? 2 자리 테라 바이트. 100m + 행은 작지 만 그리 크지 않습니다.

통계 자동 업데이트가 필요합니까? 통계 자동 업데이트 비동기 도움말이 자동 업데이트됩니까? 일종의 일정에 대한 통계를 수동으로 업데이트하도록 설정해야합니까?

종속. 업데이트 및 사용 패턴.

일반적으로 데이터는 테이블에 추가되지만 이전 데이터는 자주 변경되지 않습니다.

얼마나 자주? 비율은 얼마입니까? 어떤 데이터? 통계가 범위를 벗어나거나 천천히 이동합니까? 합리적인 제안을하기 위해 더 많은 정보를 제공해야합니다.

+0

사실, 1 열 1 억 행 테이블은 55 열 1 억 행 테이블에 비해 땅콩입니다 – SQLMenace

+0

내 질문에 조금 더 많은 정보를 추가했습니다. 행 수가 없기 때문에 크기가 500GB이므로 매우 큰 데이터베이스라고합니다. 쿼리는 tempdb를 250GB 크기로 가져올 수 있습니다 –

+0

요즘 500GB는 VLDB가 아닙니다 ... 페타 바이트 크기의 데이터베이스가 일반적입니다. tempdb가 250GB로 증가하면 주문하는 열에 인덱스를 추가하는 것을 고려할 수 있습니다. 정렬 작업은 tempdb에서 이루어집니다. 그러나 먼저 – SQLMenace

1

통계 자동 업데이트가 필요합니까?

그것은 다름 ...

윌 자동 업데이트 통계를 비동기 전혀 을 도와 드릴까요?

쿼리를 죽이는 데 오랜 시간이 걸리는 통계 업데이트를 방지하는 데 도움이됩니다. 기본적으로 SQL Server에 쿼리가 들어 오면 쿼리를 보유하고 통계를 업데이트 한 다음 쿼리를 실행하는 대신 통계가 오래되었음을 알게됩니다. 그냥 쿼리를 실행하고 장면 뒤에서 통계를 업데이트하십시오. 따라서 통계 업데이트의 필요성을 시작한 특정 쿼리는 이점을 얻지 못하지만 통계가 먼저 업데이트되기를 기다리지 않아도됩니다.

일종의 통계를 수동으로 업데이트해야합니까?

예! 통계는 테이블 데이터의 20 %가 "변경"된 경우에만 업데이트됩니다. 기본적으로 통계를 말하는 것과 같을 수있는 매우 큰 테이블에서는 업데이트되지 않습니다.새로운 데이터가 추가되는 커다란 테이블이 있다면 항상 통계를 업데이트 할 예정 프로세스가 있어야합니다.

1

"의존적"은 좋은 대답이지만 재현 가능하고 측정 가능한 개선이없는 경우 기본값으로 남겨 두었습니다.

수동 하룻밤 다음 자동 업데이트에서 발로 적은 기회가있다. 그리고 당신은 ("동기 또는 비동기 통계 업데이트를 사용하는 방법"을 참조하십시오) AUTO_UPDATE_STATISTICS_ASYNC를 설정하여 통계 업데이트를 연기 할 수 통계를 업데이트하는 경우

균형을 맞추지 않거나 "켜기"인 기본값을 변경하지 않겠습니다.