Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Microsoft SQL Server 데이터베이스 호환성 수준

데이터베이스 수준 설정 중 하나인 데이터베이스 호환성 수준은 데이터베이스가 작동하는 방식에 영향을 줍니다. Microsoft® SQL Server®의 각 새 버전에는 많은 새 기능이 도입되었으며 대부분은 새 키워드가 필요하고 이전 버전에 있던 특정 동작을 변경해야 합니다. 이전 버전과의 호환성을 최대화하기 위해 Microsoft에서는 필요에 따라 호환성 수준을 설정할 수 있습니다.

데이터베이스 호환성 수준 기본값

기본적으로 모든 데이터베이스는 생성된 modeldatabase 버전의 호환성 수준을 상속합니다. 예를 들어 SQL Server 2012 데이터베이스의 호환성 수준은 변경하지 않는 한 기본적으로 110입니다.

복원 후 호환성 수준

이전 버전의 SQL에서 수행한 데이터베이스 백업을 복원할 때 소스 호환성 수준이 지원되는 최소 수준보다 낮은 경우를 제외하고 데이터베이스 호환성 수준은 백업을 수행한 인스턴스와 동일하게 유지됩니다. 이 경우 데이터베이스 호환성 수준이 지원되는 가장 낮은 버전으로 변경됩니다. 예를 들어 SQL Server 2005 데이터베이스 백업을 SQL Server 2017로 복원하는 경우 복원된 데이터베이스의 호환성 수준은 지원되는 최소 SQL 2017 수준이기 때문에 100으로 설정됩니다.

업그레이드 후 호환성 수준

tempdb, model, msdb 및 리소스 데이터베이스의 호환성 수준은 업그레이드 후 현재 호환성 수준으로 설정됩니다. 마스터 시스템 데이터베이스는 업그레이드 전의 호환성 수준을 유지합니다.

호환성 수준 결정

현재 호환성 수준을 확인하려면 compatibility_level을 쿼리합니다. sys.databases 열 .

다른 호환성 수준으로 변경하려면 ALTER DATABASE를 사용하세요. 다음 예와 같이 명령:

Use Master
Go
ALTER DATABASE <database name>SET COMPATIBILITY_LEVEL = <compatibility-level>;

원하는 경우 마법사를 사용하여 호환성 수준을 변경할 수 있습니다. 그러나 사용자가 데이터베이스에 온라인으로 액세스하는 경우 먼저 데이터베이스를 단일 사용자 모드로 변경해야 합니다. 그런 다음 마법사를 사용하여 레벨을 변경한 후 데이터베이스를 다중 사용자 모드로 설정해야 합니다.

마법사와의 호환성 수준을 변경하려면 데이터베이스 –> 속성 –> 옵션 –> 데이터베이스 호환성 수준을 마우스 오른쪽 버튼으로 클릭합니다. 다음 이미지와 같이:

Microsoft SQL Server 데이터베이스 호환성 수준 (/article/uploadfiles/202207/2022070872110) 피>

기본 및 지원되는 호환성 수준

다음 표에는 기본 호환성과 지원되는 호환성 수준 목록이 있는 SQL Server 버전이 나와 있습니다.

Microsoft SQL Server 데이터베이스 호환성 수준 (/article/uploadfiles/202207/2022070812110) 피>

출처 :https://www.sqlskills.com/blogs/glenn/database-compatibility-level-in-sql-server/

데이터베이스 호환성 수준 및 성능

SQL 2014 이전 버전의 SQL Server에서 데이터베이스 관리자는 성능 관점에서 데이터베이스 호환성 수준에 대해 걱정하지 않았습니다. 데이터베이스 호환성 수준은 주로 해당 버전에 도입된 새로운 기능을 사용할 수 있는지 또는 지원되지 않는 기능을 비활성화할지 여부를 제어하는 ​​메커니즘으로 사용되었습니다. 이전 버전과의 호환성을 제어하는 ​​데에도 사용되었습니다.

이제 한 버전에서 다른 버전으로 마이그레이션할 때 성능 변화를 이해하기 위해 전체 회귀 테스트를 수행해야 합니다. 마이그레이션 후에도 쿼리가 이전 호환성 수준에서 더 나은 성능을 보이는 경우가 있습니다. 그러나 다른 경우에는 반대일 수 있으므로 전체 회귀 테스트를 수행해야 합니다.

