유니코드 압축 구현Unicode Compression Implementation

이 항목은 다음에 적용됩니다. 예SQL Server(2016부터)예Azure SQL Database아니요Azure SQL Data Warehouse아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server 는 SCSU(Standard Compression Scheme for Unicode) 알고리즘 구현을 사용하여 행 또는 페이지 압축 개체에 저장된 유니코드 값을 압축합니다. uses an implementation of the Standard Compression Scheme for Unicode (SCSU) algorithm to compress Unicode values that are stored in row or page compressed objects. 이러한 압축 개체의 경우 nchar(n)nvarchar(n) 열에 유니코드 압축이 자동으로 설정됩니다.For these compressed objects, Unicode compression is automatic for nchar(n) and nvarchar(n) columns. 데이터베이스 엔진Database Engine 에서는 로캘에 관계없이 유니코드 데이터가 2바이트로 저장됩니다.The 데이터베이스 엔진Database Engine stores Unicode data as 2 bytes, regardless of locale. 이 방식을 UCS-2 인코딩이라고 합니다.This is known as UCS-2 encoding. 일부 로캘의 경우 SQL Server에서 SCSU 압축을 구현하면 저장 공간을 최대 50% 절약할 수 있습니다.For some locales, the implementation of SCSU compression in SQL Server can save up to 50 percent in storage space.

지원되는 데이터 형식Supported Data Types

유니코드 압축은 고정 길이의 nchar(n)nvarchar(n) 데이터 형식을 지원합니다.Unicode compression supports the fixed-length nchar(n) and nvarchar(n) data types. 행 외부 또는 nvarchar(max) 열에 저장된 데이터 값은 압축되지 않습니다.Data values that are stored off row or in nvarchar(max) columns are not compressed.

참고

nvarchar(max) 데이터는 행에 저장되어 있더라도 유니코드 압축이 지원되지 않습니다.Unicode compression is not supported for nvarchar(max) data even if it is stored in row. 하지만 이 데이터 형식에서 페이지 압축을 활용할 수 있습니다.However, this data type can still benefit from page compression.

이전 버전의 SQL Server에서 업그레이드Upgrading from Earlier Versions of SQL Server

SQL ServerSQL Server 데이터베이스가 SQL Server 2017SQL Server 2017버전으로 업그레이드되는 경우 유니코드 압축과 관련된 변경 내용은 모든 데이터베이스 개체에 적용되지 않습니다. 이때 해당 개체의 압축 여부는 관계가 없습니다.When a SQL ServerSQL Server database is upgraded to SQL Server 2017SQL Server 2017, Unicode compression–related changes are not made to any database object, compressed or uncompressed. 데이터베이스가 업그레이드되면 개체는 다음과 같이 영향을 받습니다.After the database is upgraded, objects are affected as follows:

  • 압축되지 않은 개체의 경우 변경 내용이 적용되지 않고 이전과 같은 방식으로 계속 동작합니다.If the object is not compressed, no changes are made and the object continues to function as it did previously.

  • 행 또는 페이지 압축 개체는 이전과 같은 방식으로 계속 동작하고Row- or page-compressed objects continue to function as they did previously. 압축되지 않은 데이터는 값이 업데이트될 때까지 압축되지 않은 형식으로 유지됩니다.Uncompressed data remains in uncompressed form until its value is updated.

  • 행 또는 페이지 압축 테이블에 삽입된 새 행은 유니코드 압축을 사용하여 압축됩니다.New rows that are inserted into a row- or page-compressed table are compressed using Unicode compression.

    참고

    유니코드 압축의 장점을 모두 활용하려면 페이지 또는 행 압축을 사용하여 개체를 다시 작성해야 합니다.To take full advantage of the benefits of Unicode compression, the object must be rebuilt with page or row compression.

유니코드 압축이 데이터 저장소에 주는 영향How Unicode Compression Affects Data Storage

인덱스를 만들거나 다시 작성하는 경우 또는 행/페이지 압축을 사용하여 압축된 테이블에서 값을 변경하는 경우 영향을 받는 인덱스나 값은 압축된 크기가 현재 크기보다 작은 경우에만 압축 형식으로 저장됩니다.When an index is created or rebuilt or when a value is changed in a table that was compressed with row or page compression, the affected index or value is stored compressed only if its compressed size is less than its current size. 이렇게 되면 유니코드 압축 때문에 테이블의 행 또는 인덱스의 크기가 증가하지 않습니다.This prevents rows in a table or index from increasing in size because of Unicode compression.

압축을 통해 절약할 수 있는 저장 공간은 압축하고 있는 데이터의 특성과 데이터 로캘에 따라 다릅니다.The storage space that compression saves depends on the characteristics of the data that is being compressed and the locale of the data. 다음 표에서는 로캘별로 절약할 수 있는 저장 공간을 보여 줍니다.The following table lists the space savings that can be achieved for several locales.

로캘Locale 압축률Compression percent
영어English 50%50%
독일어German 50%50%
힌디어Hindi 50%50%
터키어Turkish 48%48%
베트남어Vietnamese 39%39%
일본어Japanese 15%15%

참고 항목See Also

데이터 압축 Data Compression
sp_estimate_data_compression_savings(Transact-SQL) sp_estimate_data_compression_savings (Transact-SQL)
페이지 압축 구현 Page Compression Implementation
sys.dm_db_persisted_sku_features(Transact-SQL) sys.dm_db_persisted_sku_features (Transact-SQL)