Домены в Firebird - PullRequest
       30

Домены в Firebird

1 голос
/ 27 августа 2009

У меня есть общие вопросы по доменам. Я признал, что когда я создаю таблицу и не использую домен, будет создан домен по умолчанию, например, RDB $ 1, RDB $ 2, RDB $ 3, также. Вот мои вопросы: - Какое влияние оказывает созданный по умолчанию домен? - Увеличивают ли они размер моей базы данных? - Есть ли у них влияние на производительность? - Должен ли я создать домен для каждого типа данных, который я использую, и использовать домен вместо этого?

ТНХ

Ответы [ 3 ]

3 голосов
/ 28 августа 2009

Удар и размер очень малы.

Лучше использовать домен, потому что когда вы обновляете один: вы обновляете его для всех полей, которые его используют.

1 голос
/ 17 октября 2009

Единственное влияние на производительность видны в инструментах администрирования, которые должны получать информацию из доменов. Если у вас есть база данных с, скажем, 500 таблицами, имеющими в среднем 20 столбцов, то это 10000 доменов. Если вы используете пользовательские домены, у вас может быть 50 или около того. Таким образом, инструмент администратора будет загружать определения таблиц и столбцов намного быстрее.

Что вас действительно должно волновать, так это логика. Наличие доменов гарантирует, что вы не будете совпадать с типами данных некоторых столбцов, что может создать проблемы с внешними ключами, например. Кроме того, это облегчает глобальное изменение типа данных домена: например, некоторое время назад я решил изменить тип данных CustomerID в таблице Customer в одной из моих баз данных. На него ссылается около 50 внешних ключей. С доменами это было так же просто, как сброс сценария SQL и изменение определения домена. Если бы не было доменов, мне пришлось бы искать и заменять огромный SQL-скрипт, который, конечно, подвержен ошибкам.

1 голос
/ 19 сентября 2009

Созданный по умолчанию домен имеет то же влияние, что и созданный пользователем домен.

В любом случае пространство, занимаемое определенным действием по созданию домена (созданным пользователем или по умолчанию), относится только к данным, хранящимся в системных таблицах, которые определяют сам домен; не влияет на пространство, занимаемое данными, хранящимися в базе данных.

В базе данных, содержащей реальные данные, пространство, занимаемое метаданными, ничтожно мало по сравнению с пространством, занимаемым данными, поэтому влияние доменов весьма незначительно.

Использование пользовательских доменов рекомендуется для удобства чтения и обслуживания.

...