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

기술 자료 번역 기술 자료 번역
기술 자료: 914288 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

소개

Microsoft SQL Server 2005에서 또는 Microsoft SQL Server 2008의 쿼리 최적화 프로그램이 최적의 쿼리 계획을 결정하기 위해 다음과 같은 유형의 정보 사용합니다.
  • 데이터베이스 메타데이터
  • 하드웨어 환경
  • 데이터베이스 세션 상태
일반적으로 쿼리 최적화 프로그램은 테스트 시스템에서 문제를 재현하는 경우 이러한 동일한 유형의 정보가 일부 시뮬레이트해야 합니다.

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

추가 정보

스크립트를 생성하려면 다음 단계를 수행하기 전에 SQL Server 2005를 사용하는 경우 SQL Server 관리 Studio SQL Server 2005 서비스 팩 2를 버전 또는 이후 버전이 있는지 확인하십시오. SQL Server 2005 이전 버전의 SQL Server 관리 Studio 사용하는 경우 스크립트 마법사 제대로 작동하려면 모든 필요한 옵션을 이 문서에 나와 있는 단계 포함되어 있지 않습니다.

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

통계 전용 복제 데이터베이스를 생성할 때 쉽고 더 안정적으로 개별 개체를 스크립팅 대신 전체 데이터베이스를 스크립팅할 수 있습니다. 전체 데이터베이스 스크립트 때 다음과 같은 이점을 나타납니다.
  • 문제를 재현하는 데 필요한 종속 개체가 손실된 문제가 발생하지 않습니다.
  • 필요한 개체를 선택하려면 상당히 적은 단계를 합니다.
참고 데이터베이스에 대한 스크립트를 생성하고 수천 개의 개체 데이터베이스에 대한 메타데이터를 포함하는 경우 스크립팅 프로세스에 많은 CPU 리소스를 소비합니다. 사용량이 적은 시간 중에 스크립트를 생성하는 것이 좋습니다. 또는 두 번째 옵션은 개별 개체에 대한 스크립트를 생성할 수 있습니다.

쿼리에 의해 참조되는 각 데이터베이스 스크립팅하려면 다음과 같이 하십시오.
  1. SQL Server 관리 Studio 엽니다.
  2. 개체 탐색기 에서 데이터베이스 를 확장한 다음 스크립팅할 데이터베이스를 찾습니다.
  3. 데이터베이스를 마우스 오른쪽 단추로 클릭하고, 작업 가리킨 다음 스크립트 생성 을 클릭하십시오.
  4. 스크립트 마법사에서 올바른 데이터베이스가 선택되었는지 확인하십시오. 모든 스크립트 개체를 선택한 데이터베이스의 확인란을 클릭한 후 다음 을 클릭하십시오.
  5. 스크립트 옵션 선택 대화 상자에서 다음 설정을 기본값에서 다음 표에 나열된 값을 변경하십시오.
    표 축소표 확대
    스크립팅 옵션선택한 값
    ANSI 안쪽 여백True
    스크립팅 오류 따라 계속True
    종속 개체 스크립트 생성True
    시스템 제한 이름 포함True
    스크립트 데이터 정렬True
    데이터베이스 스크립트 만들기True
    로그인 스크립트True
    스크립트 개체 수준 권한True
    스크립트 통계통계 및 히스토그램을 스크립트합니다
    인덱스 스크립트True
    트리거 스크립트True
    참고dbo 가 아닌 로그인이 소유하는 개체를 스키마에 포함되어 있지 않으면 로그인 스크립트 옵션 및 스크립트 개체 수준 사용 권한 옵션을 필요하지 않을 수 있습니다.
  6. 다음 을 클릭하십시오.
  7. 파일에 스크립트 옵션을 클릭한 다음 파일 이름을 입력하십시오.
  8. 마침 을 클릭하십시오.

개별 개체를 스크립트

전체 데이터베이스 스크립팅에 대신 특정 쿼리에 의해 참조되는 스크립트 개별 개체만이 있습니다. 하지만 WITH SCHEMABINDING 절을 사용하여 모든 데이터베이스 개체를 만든 경우가 아니면 sys.depends 시스템 테이블에 종속성 정보를 항상 정확하지 않을 수 있습니다. 이 부정확성의 다음 문제 중 하나가 발생할 수 있습니다.
  • 종속 개체 스크립팅 프로세스를 스크립트로 있지 않습니다.
  • 스크립팅 프로세스가 잘못된 순서로 개체에 스크립팅할 수 있습니다. 스크립트가 성공적으로 실행하려면 생성된 스크립트를 수동으로 편집해야 합니다.
