다음을 통해 공유


유니코드 압축 구현

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance

SQL Server는 SCSU(Standard Compression Scheme for Unicode) 알고리즘의 구현을 사용하여 행 또는 페이지 압축 개체에 저장된 유니코드 값을 압축합니다. 이러한 압축 개체의 경우 nchar(n)nvarchar(n) 열에 유니코드 압축이 자동으로 설정됩니다. 데이터베이스 엔진 로캘에 관계없이 유니코드 데이터를 2바이트로 저장합니다. 이 방식을 UCS-2 인코딩이라고 합니다. 일부 로캘의 경우 SQL Server에서 SCSU 압축을 구현하면 스토리지 공간을 최대 50% 절약할 수 있습니다.

지원되는 데이터 유형

유니코드 압축은 고정 길이 nchar(n)nvarchar(n) 데이터 형식을 지원합니다. 행 외부 또는 nvarchar(max) 열에 저장된 데이터 값은 압축되지 않습니다.

참고 항목

유니코드 압축은 행에 저장된 경우에도 nvarchar(max) 데이터에 대해 지원되지 않습니다. 그러나 이 데이터 형식은 여전히 페이지 압축의 이점을 누릴 수 있습니다.

이전 버전의 SQL Server에서 업그레이드

SQL Server 데이터베이스가 SQL Server로 업그레이드되는 경우 유니코드 압축과 관련된 변경 내용은 압축 여부에 관계 없이 모든 데이터베이스 개체에 적용되지 않습니다. 데이터베이스를 업그레이드한 후 개체는 다음과 같이 영향을 받습니다:

  • 개체가 압축되지 않으면 변경 내용이 없으며 개체는 이전과 마찬가지로 계속 작동합니다.

  • 행 또는 페이지 압축 개체는 이전과 마찬가지로 계속 작동합니다. 압축되지 않은 데이터는 값이 업데이트될 때까지 압축되지 않은 형태로 유지됩니다.

  • 행 또는 페이지 압축 테이블에 삽입되는 새 행은 유니코드 압축을 사용하여 압축됩니다.

    참고 항목

    유니코드 압축의 장점을 모두 활용하려면 페이지 또는 행 압축을 사용하여 개체를 다시 작성해야 합니다.

유니코드 압축이 데이터 스토리지에 미치는 영향

인덱스를 만들거나 다시 작성하거나 행 또는 페이지 압축으로 압축된 테이블에서 값이 변경되면 영향을 받는 인덱스 또는 값은 압축된 크기가 현재 크기보다 작은 경우에만 압축됩니다. 이렇게 하면 유니코드 압축으로 인해 테이블 또는 인덱스의 행 크기가 증가하지 않습니다.

압축을 저장하는 스토리지 공간은 압축되는 데이터의 특성과 데이터의 로캘에 따라 달라집니다. 다음 표에서는 여러 로캘에 대해 달성할 수 있는 공간 절약을 나열합니다.

Locale 압축률
영어 50%
독일어 50%
힌디어 50%
터키어 48%
베트남어 39%
일본어 15%

다음 단계