SQL Server 2014 이후로 호환성 수준 120 이상에서 실행되는 모든 데이터베이스는 새로운 카디널리티 추정치를 사용할 수 있습니다. 기능. 카디널리티 추정은 예상 비용을 기반으로 SQL Server가 쿼리를 실행하는 방법을 결정하기 위해 발생하는 논리입니다. 추정은 해당 쿼리와 관련된 개체와 관련된 통계의 입력을 사용하여 계산됩니다. 실질적으로 상위 수준에서 카디널리티 추정치는 쿼리에서 참조하는 테이블 및 개체에 포함된 값, 고유한 값 수 및 중복 수의 분포에 대한 정보와 결합된 행 수 추정치입니다. 이러한 추정치를 잘못 사용하면 불필요한 디스크가 발생할 수 있습니다. /O 메모리 부여가 충분하지 않거나(예:TempDB 유출) 병렬 계획 실행보다 직렬 계획 실행 선택으로 인해 몇 가지 가능성이 있습니다. 다음 블로그 게시물에서 카디널리티 추정에 대해 더 자세히 논의할 계획입니다.

호환성 수준 변경의 영향

호환성 수준을 변경하면 데이터베이스에 기능 집합을 변경하도록 지시합니다. 즉, 일부 기능이 추가되는 동시에 일부 이전 기능이 제거됩니다. 예를 들어 FOR BROWSE 절은 INSERT에서 허용되지 않습니다. 및 SELECT INTO 문은 호환성 수준 100에서 허용되지만 호환성 수준 90에서는 무시됩니다. 응용 프로그램에서 이 기능을 사용하는 경우 이 변경으로 인해 예기치 않은 결과가 발생할 수 있습니다.

데이터베이스를 낮은 호환성 수준에서 높은 호환성 수준으로 이동할 때 호환성이 변경되지 않으면 새 기능을 사용하지 못할 수 있습니다. 그러나 그것이 완전히 옳은 것은 아닙니다. 이것은 데이터베이스 수준 기능에만 해당됩니다. 호환성 수준을 변경하지 않아도 인스턴스 수준 기능을 사용할 수 있습니다.

결론

데이터베이스 호환성 수준은 SQL Server가 특정 기능을 사용하는 방법을 정의합니다. 특히, 특정 기능이 특정 기능을 제공하는 SQL Server의 지정된 버전처럼 작동하도록 합니다. 이것은 데이터베이스 속성이기 때문에 호환성은 해당 특정 데이터베이스에 대한 데이터베이스 수준 기능에만 영향을 미칩니다.

버전이 더 높은 서버로 데이터베이스를 이동하거나 인스턴스 업그레이드를 수행하여 데이터베이스를 업그레이드하는 경우 해당 수준이 지원되는 한 호환성 수준은 동일하게 유지됩니다.

호환성 수준이 SQL 2014 이상으로 설정된 경우 SQL Server는 새로운 카디널리티 추정 기능을 사용합니다. 호환성 수준을 2012 이하로 설정하면 이전 옵티마이저가 사용됩니다.

피드백 탭을 사용하여 의견을 남기거나 질문하십시오.

전문가 관리, 관리 및 구성으로 환경 최적화

Rackspace의 애플리케이션 서비스(RAS) 전문가는 광범위한 애플리케이션 포트폴리오에서 다음과 같은 전문적이고 관리되는 서비스를 제공합니다.

  • 전자상거래 및 디지털 경험 플랫폼
  • 전사적 자원 관리(ERP)
  • 비즈니스 인텔리전스
  • Salesforce CRM(고객 관계 관리)
  • 데이터베이스
  • 이메일 호스팅 및 생산성

우리는 다음을 제공합니다:

  • 편향 없는 전문성 :즉각적인 가치를 제공하는 기능에 중점을 두고 현대화 여정을 간소화하고 안내합니다.
  • 광신적인 경험 ™:프로세스를 먼저 결합합니다. 기술 두 번째.®전담 기술 지원을 통해 포괄적인 솔루션을 제공하는 접근 방식.
  • 타의 추종을 불허하는 포트폴리오 :광범위한 클라우드 경험을 적용하여 올바른 클라우드에서 올바른 기술을 선택하고 배포할 수 있도록 지원합니다.
  • 민첩한 전달 :귀하의 여정에서 귀하를 만나고 귀하의 성공에 맞춰 귀하의 성공을 맞춥니다.

시작하려면 지금 채팅하세요.