nvarchar
размер хранилища составляет 2 байта на символ + 2 дополнительных байта.Максимальная длина столбца не имеет значения - размер хранилища определяется фактическими данными.
Из официальной документации :
nvarchar[(n | max)] Строковые данные Unicode переменной длины.n определяет длину строки и может принимать значение от 1 до 4000.max указывает, что максимальный размер хранилища составляет 2 ^ 30-1 символов.Максимальный размер хранилища в байтах составляет 2 ГБ. Фактический размер хранилища в байтах в два раза превышает количество введенных символов + 2 байта. Синонимами ISO для nvarchar являются разные национальные символы и разные национальные символы.
(выделение мое)
Однако, пожалуйста, не считайте эту рекомендацию использовать nvarchar(max)
для всего.Так как max
обрабатывается по-разному, у него есть некоторые неприятные побочные эффекты (снижение производительности).
Вообще говоря, вы должны выбрать максимальный размер столбца в соответствии с вашим предполагаемым реальным размером данных.Чтобы быть в безопасности, вы можете просто установить максимальный размер в два раза больше ожидаемого.
Если вы знаете , вы собираетесь использовать только один поддерживаемый язык ASCII, вам следуетрассмотрите возможность использования varchar
вместо nvarchar
, поскольку его размер хранения вдвое меньше, чем nvarchar
:
varchar [(n | max)] Variable-длина, строковые данные не в Юникоде.n определяет длину строки и может принимать значение от 1 до 8000.max указывает, что максимальный размер хранилища составляет 2 ^ 31-1 байт (2 ГБ). Размер хранилища - это фактическая длина введенных данных + 2 байта. Синонимами ISO для varchar являются charvarying или Charactervarying
(опять же, выделение мое)