![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Закончился диапазон, когда генератор выдаёт валидные.... [IB6.x, FB 1.0]
Некто © (2005-01-24 22:47:00)Закончился диапазон, когда генератор выдаёт валидные значения для первичного ключа таблицы.
Часто ли такое встречается на практике? Что делать в таких случаях?
Johnmen (2005-01-25 11:41:00) [1]>Некто (25.01.05 11:35) [24]
>ну а в скорости работы со смаллинтом и int64 разницы разве нету?
Есть. int64 быстрее.
sniknik (2005-01-25 11:41:00) [2]> но верхний предел (32767) вот-вот наступит
если бы это было бы в access (или mssql, а может и там и там, не помню) то следующим за этим наступило бы -32768 и пошло увеличиваться до 0 а вот только потом, изза уникальности ключа (обычная практика) уже бы была ошибка (на 1 и то если она к тому времени сохранится).
а вот на FB не знаю (и пробовать неохота, хотя это просто), ведь там ты сам присваиваеш значение в генераторе, а сам он 8ми байтный... думаю если предусмотреть поведение аналогично access-овскому, то у тебя будет дополнительных 32768 значений (генератор переписат), если же нет то ошибка "переполнения" типа.
это если не рассматривать нормального решения (смена типа полю) и продолжать экономить на спичках.
Некто (2005-01-25 11:40:00) [3]Магнит (25.01.05 11:37) [25]
а-ля Anatoly Podgoretsky
сам знаю что есть :-)
Магнит (2005-01-25 11:37:00) [4]есть! :-D
Некто (2005-01-25 11:35:00) [5]ну а в скорости работы со смаллинтом и int64 разницы разве нету?
:-))) уже самому смешно
Johnmen (2005-01-25 11:32:00) [6]>Некто (25.01.05 11:31) [20]
>ну начальник сказал что надо смаллинт и всё-тут!!
Ты в армии переслужил, видимо...:)
Danilka (2005-01-25 11:32:00) [7][17] Некто (25.01.05 11:22)
> смаллинт - ради экономии ресурсов сервера и дискового пространства.....
Чего-то я не понял.. экономия в чем??? На твоих сегодняшних 8к записей экономится 16килобайт... если вообще экономится. А гемороя зато куча великая. Как это назвать? :))
> много ограничений в том числе и на то, что нельзя ничего
> использовать кроме смаллинта...
Ну, тогда, остается сесть и поплакать. :)
[20] Некто (25.01.05 11:31)
> ну начальник сказал что надо смаллинт и всё-тут!!
Дык, пущщай тогда сам и разгребает, раз так сказал. :)
Магнит (2005-01-25 11:31:00) [8]>А рядом наверное кинох на пару десятков гиг валяется. 8-)
ага и ещё архив музыки!! :-)
Некто (2005-01-25 11:31:00) [9]Sergey13 © (25.01.05 11:28) [18]
точно))
ну начальник сказал что надо смаллинт и всё-тут!!
Johnmen (2005-01-25 11:30:00) [10]>Некто (25.01.05 11:22) [17]
>смаллинт - ради экономии ресурсов сервера и дискового пространства.....
Извини, это несколько бредово...:)
Если считаешь иначе, расскажи, какие именно "ресурсы сервера" сэкономлены смоллинтом. И сколько конкретно дискового пространства.
Вобщем всё от лукавого..........
Sergey13 (2005-01-25 11:28:00) [11]2[17] Некто (25.01.05 11:22)
>смаллинт - ради экономии ресурсов сервера и дискового пространства.....
Вот и получили экономию. 8-)
А рядом наверное кинох на пару десятков гиг валяется. 8-)
Некто (2005-01-25 11:22:00) [12]смаллинт - ради экономии ресурсов сервера и дискового пространства.....
господи, ситуация синтетическая и много ограничений в том числе и на то, что нельзя ничего использовать кроме смаллинта...
вроде и таблица сравнительно пустая (5000-8000 записей), ввести ещё ой-ёй-ёй сколько записей можно, но верхний предел (32767) вот-вот наступит
Johnmen (2005-01-25 11:07:00) [13]Кроме smallint ещё существуют типы integer и bigint.
Danilka (2005-01-25 11:07:00) [14][14] Некто (25.01.05 11:00)
А есть какое-нибудь логическое объяснение, почему для этой таблицы в качестве суррогатного ПК выбрали именно СмаллИнт? :)
Думаю, единственный выход - переделать тип поля.
Некто (2005-01-25 11:00:00) [15]Видимо меня неправильно поняли.
Дело не совсем в генераторе (пускай он выдаёт столько, сколько ему угодно), а в поле smallint.
Ведь даже при отмене транзакции, которая вставляет запись, текущее значение генератора увеличивается.
Ну вот есть таблица, в которой, при встевке, частенько случаются эксепшны, транзакция откатывается, а значение генератора увеличивается. Такая таблица, к примеру, содержит 5000-8000 записей, всего лимит записей для таблицы 64К, а текущее значение генератора уже близко к 32767.
Johnmen (2005-01-25 10:49:00) [16]>Danilka © (25.01.05 10:28) [12]
Вот и я намекаю, что никогда не переполнится, и вопрос глупый, мягко говоря...:)
Danilka (2005-01-25 10:28:00) [17][11] Johnmen © (25.01.05 09:26)
> Начиная с IB6 генератор 8-байтный.
Тогда, если по 20 новых записей в секунду, то наше солнце успеет остынуть, к тому времени, пока генератор закончится. :)
Johnmen (2005-01-25 09:26:00) [18]>Некто (24.01.05 22:52) [2]
>smallint...например :-)
Пример неудачный.
Начиная с IB6 генератор 8-байтный.
Danilka (2005-01-24 23:34:00) [19][8] jack128 © (24.01.05 23:27)
4294967295/20/60/60/24/365 = около семи лет. Однако, в таком случае кто мешает задействовать 2 генератора для генерации ПК? :))
Sergey_Masloff (2005-01-24 23:32:00) [20]jack128 © (24.01.05 23:27) [8]
Но тогда нет проблемы и с идентификаторами - кэш ПК спасает отца русской демократии ;-) Проблема, насколько я понял, встает когда исчерпан диапазон.