Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Увеличение размера базы в зависимости от заполнености полей [D5, MSSQL]


Vick ©   (2003-03-13 18:34:00) 

Доброго вечера всем!
Возник такого рода вопрос: необходимо создать универсальную таблицу в базе MSSQL для хранения разного типа документов, соответсвенно все документы имеют какую-то постоянную чатсть типа: тип, № док-та, дата док-та, кол-во, а дальше немного отличаются: у одного есть поле сумма, у другого его нету, а есть поле размер. Так вот вопрос заключается в том, что будет ли увеличиваться размер базы, если эти поля не будут заполняться для каждого документа соответсвенно? Потому что я знаю, что в dbf-файлах размер зависит только от количества записей, а от щаполнености или незаполнености полей абсолютно не зависит...
Заранее спасибо за ответ.


Vick   (2003-03-14 13:01:00) [1]

> sniknik ©
В установке ANSI_PADDING ON/OFF есть один недостаток, его нельзя выключать, если нужно в этой таблице создавать индексы и работать с ними.
Буду использовать varchar, пусть работает немного дольше, а дополнительную таблицу как оказалось делать тоже нельзя, т.к. в это поле может быть занесено чего угодно.

Спасибо всем за советы


Anatoly Podgoretsky   (2003-03-14 09:57:00) [2]

ЮЮ © (14.03.03 03:33)
Именно в допольнительной, иначе смысла нет, поскольку может быть и проигрыш


sniknik   (2003-03-14 08:38:00) [3]

> поле тектовоеи размер у него 100.
непонял поле типа Text? тогда оно будет занимать именно тот размер что у него есть (записан), а пустое 24 байта (если не ошибаюсь, но гдето в этом районе точно). Разбить на 2 тоже можно, и не только ради места в базе, часто так удобнее.

да еще почитай установку в Bol - SET SET ANSI_PADDING ON/OFF (по умолчанию ON) если отключить то разници между CHAR и VARCHAR не будет, все поля с переменной длинной начинают вести себя как с фиксированной. Действует по моему только при создании таблиц.


ЮЮ   (2003-03-14 03:33:00) [4]

>Может стоит сделать отдельно таблицу с размерами, а в основной использовать на нее ссылку?

Стоит. Только не в основной делать ссылку, а в дополнительной ключевому полю присваивать то же значение, что и в ключе главной. Это называется связью Master-Detail с отношением 1 к 0..1


Vick   (2003-03-13 19:03:00) [5]

> sniknik ©

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


sniknik   (2003-03-13 18:42:00) [6]

от типа поля зависит к примеру поле Char(50) статично и размер будет расти с каждой записью неважно есть чтонибудь в нем или нет, поле VarChar(50) лишено такого недостатка и занимает (пустое) 4 байта, а заполненое только тот размер что наполнен + 4 байта.
(кстати доступ к VarChar медленнее)

смотри какого типа твои поля.


Anatoly Podgoretsky   (2003-03-13 18:39:00) [7]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо