색인 통계 정보(Index Statistics)를 사용 하여 조회 문 구 를 최적화 시 켜 조회 효율 을 높 인 다.

4422 단어 검색 최적화
만약 에 최적화 통 계 를 조회 하 는 데 아직 많은 인식 과 이해 가 없다 면 처음부터 보 는 것 을 권장 합 니 다.만약 에 잘 알 고 있다 면 바로 아래로 뛰 어 내 려 본 고의 중심 을 볼 수 있 습 니 다.
무엇이 조회 최적화 통계 정보 입 니까?
최 적 화 된 통계 정 보 를 조회 하 는 것 은 일부 대상 이다.이 대상 들 은 표 나 색인 보기 의 한 열 또는 여러 열 에 있 는 분포 와 관련 된 통계 정 보 를 포함한다.검색 최적화 기 는 이러한 통계 정 보 를 사용 하여 검색 결과 의 기수 나 줄 수 를 평가한다.이러한 기 수 를 통 해 유 틸 리 티 를 조회 하면 고 품질의 조회 계획 을 만 들 수 있 을 것 으로 추정 된다.예 를 들 어 검색 유 틸 리 티 는 더 많은 자원 을 소모 하 는 색인 검색 연산 자 를 사용 하여 검색 성능 을 향상 시 킬 수 있 습 니 다.
모든 통계 정보 대상 은 하나 이상 의 표 열 을 포함 하 는 목록 에서 만 들 고 표시 값 이 첫 번 째 열 에 분포 하 는 직사 도 를 포함한다.다 열 에 있 는 통계 정보 대상 도 각 열의 값 과 관련 된 통계 정 보 를 저장한다.이러한 관련 성 통계 정보(또는 밀도)는 열 값 의 동행 하지 않 는 수량 에 따라 파생 된다.
데이터베이스 범위 의 통계 정보 옵션 사용 하기
통계 정보 옵션 자동 생 성 AUTOCREATE_STATISTICS 와 자동 업데이트 통계 정보 옵션 AUTOUPDATE_STATISTICS 는 기본적으로 ON 입 니 다.대부분의 사용자 데이터베이스 에 사용 할 기본 값 을 사용 하 는 것 을 권장 합 니 다.다음 SELECT 문 구 를 사용 하여 모든 사용자 데이터베이스 에 이 옵션 의 현재 값 을 볼 수 있 습 니 다.
SELECT	name AS "Name", 
		is_auto_create_stats_on AS "Auto Create Stats",
		is_auto_update_stats_on AS "Auto Update Stats",
		is_read_only AS "Read Only" 
FROM sys.databases
WHERE database_ID > 4;

통계 정보 보기
DBCC SHOW_STATISTICS 디 스 플레이 표 나 색인 보기 의 현재 검색 최적화 통계 정보.문법 구조 참조 DBCC SHOWSTATISTICS,여 기 는 지나치게 논술 하지 않 습 니 다.
통계 정 보 를 언제 만 들 지 확인 합 니 다.
 검색 최적화 기 는 다음 과 같은 방식 으로 통계 정 보 를 만 들 었 습 니 다.1.색인 을 만 들 때 검색 최적화 기 는 표 나 보기 의 색인 으로 통계 정 보 를 만 듭 니 다.이 통계 정 보 는 색인 키 열 에 생 성 될 것 이다.색인 이 선별 색인 이 라면 검색 유 틸 리 티 는 이 색인 이 지정 한 줄 의 같은 부분 집합 에 선별 통계 정 보 를 만 들 것 입 니 다.
