SQL Server 통계 전용 데이터베이스를 만드는 데 필요한 데이터베이스 메타 데이터의 스크립트를 생성 하는 방법

소개

Microsoft SQL Server 쿼리 최적화 프로그램은 최적의 쿼리 계획을 결정 하는 다음과 같은 유형의 정보를 사용 합니다.

  • 데이터베이스 메타 데이터

  • 하드웨어 환경

  • 데이터베이스 세션 상태

일반적으로 쿼리 최적화 프로그램은 테스트 시스템에서의 동작을 재현 하려면 이러한 동일한 유형의 정보가 일부를 시뮬레이션 해야 합니다.

Microsoft 고객 기술 지원부는 데이터베이스 메타 데이터의 스크립트를 생성 하도록 요청할 수도 있습니다. Microsoft 고객 기술 지원부에 최적화 문제를 조사 하려면 데이터베이스 메타 데이터의이 스크립트를 사용 합니다. 통계 스크립트를 생성 하는 단계를 설명 합니다. 또한이 쿼리 최적화 프로그램에서 정보를 사용 하는 방법을 설명 합니다.

자세한 내용

스크립트를 생성 하는 단계를 수행 하기 전에 SQL Server 2005를 사용 하면 SQL Server Management Studio SQL Server 2005 서비스 팩 2 버전 또는 이후 버전이 있는지 확인 합니다. SQL Server 2005에서는 이전 버전의 SQL Server Management Studio 사용 하는 경우 스크립트 마법사의 모든 필요한 옵션이 문서의 단계를 제대로 들어 있지 않습니다.

전체 데이터베이스 스크립트

통계 전용 복제 데이터베이스를 생성할 때 쉽고 더욱 안정적으로 개별 개체를 스크립팅 대신 전체 데이터베이스를 스크립팅할 수 있습니다. 전체 데이터베이스를 스크립팅 하면 다음과 같은 이점을 나타납니다.

  • 문제를 재현 하는 데 필요한 종속 개체가 손실 된 문제를 피할 수 있습니다.

  • 필요한 개체를 선택 하려면 상당히 적은 단계를 필요로 합니다.

참고: 데이터베이스에 대 한 스크립트를 생성 하 고 수천 개의 개체를 포함 하는 데이터베이스에 대 한 메타 데이터 스크립팅 프로세스에 많은 CPU 리소스 사용 합니다. 한 시간에 스크립트를 생성 하는 것이 좋습니다. 또는 개별 개체에 대해 스크립트를 생성 하는 두 번째 옵션을 사용할 수 있습니다.

각 데이터베이스 쿼리에 의해 참조 되는 스크립트를 다음이 단계를 수행 합니다.

  1. SQL Server Management Studio 엽니다.

  2. 개체 탐색기에서 데이터베이스를 확장 한 다음 스크립팅할 데이터베이스를 찾습니다.

  3. 데이터베이스를 마우스 오른쪽 단추로 클릭 하 고 작업가리킨 다음 스크립트 생성을 클릭 합니다.

  4. 스크립트 마법사에서 올바른 데이터베이스가 선택 되어 있는지 확인 하십시오. 선택한 데이터베이스의 모든 스크립트 개체 확인란을 선택한 다음을 누릅니다.

  5. 스크립트 옵션 선택 대화 상자에서 다음 설정을 기본값에서 다음 표에 나열 된 값을 변경할.

    스크립팅 옵션

    값을 선택

    Ansi 패딩

    True 이면

    오류 발생 시 스크립팅 계속

    True 이면

    종속 개체에 대해 스크립트를 생성 합니다.

    True 이면

    시스템 제약 조건 이름 포함

    True 이면

    데이터 정렬 스크립팅

    True 이면

    데이터베이스 생성 스크립팅

    True 이면

    스크립트 로그인

    True 이면

    스크립트 개체 수준 사용 권한

    True 이면

    통계 스크립팅

    통계 및 히스토그램 스크립팅

    인덱스 스크립팅

    True 이면

    트리거 스크립팅

    True 이면

    참고: 로그인 스크립트 옵션 및 스크립트 개체 수준 사용 권한 옵션 필요가 없을 수도 있습니다 로그인 dbo이외의 소유 하는 개체를 포함 하지 않는 한.

  6. 다음을 클릭합니다.

  7. 파일에 스크립트 옵션을 클릭 하 고 파일 이름을 입력 합니다.

  8. 마침을 클릭합니다.

개별 개체를 스크립트