따라서 우리는 데이터베이스 개체 많이 있으며 스크립팅 그렇지 않으면 시간이 너무 오래 걸립니다 않으면 스크립트 개별 개체를 사용하지 않는 것이 좋습니다. 스크립트 개별 개체를 사용해야 하는 경우 다음과 같이 하십시오.
  1. SQL Server 관리 Studio 데이터베이스 를 확장한 다음 스크립팅할 데이터베이스를 찾습니다.
  2. 데이터베이스를 마우스 오른쪽 단추로 클릭하고, 스크립트 형식으로 데이터베이스, CREATE 하는 데 가리킨 다음 파일 을 클릭하십시오.
  3. 파일 이름을 입력한 다음 저장 을 클릭하십시오.

    핵심 데이터베이스 컨테이너가 스크립팅됩니다. 이 컨테이너 파일, 파일 그룹, 데이터베이스 및 속성이 포함됩니다.
  4. 데이터베이스를 마우스 오른쪽 단추로 클릭하고, 작업 가리킨 다음 스크립트 생성 을 클릭하십시오.
  5. 올바른 데이터베이스가 선택되었는지 확인하고 을 누릅니다.
  6. 스크립트 옵션 선택 대화 상자에서 다음 설정을 기본값에서 다음 표에 나열된 값을 변경하십시오.
    표 축소표 확대
    스크립팅 옵션선택한 값
    ANSI 안쪽 여백True
    스크립팅 오류 따라 계속True
    시스템 제한 이름 포함True
    종속 개체 스크립트 생성True
    스크립트 데이터 정렬True
    로그인 스크립트True
    스크립트 개체 수준 권한True
    스크립트 통계통계 및 히스토그램을 스크립트합니다
    USE 데이터베이스 스크립트True
    인덱스 스크립트True
    트리거 스크립트True
    참고dbo 가 아닌 로그인이 소유하는 개체를 스키마에 포함되어 있지 않으면 로그인 스크립트 옵션 및 스크립트 개체 수준 사용 권한 옵션을 필요하지 않을 수 있습니다.
  7. 개체 유형 선택 대화 상자에서 문제가 있는 쿼리가 참조하는 모든 데이터베이스 개체 유형을 선택하십시오.

    예를 들어, 쿼리에 대해서만 테이블을 참조하는 경우 테이블 을 선택하십시오. 쿼리가 뷰를 참조하는 경우, 뷰 및 테이블 선택하십시오. 사용자 정의 함수를 문제가 있는 쿼리를 사용하는 경우 함수를 선택하십시오.
  8. 쿼리에서 참조하는 모든 개체 유형을 선택한 후 다음 을 클릭하십시오.
  9. 7단계에서 선택한 각 데이터베이스 개체 형식에 대한 대화 상자가 나타납니다. 각 대화 상자에서 특정 테이블, 뷰, 함수 또는 기타 데이터베이스 개체를 선택하고 을 누릅니다.
  10. 파일에 스크립트 옵션을 클릭한 다음 3단계에서 입력한 파일 이름을 지정하십시오.
  11. 스크립트 마침 을 클릭하여 시작합니다.
스크립트 끝나면 스크립트 파일을 Microsoft 기술 지원 엔지니어에게 보냅니다. 또한 Microsoft 지원 엔지니어 다음 정보를 요청할 수 있습니다.
  • 프로세서 및 실제 메모리 양을 존재하는 수를 포함하여 하드웨어 구성
  • 쿼리를 실행할 때 활성 상태인 SET 옵션
참고 이미 이 정보를 SQLDiag 보고서 또는 SQL 프로필러 추적을 보내 제공한 수 있습니다. 또한 또 다른 방법은 이 정보를 제공하기 위해 사용한 수 있습니다.

정보가 사용되는 방법을

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

메타데이터

표 축소표 확대
제약 조건쿼리 최적화 프로그램은 자주 제약 조건을 contradictions 쿼리를 원본으로 사용하는 스키마 사이의 감지합니다. 예를 들어, 쿼리에 있는 있는 "WHERE col = 5" 절 및 "CHECK col < 5" 쿼리 최적화 프로그램은 행이 일치하는지 알고, CHECK 제약 조건이 있습니다.

