![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Увеличение размера базы в зависимости от заполнености полей [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]Уведичиваться будет обязательно, поскольку как минимум нужно хранить информацию, что это поле не заполнено, как устроено внутри это сложный вопрос. Может где у микрософта и описано.