스크립트 개별 개체만 전체 데이터베이스 스크립팅에 대신 특정 쿼리에 의해 참조 되는 수 있습니다. 그러나 모든 데이터베이스 개체와 SCHEMABINDING 절을 사용 하 여 생성 된 경우 sys.depends 시스템 테이블에 종속 정보 항상 수 없습니다 정확 하 게. 이 부정확성이 다음과 같은 문제 중 하나가 발생할 수 있습니다.

  • 스크립팅 프로세스 종속 개체를 스크립팅 하지 않습니다.

  • 스크립팅 프로세스 잘못 된 순서로 개체에에서 스크립팅할 수 있습니다. 스크립트를 성공적으로 실행 하려면 생성 된 스크립트를 수동으로 편집 해야 합니다.

따라서 데이터베이스 개체 많이 있으며 스크립팅 그렇지 않으면 시간이 너무 오래 하지 않으면 개별 개체를 스크립팅 하지 않는 것이 좋습니다. 스크립트 개별 개체를 사용 해야 할 경우 다음과이 같이 하십시오.

  1. SQL Server Management Studio 데이터베이스를 확장 한 다음 스크립팅할 데이터베이스를 찾습니다.

  2. 데이터베이스를 마우스 오른쪽 단추로 클릭 스크립트 형식으로 데이터베이스를가리키고 만들기가리킨 및 다음 파일을 클릭 합니다.

  3. 파일 이름을 입력 한 다음 저장을 클릭 합니다.

    핵심 데이터베이스 컨테이너를 스크립팅 합니다. 이 컨테이너 파일, 파일 그룹, 데이터베이스 및 속성이 포함 됩니다.

  4. 데이터베이스를 마우스 오른쪽 단추로 클릭 하 고 작업가리킨 다음 스크립트 생성을 클릭 합니다.

  5. 올바른 데이터베이스가 선택 되어 있는지 확인 하 고 을 클릭 합니다.

  6. 스크립트 옵션 선택 대화 상자에서 다음 설정을 기본값에서 다음 표에 나열 된 값을 변경할.

    스크립팅 옵션

    값을 선택

    Ansi 패딩

    True 이면

    오류 발생 시 스크립팅 계속

    True 이면

    시스템 제약 조건 이름 포함

    True 이면

    종속 개체에 대해 스크립트를 생성 합니다.

    True 이면

    데이터 정렬 스크립팅

    True 이면

    스크립트 로그인

    True 이면

    스크립트 개체 수준 사용 권한

    True 이면

    통계 스크립팅

    통계 및 히스토그램 스크립팅

    스크립트가 데이터베이스 사용

    True 이면

    인덱스 스크립팅

    True 이면

    트리거 스크립팅

    True 이면

    참고: 로그인 스크립트 옵션 및 스크립트 개체 수준 사용 권한 옵션 필요가 없을 수도 있습니다 로그인 dbo이외의 소유 하는 개체를 포함 하지 않는 한.

  7. 개체 유형 선택 대화 상자에서 문제가 있는 쿼리가 참조 하는 모든 데이터베이스 객체 유형을 선택 합니다.

    예를 들어, 쿼리가 테이블을 참조 하는 경우 테이블을 선택 합니다. 쿼리가 뷰를 참조 하는 경우에 뷰와 테이블을선택 합니다. 문제가 있는 쿼리에서 사용자 정의 함수를 사용 하는 경우 함수를 선택 합니다.

  8. 쿼리에 의해 참조 되는 모든 객체 유형을 선택한 다음을 클릭 합니다.

  9. 7 단계에서 선택한 각 데이터베이스 개체 형식에 대 한 대화 상자가 나타납니다. 각 대화 상자에서 특정 테이블, 뷰, 함수 또는 기타 데이터베이스 개체를 선택 하 고 을 클릭 합니다.

  10. 파일에 스크립트 옵션을 클릭 한 다음 3 단계에서 입력 한 동일한 파일 이름을 지정 합니다.

  11. 스크립트를 시작 하려면 마침 을 클릭 합니다.

스크립팅이 완료 되 면 Microsoft 기술 지원 엔지니어를 스크립트 파일을 보냅니다. Microsoft 기술 지원 엔지니어는 다음과 같은 정보를 요청할 수도 있습니다.

  • 프로세서 및 실제 메모리 양을 존재의 수 등의 하드웨어 구성

  • 쿼리를 실행할 때 활성 상태인 SET 옵션

참고: 이미 제공한이 정보를 SQLDiag 보고서 또는 SQL 프로필러 추적을 보내. 이 정보를 제공 하는 또 다른 방법은 사용 수도 있습니다.

정보를 사용 하는 방법

다음 표에 쿼리 최적화 프로그램이 쿼리 계획을 선택 하려면이 정보를 사용 하는 방법에 대해 설명 하는 데 도움이.

