반응형
  1. /**********************************************************************************************
    -- Title : [2k5] 실행 계획(캐시) 재사용에 영향을 주는 요소
    -- Reference : mcpworld.com
    -- Key word : 재컴파일 recompile 임계값 threshold 통계 갱신 statistics
    **********************************************************************************************/
    ※ 실행 계획 재사용에 영향을 주는 요소
     
    - 저장 프로시저가 수행되는 데이터베이스
    - 트리거 실행 시, 영향 받는 행 수
    - INSTEAD OF 트리거 ? 0행, 1행 모두 “1-plan” 공유
    - AFTER 트리거 ? 1행 “1-plan”, 0행 or n행 “n-plan” (n>1)
    - Bulk Insert문 실행 계획 캐싱 안됨
    - 8KB 이상의 일괄 처리 명령은 캐싱 안됨
    - SET 옵션
    - 테이블의 소유자 지정 여부
    - sys.syscacheobjects 의 uid
    - CREATE PROCEDURE … WITH RECOMPILE 옵션
    - EXEC (프로시저 명) WITH RECOMPILE 옵션

    - 데이터 변경으로 인한 통계 갱신 발생
    - 임시 테이블 사용시 통계 갱신 발생(핵심)
    - 오브젝트의 스키마 변경으로 인한 재컴파일
    - 데이터베이스 수준의 변경 작업
    - 재컴파일 임계값 (Threshold)
      : SQL 2000 ? rowmodctr : sysindexes 테이블에 존재
      : SQL 2005 ? colmodctr : 각 테이블에 존재 (확인 불가)
     
      : 일반 테이블(RT : Recompile Threshold)
         If  n <= 500,  RT = 500  (n: 비교 시점에서의 테이블 행 수)
         If  n > 500,  RT = 500 + 0.20 * n
      : 임시 테이블
         If n < 6, RT = 6
         If 6 <= n < 500,  RT = 500
         If n > 500, RT = 500 + 0.20 * n
      : 테이블 변수
         RT 존재하지 않음 - 통계 갱신으로 인한 재 컴파일이 발생하지 않음
반응형

+ Recent posts