powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
24 сообщений из 24, страница 1 из 1
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38440553
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня. Для уникального ID записи организовал домен.
Код: sql
1.
2.
3.
CREATE DOMAIN D_ID AS
BIGINT
NOT NULL;


Для небольших таблиц и SMALLINT мне хватит. Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы? Стоит ли возится делать и меньше?
Спасибо.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38440555
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275Стоит ли возится делать и меньше?
Ну, если хочешь получить такой
геморрой
на всю голову...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38440561
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275Для небольших таблиц и SMALLINT мне хватит. Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?Влияние это разглядеть можно только в телескоп, и только высоко в горах в безлунную ночь.
Озаботьтесь эффективностью SQL-запросов, и прежде всего - уменьшением числа обращений к таблицам и числа фетчей.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38440570
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы. Можно значит не замачиваться.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38440573
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще спрошу. Это записи равнозначные или уже первое поле масло масленое получается?
Код: sql
1.
2.
3.
CREATE TABLE SPR_CONTRACTORS (
    ID   D_ID NOT NULL /* D_ID = BIGINT NOT NULL */,
    ID1  D_ID /* D_ID = BIGINT NOT NULL */
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38440674
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275,

просто похоже, что NOT NULL ограничение установлено на уровне домена.
каждый сам себе Дейт, но я бы не стал так делать. Тем более с доменом для ID: внешние ключики могут же отсутствовать. Писать для них свой домен D_ID_NULLABLE? Гораздо проще поднимать флаг NOT NULL на уровне столбца.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38440698
olegenty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХЗ, я как раз 2 домена создаю: DR$INT и DN$INT. R типа required, а N типа nullable.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38440878
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275Еще спрошу. Это записи равнозначные или уже первое поле масло масленое получается?
Код: sql
1.
2.
3.
CREATE TABLE SPR_CONTRACTORS (
    ID   D_ID NOT NULL /* D_ID = BIGINT NOT NULL */,
    ID1  D_ID /* D_ID = BIGINT NOT NULL */



Если у домена стоит NOT NULL, то ограничение NOT NULL в поле да, "масло-маслянное". Поле с таким доменом уже не сделать допускающим пустые поля. Чем удобен домен, что поправив только домен - поля, которые используют данный домен, также поправятся. Ну и, допустим, сняв ограничение NOT NUL у домена, у поля ID D_ID NOT NULL оно останется. В итоге - нужно быть внимательным.
Знал одну девушку, она домен BOOLEAN = INTEGER in [0,1] поправила на INTEGER in [0,1, 2,3,4]. Ну просто ей у поля значений не хватало. А то, что этот домен ещё где-то используется... А пофиг :)
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38440936
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275,

мне интересно - человек собирается использовать smallint, и спрашивает о производительности, и тут же втыкает bigint в ПК. Мало 2-миллиардного int? Я допускаю, что может оказаться мало, но пока такие случаи по пальцам пересчитать.
Когда то для генераторов на int считали, что если выдавать новое число каждую секунду, то maxint кончится через 68 лет. Конечно, скорости нынче другие, и можно 10 чисел выдавать в секунду - тогда да, через 7 лет кончится.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38441092
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

Ну я для однообразности. Просто мне надо будет заливать данные которые уже перешли за верхний диапазон INTEGER, хотя там и не подряд. И всего тару таблиц таких. В принципе можно упорядочить, там не более миллиона записей. Надо только замену в подчинены таблицах еще сделать.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38441098
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
arnikot275,

просто похоже, что NOT NULL ограничение установлено на уровне домена.
каждый сам себе Дейт, но я бы не стал так делать. Тем более с доменом для ID: внешние ключики могут же отсутствовать. Писать для них свой домен D_ID_NULLABLE? Гораздо проще поднимать флаг NOT NULL на уровне столбца.

А где лучше отграничение прикрутить, в домене или на уровне таблице? Просто в руководстве написано что не надо переменные объявлять в таблицах, лучше через домены.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38441121
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv пишет:

> Мало 2-миллиардного int? Я допускаю, что может оказаться мало, но пока
> такие случаи по пальцам пересчитать. Когда то для генераторов на int
> считали, что если выдавать новое число каждую секунду, то maxint кончится
> через 68 лет. Конечно, скорости нынче другие, и можно 10 чисел выдавать в
> секунду - тогда да, через 7 лет кончится

У нас генератор перевалил за 2G. Правда, он один на всю базу, но все же... Хорошо, что я тогда, 4 года назад, не поленился и всё сразу на бигинтах сделал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38441181
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275А где лучше отграничение прикрутить, в домене или на уровне таблице? Просто в руководстве написано что не надо переменные объявлять в таблицах, лучше через домены.Если вы не уверены, что лучше для ВАС, тогда пихайте NOT NULL на уровень столбца. Это более гибко.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38441256
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275Просто в руководстве написано что не надо переменные объявлять в таблицах, лучше через домены.
в каком руководстве?
Домены - это аналог пользовательских типов в ЯП. Например, для Delphi пишем

Код: pascal
1.
2.
3.
4.
5.
6.
type
 myint = integer;

var
 i : myint;
 j : integer;



и в этом случае, по идее, тип i не равен j.
В SQL домен - это тоже "тип", имеющий свой диапазон значений, и ограничения (not null, и прочее). Есть люди, которые не любят домены (к ним я отношусь), есть наоборот, те, кто их использует слишком активно, т.е. с переизбытком, даже для самых простых типов, вроде
create domain cardcode int;

И тут нужно учитывать, что на закладке DDL в IBExpert, благодаря запросам пользователей, сделан вот этот самый вывод расшифровки домена в комментарии
Код: sql
1.
ID1  D_ID /* D_ID = BIGINT NOT NULL */


Сам сервер (как IB так и FB) такую расшифровку не выводит. И если переборщить, то на определенном этапе может поразить склероз, и копание "а что же за тип имеет этот домен" только усложнит жизнь.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38441263
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы еще добавил, что идея делать домен ID INT NOT NULL для всех первичных ключей содержит провокацию. В том смысле, что на самом деле "код товара" и "код клиента", для которых будет использован этот ID, хоть и имеют абстрактные значения, но по смыслу не равны. То есть, если проектировать с доменами до упора, то для столбца каждого конкретного ПК должен быть свой домен.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38441400
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

Ну да. IBExpert при создании нового поля эти домены и показывает. Т.е. домены системные там создаются. Если свой не делать. А для меня, я понял, делать домены это зло. Сам и запутаюсь. Не могу вспомнить где я про домены вычитал.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38442744
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я немного запутался. А что за домены BExpert типа такого RDB$6 мне показывает?
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38442752
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275,

rdb$fields - склад доменов. любой столбец создается тут как домен. Только домен можно использовать как тип в разных таблицах, а столбец - в одной.
При создании столбца в Rdb$fields создается авто-домен с генерируемым именем. в rdb$relation_fields - ссылка на него.

Тебе это зачем?
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38442755
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вот разобраться пытаюсь. То есть у меня любой столбец создается как домен?
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38442773
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275,

да. Это вызывает невыносимые муки? Подозрения на проблемы с производительностью?
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38442775
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мук не вызывает. Но непонятность есть. Если это так и надо, то и ладно. Спасибо.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38442783
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275,

ну тогда читай
http://citforum.ru/database/interbase/index.shtml
и
http://www.ibase.ru/devinfo/sysqry.htm

если есть интерес. а если нет - просто забей. Любая СУБД должна где то и в каком то виде хранить метаданные.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38442792
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интерес есть. Буду читать.
Метаданные. самая интересная вещь в базе.
Спасибо.
...
Рейтинг: 0 / 0
Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
    #38443556
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275А для меня, я понял, делать домены это зло. Сам и запутаюсь. Нет, домены не зло.
Домены - отражение структурного подхода. (см. книгу Структуры данных + алгоритмы = программы).

kot275Метаданные. самая интересная вещь в базе.
Самое интересное в базе - правильно выбранные сущности (таблицы) с достаточным уровнем нормализации, и корректная бизнес-логика, построенная на вью/процедурах/триггерах.

Слишком сильный интерес к метаданным, переходящий в желание эти данные изменять ручками, часто доводит до неработоспособности БД.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Влияет-ли тип переменной(INTEGER, SMALLINT, BIGINT) на скорость работы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]