Вы должны включить опцию для каждого столбца через таблицу изменения для столбца для существующей таблицы, или вы можете установить опцию, если это новая таблица для столбца:
alter table tablename modify mycol in row (500)
Здесь я сказал, что все, что меньше 500 байтов для столбца, будет храниться в строке, а все, что больше по размеру, будет сохраняться вне строки (старое поведение по умолчанию). Это может значительно уменьшить размер таблицы, когда у вас много очень маленьких столбцов текста / изображения и большого размера страницы, поскольку это позволяет избежать потери полной страницы на строку в текстовой цепочке.
Если включено, он будет отображаться в столбце в выводе sp_help. Чтобы проверить, является ли это преимуществом, вы должны рассмотреть:
- Размер страницы вашего сервера данных Sybase (большие размеры тратят больше места на каждой странице текстовой цепочки)
- Средний размер данных в столбце текста / изображения: чем меньше размер данных, тем больше вы выиграете от использования строковых больших объектов. Если все ваши данные больше, чем размер страницы вашего сервера данных, это не принесет пользы, поскольку данные будут по-прежнему храниться вне строки, как это было до изменения.
Вам необходимо повторно загрузить данные в таблицу, чтобы изменения вступили в силу, чтобы вы могли сделать это с помощью выбора в (для создания новой копии таблицы и данных) или через BCP out / in.
Более подробная информация в документации по Sybase здесь:
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc32300.1570/html/sqlug/CHECDADI.htm
С точки зрения блокировки, когда данные соответствуют критериям и хранятся в строке, они будут считываться из самой таблицы, а не из текстовой цепочки, которая фактически представляет собой большую кучу в конце таблицы. Вы также получаете выгоду (в зависимости от размера данных) от значительной экономии места на размерах таблицы, что снижает количество операций ввода-вывода и, следовательно, может повысить производительность.