Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
Есть некая программа, импортирующая записи из текстовых файлов в dbf-таблицу. Так вот, когда размер таблицы становится равным 1.99 Гбайт, программа срывается. Файловая система - NTFS. Далее я попробовал в таблицу добавить записи вручную - сделал append from из этой же таблицы. После этого Count говорит, что число записей удвоилось. Но размер файла при этом не увеличился, остался равным 1.99 Гб. Чтобы это все значило? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 14:40 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
Это физический предел для таблиц DBF и файлов FPT, CDX. Системное ограничение. Таблицы не могут иметь размер более 2ГБ. Количество записей хранится в заголовке таблицы, поэтому один из видов повреждения таблиц - это несоответсвие количества записей сохраненное в заголовке и реальное количество записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 14:49 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
То есть в этом случае получается, что при добавлении записей в таблицу, имеющую макс. размер 2 Гб, таблица повреждается. А что можно сделать в этой ситуации? Есть ли другой выход, кроме как сливать данные в другую таблицу при достижении макс.размера имеющейся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 15:00 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
То есть в этом случае получается, что при добавлении записей в таблицу, имеющую макс. размер 2 Гб, таблица повреждается. А что можно сделать в этой ситуации? Есть ли другой выход, кроме как сливать данные в другую таблицу при достижении макс.размера имеющейся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 15:13 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
как сказал владимир это связано с заголовком дбф таблицы в него записываеться размер таблицы под это отведено несколько байт поэтому нельзя поместить число свыше определенного в эти байты таковы особенности дбф формата ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 16:23 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
leaf Он вышел на предел не по количеству записей, а по объему данных в байтах. Под счетчик записей отводится 4 байта. Т.е. теоретически, туда можно записать до 2млрд. Хотя системным ограничением явялется 1млрд записей. bill1972 Это никак не обойти. Это системное ограничение DBF-таблиц. Только разделением на несколько таблиц. Не обязательно по записям (первая таблица-100 записей, вторая - следующие 100). Можно делить по полям: первая таблица - первые 10 полей, вторая таблица - следующие 10 полей+ID и т.п. Еще раз напомню системные ограничения DBF-таблиц: Количество записей - до 1млрд (1 и девять нулей) Объем - до 2ГБ Ограничение в 2ГБ относится также и к мемо-полям. Т.е. файл FPT также не может быть больше 2ГБ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 17:43 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
Hi ВладимирМ! На самом деле нету явного ограничения на число записей - оно просто "само собой" вытекает из ограничения на размер dbf-а. Учитывая что минимально запись может занимать 2 байта (например поле С(1) и ещё 1 байт на пометку об удалении). Кстати в таком "вырожденном" случае реально помещается в таблицу чуть больше чем "ровно 1 миллиард записей". Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2004, 05:47 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Hi ВладимирМ! На самом деле нету явного ограничения на число записей - оно просто "само собой" вытекает из ограничения на размер dbf-а. Учитывая что минимально запись может занимать 2 байта (например поле С(1) и ещё 1 байт на пометку об удалении). Кстати в таком "вырожденном" случае реально помещается в таблицу чуть больше чем "ровно 1 миллиард записей". Посмотрите форум, здесь кто - то уже приводил ссылку на MSDN library где были описаны все ограничения таблиц. Кроме того Ken Levy заявил в одном из своих обращений к народу, что по политическим соображениям (у нас же есть MS SQL Server ) это ограничение не будет снято, не смотря на давление прогрессивного FoxPro сообщества в 9 версии... Ну а про 10 версию пока ходят очень нехорошие слухи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2004, 12:54 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
Hi Sergey Ch! Зачем мне смотерть, я и так знаю где это описано (Visual FoxPro System Capacities) - только это неправда :) Сам попробуй: [SRC]CREATE TABLE test1 FREE (cDummy C(1)) FOR ln1 = 1 TO 1073741659 APPEND BLANK ENDFOR ? RECCOUNT("test1") [src]Как видишь записей там > 1 billion Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2004, 19:44 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Hi Sergey Ch! Зачем мне смотерть, я и так знаю где это описано (Visual FoxPro System Capacities) - только это неправда :) Сам попробуй: [SRC]CREATE TABLE test1 FREE (cDummy C(1)) FOR ln1 = 1 TO 1073741659 APPEND BLANK ENDFOR ? RECCOUNT("test1") [src]Как видишь записей там > 1 billion Posted via ActualForum NNTP Server 1.1 В последнее время я стал консервативен - написаны требования, значит в пределах этих требований все и надо делать... Тяга к экспериментам меня уже крупно пару раз подставляла... Особенно использование недокументированных функций и возможностей... Удачи Вам в Ваших изысканиях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2004, 21:12 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
Ну, не скажите :) Изыскания бывают весьма полезны. Когда год назад переходил на 8-ку, "наступил" на проблему "крякозябр" в отчетах с некоторыми шрифтами. Не знаю, может эта проблема уже решена как-то иначе, но мне пришлось писать проджет хук, "исправляющий" отчеты перед компиляцией. Без этого до сих пор сидел бы на 7-ке... Интересно, как там с русскими шрифтами в отчетах VFP9?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2004, 22:03 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
Большое спасибо всем за ответы, особенно Владимиру. Целью задачи было запихнуть в таблицу с максимально возможной скоростью данные из текстовых файлов, чтобы иметь возможность получить отчеты, с выбором по одному из полей. При минимальных значениях размеров полей в одну табличку влезет 20 млн. записей, а надо минимум в 10 раз больше. Если разделить на несколько таблиц, велика вероятность значительного снижения скорости выполнения запросов. Вариант с сервером уже сейчас используется как основной. Но хотелось вынести отдельно одну задачку, с тем еще, чтоб освободить ресурсы сервера. Похоже, вариант с DBF таблицей в данном случае не прокатит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 09:31 |
|
||
|
Что за прикол? О макс. размере таблицы и количестве записей..
|
|||
|---|---|---|---|
|
#18+
Hi bill1972! Вообще-то такие объёмы потребуют нехилого сервера. А возможности фокса далеко не исчерпываются ограничениями в 2Гб. как и в больших серверах тут можно использовать идеи партиционирования - т.е. разделения таблицы (по горизонтали) используя одно из полей как ключ! например - имеем поле "дата" - можно разделить таблицу по годам, или по месяцам - тогда запрос на выборку данных "за период" не потребует обработки всех таблиц набора, а лишь нескольких. Или имеем поле "владелец" - разбивая по первому символу этого поля - опять таки масса запросов сведётся к запросу всего из одного-максимум 2-х dbf-ов. В общем если как следует проанализировать саму задачу, то всегда можно найти удовлетворительное решение. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 05:42 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32761287&tid=1595479]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 317ms |

| 0 / 0 |
