Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
Azure SQL База данных
Azure SQL Управляемый экземпляр
SQL База данных в Microsoft Fabric
SQL Server использует реализацию алгоритма стандартной схемы сжатия для Юникода (SCSU) для сжатия значений Юникода, хранящихся в строках или сжатых объектах страницы. Для этих сжатых объектов сжатие Юникода выполняется автоматически для столбцов nchar(n) и nvarchar(n). Ядро СУБД сохраняет данные Юникода как 2 байта независимо от языкового стандарта. Такая кодировка называется UCS-2. Для некоторых локалей реализация сжатия по алгоритму SCSU в SQL Server может сэкономить до 50 % места в хранилище.
Поддерживаемые типы данных
Сжатие Юникода поддерживает типы данных nchar(n) фиксированной длины и nvarchar(n). Значения данных, хранящиеся вне строки или в столбцах nvarchar(max), не сжимаются.
Примечание.
Сжатие Юникода не поддерживается для данных типа nvarchar(max) , даже если они хранятся в строке. Однако сжатие страниц может быть полезно для этого типа данных.
Обновление с более ранних версий SQL Server
При обновлении базы данных SQL Server до SQL Server изменения, связанные с сжатием Юникода, не вносятся в любой объект базы данных, сжатый или несжатый. После обновления базы данных ситуация с объектами выглядит следующим образом.
Если объект не сжимается, изменения не вносятся, и объект продолжает функционировать, как это было ранее.
Сжатые объекты строк и страниц продолжают работу как раньше. Распакованные данные остаются в распакованной форме до тех пор, пока их значение не будет обновлено.
Для новых строк, вставляемых в таблицу, сжатую на уровне строк или страниц, производится сжатие Юникода.
Примечание.
Чтобы воспользоваться преимуществами сжатия Юникода, перестройте объект с помощью сжатия страниц или строк.
Как сжатие Юникода влияет на хранилище данных
При создании или перестройке индекса, а также при изменении значения в таблице, сжатой на уровне строк или страниц, соответствующий индекс или значение сохраняется в сжатом виде только в том случае, если его размер в сжатом виде будет меньше текущего. Сжатие Юникода позволяет предотвратить разрастание размера строк в таблице или индексе.
Объем места в хранилище, сэкономленного благодаря сжатию, зависит от характеристик сжимаемых данных и локали данных. Следующая таблица содержит данные по экономии, достижимой для некоторых локалей.
| Локаль | Процент сжатия |
|---|---|
| Английский | 50% |
| Немецкий | 50% |
| Хинди | 50% |
| Турецкий | 48% |
| Вьетнамский | 39 % |
| Японский | 15 % |