메타 데이터

제약 조건

쿼리 최적화 프로그램은 자주 사용 하 여 제약 검색 쿼리와 기본 스키마 사이의 모순이. 예를 들어, 쿼리에 "어디 col = 5" 절과 "검사 (col < 5)" check 제약 조건 존재, 쿼리 최적화 프로그램은 알고 행 일치 합니다.

쿼리 최적화 프로그램은 비슷한 유형의 null 허용 여부에 대 한 공제를 하면 됩니다. 예를 들어, "col가 NULL" 절은 true 또는 false 열의 null 허용 여부에 따라이 고 외부 조인의 외부 테이블 인지 여부를 알려져 있습니다. FOREIGN KEY 제약 조건이 있으면 카디널리티 및 적절 한 조인 순서를 결정 하는 데 유용 합니다. 쿼리 최적화 프로그램은 제약 조건 정보를 사용 하 여 조인을 제거 하거나 조건자 단순화할 수 있습니다. 이러한 변경 내용을 기본 테이블을 액세스 하는 요구 사항을 제거할 수 있습니다.

통계

밀도 인덱스 및 통계를 키의 선행 열의 분포를 보여주는 히스토그램 통계 정보에 포함 되어 있습니다. 조건자의 특성에 따라 쿼리 최적화가 밀도, 히스토그램, 또는 둘 다 조건자의 카디널리티 예측에 사용할 수 있습니다. 최신 통계를 정확한 카디널리티 예측에 대 한 필요. 카디널리티 예상 연산자 비용 추정에 입력으로 사용 됩니다. 따라서 좋은 카디널리티 예측을 최적의 쿼리 계획을 얻이 있어야 합니다.

테이블 크기 (행 및 페이지 수)

쿼리 최적화 프로그램은 히스토그램 및 밀도 지정된 된 조건자의 true 또는 false 가능성에 계산를 사용 합니다. 최종 카디널리티 예측 가능성 자식 연산자에서 반환 되는 행 수를 곱하여 계산 됩니다. 테이블이 나 인덱스의 페이지 수를 IO 비용 추정에. 테이블 크기 검사, 비용을 계산할 때 사용 하며 인덱스 탐색 하는 동안 액세스 되는 페이지 수를 예측할 때 유용 합니다.

데이터베이스 옵션

몇 가지 데이터베이스 옵션이 최적화에 영향을 미칠 수 있습니다. AUTO_CREATE_STATISTICSAUTO_UPDATE_STATISTICS 옵션에는 영향을 쿼리 최적화 프로그램이 새로운 통계 또는 최신 통계 업데이트 만들어집니다. 매개 변수화 수준 입력된 된 쿼리가 쿼리 최적화 프로그램에 전달 되기 전에 입력된 된 쿼리가 매개 변수화 방법에 적용 됩니다. 매개 변수화 카디널리티 예상 영향을 미칠 수 및 인덱스 된 뷰 및 다른 유형의 최적화에 대해 일치 하는 방지할 수도 있습니다. DATE_CORRELATION_OPTIMIZATION 설정을 사용 하면 열 사이의 상관 관계를 검색 하려면 최적화 프로그램. 이 설정은 카디널리티 및 비용 예상을 적용 합니다.

환경

세션 옵션 설정

ANSI_NULLS 적용 여부 설정의 "NULL NULL =" 식은 true로 계산. 외부 조인 카디널리티 예상 현재 설정에 따라 변경 될 수 있습니다. 또한 모호한 식을 변경할 수도 있습니다. 예를 들어,은 "col NULL =" 식이 설정에 따라 다른 방식으로. 그러나는 "col IS NULL" 식은 항상 같은 방식으로 평가 합니다.

하드웨어 리소스

정렬 및 해시 연산자 비용 상대 SQL Server 사용할 수 있는 메모리 양에 따라 달라 집니다. 예를 들어 데이터 크기가 캐시 보다 큰 경우 쿼리 최적화 프로그램이 알고 데이터가 스풀 항상 해야 합니다 디스크에. 그러나 데이터 크기가 캐시 보다 훨씬 작은 작업이 메모리에서 수행 해야 하는 것입니다. 또한 SQL Server 서버에 여러 개의 프로세서가 있으면 및 병렬 처리 "MAXDOP" 힌트 또는 최대 병렬 처리 수준 구성 옵션을 사용 하 여 비활성화 되지 않은 경우 다른 최적화를 간주 합니다.

추가 도움이 필요하신가요?

기술 향상
교육 살펴보기
새로운 기능 우선 가져오기
Microsoft Insider 참가

이 정보가 유용한가요?

소중한 의견에 감사드립니다.

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×