쿼리 최적화 프로그램은 Null 허용에 대한 공제액 비슷한 종류의 있습니다. 예를 들어, NULL이 WHERE col IS"절은 true 또는 false 열의 Null 허용 여부 따라 및 외부 조인 외부 테이블의 열을 여부를 것으로 알려져 있습니다. FOREIGN KEY 제약 조건은 존재를 카디널리티 및 적절한 조인 순서를 결정하는 데 유용합니다. 쿼리 최적화 프로그램은 제약 조건 정보를 조인을 제거하거나 조건자 단순화할 수 있습니다. 이러한 변경 내용을 기본 테이블에 액세스 요구 사항을 제거할 수 있습니다.
통계밀도, 인덱스 및 통계를 키의 선행 열의 분포를 보여주는 히스토그램 통계 정보가 포함되어 있습니다. 조건자의 특성에 따라 쿼리 최적화 프로그램은 밀도, 히스토그램, 또는 둘 다 조건자 카디널리티 추정할 수 있습니다. 최신 통계를 정확한 카디널리티 예측이 필요합니다. 카디널리티 예상 연산자 비용 추정 에 입력으로 사용됩니다. 따라서 좋은 카디널리티 예측을 최적의 쿼리 계획을 얻을 수 있어야 합니다.
테이블 크기 (행 및 페이지 수)쿼리 최적화 프로그램은 히스토그램 및 밀도 지정된 조건자의 true 또는 false 가능성에 계산합니다. 최종 카디널리티 예측 가능성을 자식 연산자가 반환한 행 수를 곱하여 계산됩니다. 테이블 또는 인덱스 페이지 수를 IO 비용 추정 있는 요소입니다. 테이블 크기 검사, 비용을 계산하는 데 사용되는 및 인덱스 검색 중 액세스하는 페이지 수를 예측할 때 유용합니다.
데이터베이스 옵션몇 가지 데이터베이스 옵션이 최적화에 영향을 줄 수 있습니다. 쿼리 최적화 프로그램은 새 통계 또는 날짜가 지난 통계 업데이트 만듭니다 여부를 AUTO_CREATE_STATISTICSAUTO_UPDATE_STATISTICS 옵션에 영향을 줍니다. 매개 변수화 수준 입력된 쿼리가 쿼리 최적화 프로그램에 전달되는 전에 입력된 쿼리가 변수화되지 방법에 영향을 줍니다. 매개 변수화 카디널리티 예상 영향을 미칠 수 있으며 또한 인덱스된 뷰 및 다른 유형의 최적화에 대해 일치하는 방지할 수 있습니다. DATE_CORRELATION_OPTIMIZATION 설정을 열 사이의 상관 관계를 검색하려면 최적화를 발생합니다. 이 설정은 카디널리티 및 비용 예상을 영향을 미칩니다.

환경

표 축소표 확대
세션의 SET 옵션여부에 영향을 설정은 ANSI_NULLS 있는 "NULL NULL =" true로 식을 계산합니다. 외부 조인 카디널리티 예상 현재 설정에 따라 변경될 수 있습니다. 또한 모호한 식을 변경할 수도 있습니다. 예를 들어, "col NULL =" 식은 해당 설정에 따라 다르게 계산됩니다. 그러나, "col IS NULL" 식은 항상 같은 방법으로 계산됩니다.
하드웨어 리소스정렬 및 해시 연산자 비용 상대 SQL Server에 사용할 수 있는 메모리 양을 따라 달라집니다. 데이터 크기가 캐시 보다 큰 경우, 예를 들어, 쿼리 최적화 프로그램은 데이터를 항상 스풀된 수 합니다 알고 디스크에. 그러나 데이터 크기가 캐시 것보다 훨씬 작은 경우에는 작업이 메모리에서 수행해야 할 것 같습니다. 또한 SQL Server 서버에 두 개 이상의 프로세서가 있으면 및 병렬 처리 "MAXDOP" 힌트 또는 최대 병렬 처리 수준 을 구성 옵션을 사용하여 비활성화되지 않는 경우 다른 최적화를 간주합니다.
SQL Server 재고 단위 (SKU) 유지특정 기능은 특정 버전의 SQL Server 2005 또는 SQL Server 2008 에 대해서만 사용할 수 있습니다. 예를 들어, 인덱스된 뷰 쿼리 일치하는 경우에만 SQL Server 2005 Enterprise Edition 발생합니다. 마찬가지로, 계획 가이드에 대해 일치하는 SQL Server 2000 스탠더드 및 SQL Server 2005 Enterprise Edition이 제한됩니다.

속성

기술 자료: 914288 - 마지막 검토: 2009년 4월 7일 화요일 - 수정: 3.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
키워드:?
kbmt kbexpertiseinter kbexpertiseadvanced kbsql2005engine kbhowto kbinfo KB914288 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com