![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 04.01.2008
Сообщений: 201
|
![]()
В базе данных ключевое поле имеет размер - длинное целое. В процессе добавления записей в таблицу, значение ключевого поля постоянно возрастает. (при удалении записей значение не уменьшается). Возникает такой вопрос-не достигнет ли значение ключевого поля размера, превышающего заданный? И что может произойти если это случится
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 28.03.2008
Сообщений: 672
|
![]()
вот наткнулся как раз недавно... статья была про IB
"Максимальное количество записей в таблице зависит от среднего размера записи, и не может превышать 2 миллиардов. Размер записи может быть не более 64К, и максимальное количество столбцов зависит от используемых типов полей. Если хранимое значение столбца BLOB меньше размера страницы, то он попадает на страницу данных. Если больше, то хранится на отдельной странице. Чем больше количество столбцов в таблице и чем больше записей в таблице, тем больший размер страницы базы данных имеет смысл выбирать." _________________________ следовательно, достигнет и произойдет ошибка |
![]() |
![]() |
![]() |
#3 | |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
![]()
при чем здесь
Цитата:
2Evgenii а Вы гляньте максимальное значение по этому типу, потом прикиньте с какой скоростью заполняется поле и станет ясно - на сколько лет его хватит даже если в день писать по 500 000 строк, то хватит на 10 лет |
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
НО! я полностью присоединяюсь к словам soleil@mmc! судя по всему, у Вас MS Access. Длинное целое (Long Integer) имеет размерность от –2,147,483,648 до 2,147,483,647 считаем, что в день добавляется 500000 (полмиллиона) записей. (на самом деле, поверьте моему опыту, реальные таблицы даже за много-много лет работы редко превышают объём в несколько миллионов записей... разве что какие-то регистраторы в автомате будут снимать характеристики какого-то процесса. да и то, это маловероятно). ну да ладно. пусть будет 500000. (это приблизительно 6 записей в секунду) тогда делим 2147483647 /500000 получаем 4294 дня переводим в года, получаем 11 лет и 274 дня... Хватит? ![]() Последний раз редактировалось Serge_Bliznykov; 02.07.2009 в 23:38. |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 04.01.2008
Сообщений: 201
|
![]()
насчет размера таблиц я совершенно не беспокоюсь. Записей там будет
не больше тысячи. Дело в другом. Попробую сформулировать свой вопрос точнее. Записи добавляются и удаляются, а значение ключевого столбца Key становится все больше. К примеру добавили первую запись, значение Key = 1,....после десятой записи Key = 10. Удалили из таблицы все записи начиная с первой и до девятой включительно. Key по прежнему = 10. После добавления записей это значение опять возрастет, т.к. каждой записи присваеваится уникальный номер. Я хочу сказать, что независимо от количества записей в таблице, значение Key неизменно будет возрастать. Так вот, какое предельное число, достигнув которое, произойдет ошибка? |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 04.01.2008
Сообщений: 201
|
![]()
Насколько я понял, значение в столбце Key1 должно достигнуть 2,147,483,647 чтобы возникли проблемы
|
![]() |
![]() |
![]() |
#7 | |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
![]() Цитата:
если хочется узнать на практике что будет если, то предлагаю написать небольшую процедурку, с помощью которой накрутить сиквенс (или просто выставить генератор - смотря какая СУБД) до значений чуть меньше максимально допустимого и попробовать вставить еще несколько записей |
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 04.01.2008
Сообщений: 201
|
![]()
Большое спасибо. Мне достаточно было знать что по достижении определенного числа, через несколько десятилетий произойдет ошибка, А какая это уже неважно, особенно через такой срок, когда и база то уже не будет использоваться наверное)
|
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 04.01.2008
Сообщений: 201
|
![]()
ет хорошо) еще раз спасибо
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как изменить в InterBase размер поля varchar(10) на varchar(20) | tarakan1983 | БД в Delphi | 4 | 23.03.2009 15:35 |
Автозаполнение ключевого поля | Avalonix | БД в Delphi | 6 | 29.05.2008 12:33 |
Размер поля БД | kayman | Общие вопросы Delphi | 1 | 14.10.2007 21:43 |
Как изменить размер поля БД | Алёна | БД в Delphi | 5 | 07.05.2007 10:06 |