반응형

/**********************************************************************************************
-- Title : [2k5] 통계 정보가 갱신되는 경우와 자동 갱신 설정
-- Reference : mcpworld.com
-- Key word : 통계 statistics 컬럼 변경 카운터 auto_update_statistics sp_autostats norecompute
**********************************************************************************************/
◆ 빈 테이블에 데이터가 입력되는 경우
  rows = 0 -> rows > 0

◆ 테이블의 행 수가 500행 이하이면서, 통계가 포함하고 있는 컬럼의 변경 카운터(colmodctr)가
  500 이상인 경우
  rows <= 500,  colmodctr >= 500

◆ 테이블의 행 수가 500행 이상이면서, 통계가 포함하고 있는 컬럼의 변경 카운터(colmodctr)가
  500 + (테이블의 전체 행 수의 20%) 인 경우
  rows > 500, colmodctr >= 500 + rows * 0.20

◆ 자동 통계 갱신 설정 변경
   데이터베이스 수준
     ? 해당 데이터베이스의 모든 통계에 대한 변경
       ALTER DATABASE AdventureWorks SET AUTO_UPDATE_STATISTICS OFF;
   테이블 수준
     ? 해당 테이블의 모든 통계에 대한 변경
       UPDATE STATISTICS Person.Address WITH NORECOMPUTE;
       EXEC sp_autostats 'Person.Address', 'ON';
   개별 통계 수준
     ? 해당 통계에 대해서만 변경
       UPDATE STATISTICS Person.Address(IX_Addr_1) WITH NORECOMPUTE;
       EXEC sp_autostats 'Person.Address', 'ON', IX_Address_StateProvinceID;


Table Type Empty Condition Threshold when empty Threshold when not empty
Permanent Table < 500 Rows # of Changes >= 500 # of Changes >= 500 + (20% of Cardinality)
Temporary Table < 6 Rows # of Changes >= 6 # of Changes >= 500 + (20% of Cardinality)

◆ Permanet Table

  • Row수가 500을 넘지 않을 경우 500Row 이상 변경되면 통계 업데이트
  • Row수가 500을 넘을 경우 (500 + 전체Row의 20%)가 변경되면 통계 업데이트

◆ Temporary Table

  • Row수가 500을 넘지 않을 경우 500Row 이상 변경되면 통계 업데이트
  • Row수가6을 넘을 경우 (6 + 전체Row의 20%)가 변경되면 통계 업데이트
반응형

+ Recent posts