Что касается размера в зависимости от производительности, помните, что сервер SQL будет хранить начальное значение данных для nvarchar
/ varchar
и все значение для nchar
/ char
в единицах пространства.Например: nvarchar(1000)
с сохраненными данными test data
первоначально будет занимать 9 * 2 байта или 18 байтов.В то время как nchar(1000)
будет принимать 1000 * 2 байта (2000 байт), не смотря ни на что.
Затем он продолжит свой веселый путь, добавляя следующий набор данных на странице (то есть 8 КБ) до тех пор, пока страница не появится на странице.соответствует (или близко) к коэффициенту заполнения, установленному для таблицы.Затем начинается новая страница.Теперь предположим, что пользователь должен обновить эти данные и ввести что-то с некоторым содержанием в предыдущем поле, скажем, что-то длиной 800 символов.Теперь это значение необходимо обновить и будет значительно увеличиваться, но теперь страница заполнена, и когда данные для этого поля должны увеличиться, страница должна разделиться и освободить место для данных (если коэффициент заполнения не достаточно низок, чтобы учестьрост).
Этот раздел страницы будет агрегироваться как фрагментация индекса, что приведет к снижению времени поиска / поиска и увеличению времени обновления.Таким образом, могут существовать различия с точки зрения влияния на производительность, если данные значительно изменяются.
Как часто бывает, ответ: «зависит».