2、AUTO 에서CREATE_STATISTICS 가 ON 일 때 검색 유 틸 리 티 는 검색 어 에 있 는 단일 열 에 통계 정 보 를 만 듭 니 다.    대부분의 조회 에 대해 통계 정 보 를 만 드 는 데 사용 되 는 이 두 가지 방법 은 질 좋 은 조회 계획 을 확보 할 수 있다.그러나 매우 적은 경우 CREATE STATISTICS 문 구 를 사용 하여 추가 적 인 통계 정 보 를 만 들 고 조회 계획 을 개선 할 수 있다.이러한 부가 적 인 통계 정 보 는 검색 최적화 기 가 색인 이나 단일 열 에 통계 정 보 를 만 들 때 고려 하지 않 은 통계 관 계 를 포착 할 수 있다.응용 프로그램 은 표 데이터 에 추가 적 인 통계 관 계 를 가 질 수 있 습 니 다.통계 정보 대상 에 이러한 관 계 를 계산 하면 조회 최적화 기 가 조회 계획 을 개선 할 수 있 습 니 다.예 를 들 어 데이터 줄 부분 집합 에 대한 선별 통계 정보 나 서술 어 열 을 조회 하 는 다 열 통계 정 보 는 조회 계획 을 개선 할 수 있다.CREATE STATISTICS 문 구 를 사용 하여 통계 정 보 를 만 들 때 AUTO 를 유지 하 는 것 을 권장 합 니 다.CREATE_STATISTICS 옵션 은 ON 입 니 다.최적화 기 가 술어 열 을 조회 하기 위해 정기 적 으로 단일 열 통계 정 보 를 만 들 수 있 도록 합 니 다.다음 과 같은 모든 상황 이 적 용 될 때 CREATE STATISTICS 문 구 를 사용 하여 통계 정 보 를 만 드 는 것 을 고려 합 니 다.① 데이터베이스 엔진 최적화 컨 설 턴 트 는 통계 정 보 를 만 드 는 것 을 권장 합 니 다.② 검색 서술 어 는 같은 색인 에 있 지 않 은 여러 개의 관련 열 을 포함한다.③ 조 회 는 데이터 의 하위 집중 에서 데 이 터 를 선택 합 니 다.④ 조회 에 통계 정보 가 부족 하 다.
위의 기초 지식 을 알 고 본 고의 중점 을 시작 합 니 다.실제 작업 에서 Statistics to Improve Query Performance 를 어떻게 사용 하 는 지
통상 적 으로 설정 되 어 있다
 AUTO_CREATE_STATISTICS 와 AUTOUPDATE_STATISTICS 는 데이터 베 이 스 를 자동 으로 생 성하 여 관리 하지만,때로는 만 족 스 럽 지 못 할 때 가 있다.특히 통계 정 보 를 만 들 었 지만 제때에 업데이트 되 지 않 아 조회 가 오래 걸 렸 다.이러한 상황 에서 가장 뚜렷 한 특징 은 where 조건 의 매개 변수 값 을 수정 하면 실행 시간 에 매우 큰 차이 가 있 을 수 있다 는 것 이다.예 를 들 어 아래 의 이 예.
--1
SELECT COUNT(*) 
FROM    a WITH (NOLOCK) , 
        b WITH (NOLOCK) 
WHERE   a.Daytime = b.AccountDate 
        AND a.Siteid = b.Siteid 
        AND a.Prodid = b.Prodid 
        AND b.Daytime = '2013-2-28' 
--2
SELECT COUNT(*) 
FROM     a WITH (NOLOCK) , 
         b WITH (NOLOCK) 
WHERE   a.Daytime = b.AccountDate 
        AND a.Siteid = b.Siteid 
        AND a.Prodid = b.Prodid 
        AND b.Daytime = '2013-3-31' 

두 개의 표 a,b 의 데 이 터 량 은 모두 5,6 백만 정도 이 고 구조 적 으로 b 표 는 연합 메 인 키(Daytime,Prodid,Siteid)이 며 a 표 에서 이 세 개의 열 은 비 집합 연합 색인 이다.이것 은 비교적 간단 한 내부 연결 문 입 니 다.날짜 파 라 메 터 를 변경 할 때 전 자 는 1s 만 필요 하고 후 자 는 30+가 필요 합 니 다.
왜 이런 차이 가 생 겼 을 까?여기.
제 분석 방향 을 말씀 드 리 겠 습 니 다.먼저 실행 계획 의 차이 가 매우 큽 니 다.주요 차 이 는 첫 번 째 로 해시 연결 을 갔 고,두 번 째 는 LOOP JOIN(
LOOP JOIN 과 해시 가 연 결 된 구체 적 인 정 보 는 온라인 도움말 상의 설명 을 참고 할 수 있다)두 테이블 모두 데이터 양 이 많 기 때문에 LOOP JOIN 은 불합리한 방안 이다.정상적으로 실행 계획 은 똑 같 을 것 입 니 다.제 가 먼저 생각 한 것 은 색인 조각 입 니 다.스 크 립 트 를 통 해 사 용 된 색인 조각 율 이 매우 낮 습 니 다.이 원인 을 제외 하고 색인 통계 정 보 를 생각 했 습 니 다.a 표 메 인 키 가 지난번 에 통계 정 보 를 업데이트 한 날 짜 는 2013-03-04 인 것 을 발 견 했 습 니 다.그리고 날짜 파 라 메 터 를 조정 하 는 것 을 발 견 했 습 니 다.이것 은 이전의 조회 가 매우 빠 릅 니 다.뒤에 다 느 려.그리고 사용 UPDATE STATISTICS 는 통계 정 보 를 업 데 이 트 했 고 두 문장의 실행 계획 이 일치 하 며 속도 가 정상 이 었 다.
요약:다음 에 조회 할 때 하나의 매개 변수 나 여러 개의 매개 변수 값 으로 인해 조회 실행 시간 차이 가 매우 큰 문 구 는 대부분 Statistics 가 제때에 따라 가지 못 해서 우 리 는 수 동 으로 업데이트 해 야 한다.이후 에 우 리 는 이 색인 의 자동 업데이트 통계 가 ON 인지 관찰 합 니 다.만약 설정 이 정상 적 이지 만 Statistics 가 제때에 따라 가지 못 한다 면 job 를 만들어 통계 정보 업데이트 상황 을 정기 적 으로 검사 하고 처리 하 는 것 을 권장 합 니 다.

좋은 웹페이지 즐겨찾기