ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL Server 데이터베이스 호환성 수준
    Development/SQL Server 2020. 5. 30. 21:26

    데이터베이스 호환성 수준 이란?

      간략하게 설명하면, 데이터베이스 엔진 버젼 간의 호환되는 수준을 의미합니다. 세부적으로 들어가면 호환성 수준에 따라, 지원하지 않는 인덱스 힌트 등이 생긴다거나 새로 지원하는 기능이 생겨날 수도 있게 됩니다.

    아래는 SQL Server 제품 간의 호환성 수준 및, 지원되는 호환성 수준에 대한 표 입니다.

    Product                             데이터베이스 엔진 버전기본  호환성 수준                       지정지원되는 호환성 수준 

    SQL Server 2019 (15.x) 15 150 150, 140, 130, 120, 110, 100
    SQL Server 2017(14.x) 14 140 140, 130, 120, 110, 100
    Azure SQL Database 단일 데이터베이스/탄력적 풀 12 150 150, 140, 130, 120, 110, 100
    Azure SQL Database 관리되는 인스턴스 12 150 150, 140, 130, 120, 110, 100
    SQL Server 2016(13.x) 13 130 130, 120, 110, 100
    SQL Server 2014(12.x) 12 120 120, 110, 100
    SQL Server 2012(11.x) 11 110 110, 100, 90
    SQL Server 2008 R2 10.5 100 100, 90, 80
    SQL Server 2008 10 100 100, 90, 80
    SQL Server 2005(9.x) 9 90 90, 80
    SQL Server 2000(8.x) 8 80 80

     중요

    [출처] docs.microsoft.com

    하위 버젼 데이터베이스를, 상위 버젼으로 Restore 할 경우에 지원되는 호환성 최소 수준보다 낮지 않은 이상 기존 호환성 수준을 유지하게 됩니다.

    Ex) 호환성 수준이 80인 데이터베이스를, SQL Server 2017에 Restore 시 최소 지원 수준인 100으로 설정되게 됩니다.
        호환성 수준이 110인 데이터베이스를, SQL Server 2017에 Restore 시 110을 그대로 유지하게 됩니다.

    데이터베이스의 호환성 수준을 보는 방법은 아래 쿼리를 실행하면 됩니다.

    1
    2
    3
    4
    5
    USE My_database_name  
    GO  
    SELECT compatibility_level  
    FROM sys.databases WHERE name = 'My_database_name'
    GO  
    cs

    호환성 수준을 변경하는 쿼리입니다.

    1
    2
    3
    4
     
    ALTER DATABASE My_database_name
    SET COMPATIBILITY_LEVEL = 120;  
    GO  
    cs

    설정 가능한 호환성 수준은, SQL Server 버젼마다 차이가 있을 수 있습니다.
    (90 ~ 150까지 설정 가능)

    1
    2
    ALTER DATABASE database_name
    SET COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }
    cs

      호환성 수준을 변경하게 될 경우, 이전에는 동작하던 쿼리가 실행되지 않거나 트랜잭션이 다르게 묶이게 될 수 있습니다.
    엔지니어는, 이 점을 인지하여 지원되지 않을 예정인 IMAGE, TEXT, NTEXT 데이터타입 사용을 지양하거나 쿼리 작성 시
    JOIN 문을 상세하게 명시하는 등, 호환성 수준 변경에 의한 이슈가 줄어들 수 있도록 퀄 ㅣ작성을 수행해야 합니다.

    https://docs.microsoft.com/ko-kr/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-ver15

     

    ALTER DATABASE 호환성 수준(Transact-SQL) - SQL Server

    ALTER DATABASE(Transact-SQL) 호환성 수준ALTER DATABASE (Transact-SQL) Compatibility Level 이 문서의 내용 --> 적용 대상: SQL Server Azure SQL Database Azure Synapse Analytics(SQL DW) 병렬 데이터 웨어하우스 APPLIES TO: SQL Server Azu

    docs.microsoft.com

     

    'Development > SQL Server' 카테고리의 다른 글

    Recursive CTE (Common Table Expression)  (0) 2020.02.08

    댓글

2017 TIFY Team All Rights Reserved.