Полезно ли использовать char, если другой столбец varchar? - PullRequest
0 голосов
/ 24 мая 2018

Если таблица имеет один столбец переменной длины, будет ли какой-либо выигрыш в других столбцах, имеющих фиксированную длину, или их преимущество будет отменено, потому что строки не будут иметь фиксированную длину и, следовательно, приложение SQL не сможетлегко вычислить местоположение строки?

Если это имеет значение, я спрашиваю о SQL Server.

РЕДАКТИРОВАТЬ : Дублировать ??Вот это да.Просто вау ...

Ответы [ 3 ]

0 голосов
/ 24 мая 2018

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

Не беспокойтесь об этом.

0 голосов
/ 25 мая 2018

Да, будет выигрыш, если вы будете придерживаться CHAR столбцов.Рассмотрим разделение страниц и фрагментацию.Я видел первичные ключи с 99% фрагментацией из-за разбиения страницы на столбцы VARCHAR.

0 голосов
/ 24 мая 2018

Это не имеет никакого значения с точки зрения адресации записей.Не беспокойтесь о том, что SQL Server находит положение строки.Базы данных не предполагают, что строки являются массивами с элементами фиксированной длины.

Вместо этого строки хранятся на страницах данных.Страница данных имеет заголовок.Заголовок имеет смещение строк на странице.Нет умножения на фиксированную длину для определения, где начинается запись.

Ну, технически смещения строк не являются частью верхнего колонтитула, а частью нижнего колонтитула.Это нюанс. Здесь - хорошее описание макета страницы.Эта тема также описана в документации .

...