Влияет ли длина поля базы данных (максимальная) на производительность? - PullRequest
6 голосов
/ 18 марта 2011

В моей компании у нас есть устаревшая база данных с различными таблицами и, следовательно, множеством полей.

Многие поля имеют большие пределы (например, NVARCHAR(MAX)), которые никогда не достигаются.

Влияет ли произвольное увеличение полей до максимальной ширины или в 2–3 раза больше, чем обычно вводится, отрицательно влияет на производительность?

Как сбалансировать производительность с длинами поля?Есть ли баланс?

Ответы [ 2 ]

7 голосов
/ 22 марта 2011

Этот вопрос состоит из двух частей:

Влияет ли использование NVARCHAR поверх VARCHAR на производительность?Да, хранение данных в полях Unicode удваивает требования к хранилищу.Ваши данные, хранящиеся в этих полях, в 2 раза больше необходимого (до выхода SQL Server 2008 R2, который включает сжатие в юникоде . Сканирование таблицы займет в два раза больше времени, и данные могут быть вдвое меньше).хранится в памяти в буферном кеше.

Влияет ли использование MAX на производительность? Не напрямую, а при использовании VARCHAR (MAX), NVARCHAR (MAX) и других типов полей, а также при необходимости индексироватьтаблицу, вы не сможете перестроить эти индексы в режиме онлайн в SQL Server 2005/2008 / R2. (Denali вносит некоторые улучшения в таблицы с полями MAX, поэтому некоторые индексы можно перестраивать в режиме онлайн.)

2 голосов
/ 18 марта 2011

Да, оптимизатор запросов может угадать, сколько строк умещается на странице, если у вас много varchar полей, которые больше, чем необходимо, SQL Server может внутренне угадать неправильное количество строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...