10k символов. В чем хранить?

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
BlackEric
Сообщения: 31
Зарегистрирован: 15 фев 2006, 08:43

10k символов. В чем хранить?

Сообщение BlackEric » 15 фев 2006, 13:15

В базе (FireBird 1.5.2) нужно хранить строковые данные в пределах 10к символов. В чем лучше хранить varchar или blob???

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 15 фев 2006, 13:18

а что за данные, и насколько часто к ним будут обращаться?

BlackEric
Сообщения: 31
Зарегистрирован: 15 фев 2006, 08:43

Сообщение BlackEric » 15 фев 2006, 13:43

Данные - просто текст или rtf. Задача спускаемая от руководителя к подчиненному.
Обращаться. Задача поставлена. Получена.Выполнена. Получен отчет. Тоже <10k и эта запись трогаться будет только в том случае если будут подниматься архивы.
Принцип базы 1 задача 1 одна запись.
Т.е. все, что относится к задаче лежит в одной записи, кроме списка пользователей.
Он в связанной таблице.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 15 фев 2006, 13:48

тогда я бы в blob положил. к тому же, мало ли, вдруг там не rtf будет...

BlackEric
Сообщения: 31
Зарегистрирован: 15 фев 2006, 08:43

Сообщение BlackEric » 15 фев 2006, 14:11

Там 100% будет текст или rtf. Меня это интересует с точки зрения производительности, ресурсоемкости.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 15 фев 2006, 15:24

блобы хранятся на отдельных страницах, если туда не влезают. если так и будет, то это улучшит производительность. большой varchar в записи приведет к фрагментации записи (размещение ее на нескольких страницах), если содержимое такого varchar будет больше размера страницы.

так что, если к этим данным обращения идут реже, чем к другим столбцам записи, blob лучше (особенно, если блоб всегда вынимают применительно к конкретной записи, и никогда не выбирают несколько штук сразу).

обнаружить фрагментацию записей блобами можно IBAnalyst-ом, прочитать о ней можно в его хелпе (доп. вопросы и ответы).

Ответить