|
|
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
У меня есть достаточно большая таблица - 1665344 записей (2 поля типа Long без индексов), размер mdb ~ 26М. Я добавил в эту таблицу третье поле типа Boolean - через конструктор. Размер mdb не увеличился ни на один байт, даже после "сжатия и восстановления" ... как такое возможно??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 10:56:43 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
А зачем размеру увеличиваться :) В одном байте может храниться до 8 Boolean полей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:03:00 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
В одном байте может храниться до 8 Boolean полей Правда что-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:04:40 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
а мужики то и не знают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:06:32 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван FXSРазмер mdb не увеличился ни на один байт Хорошо хоть не уменьшился. Да, мне бы твои проблемы:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:09:52 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
PavelХорошо хоть не уменьшился. Нет, все-таки хорошо, что не увеличился - после восстановления и сжатия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:30:36 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Alexey Sh В одном байте может храниться до 8 Boolean полей Так то в MS SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:31:13 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Alexey ShА зачем размеру увеличиваться :) В одном байте может храниться до 8 Boolean полей - ну и в каком же "байте" они будут храниться? может быть - внутри одного из моих Long-полей? ;-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:32:02 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Лох ПозорныйНет, все-таки хорошо, что не увеличился - после восстановления и сжатия - во, блин ... крутизна - зашкаливает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:33:09 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Для тех кто в танке: На каждые 8 булевских полей в mdb файле выделяется один байт. Доказательства см. http://sourceforge.net/projects/mdbtools ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:42:44 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Alexey ShДля тех кто в танке: На каждые 8 булевских полей в mdb файле выделяется один байт. - еще раз повторяю: в исходной таблице НЕ БЫЛО булевских полей, были только два поля типа Long. Жду ответа, как соловей - лета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:46:47 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Для тех кто вылез из танка хелп Тип данных: BIT Размер: 1 байт Описание: Значения «Да» (Yes) и «Нет» (No), а также поля, содержащие одно из двух возможных значений Доказательства - жми кнопку Ф1 З.Ы. Хотя и не проверял. Может аксес их и компрессирует все-таки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:49:39 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Лох Позорный В одном байте может храниться до 8 Boolean полей Правда что-ли? Это действительно так. На 8 полей выделяется специальный индикатор размером 1 байт. Поэтому добавление Boolean поля могло не вызвать изменения размера, если последний индикатор обслуживал меньше 8 полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:51:11 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Ох и дался вам этот 1 байт ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:53:16 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Alexey ShДля тех кто в танке: На каждые 8 булевских полей в mdb файле выделяется один байт. Доказательства см. http://sourceforge.net/projects/mdbtools Не совсем так, не на 8 булевских полей, а просто на каждые восемь полей добавляется 1 байт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:53:37 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
а что я то сразу??? я в танке сижу, мне сказали что 1 поле занимает 1 байт - я поверил сказали что 8 полей занимает 1 байт - я опять таки поверил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 11:54:00 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Коллеги, все на самом деле еще более запущено: удосужился разделить объем файла (26 869760 байт) на число записей (1665344). Получилось, что у меня на каждые два значения типа Long приходится 16,13 байт ... Многовато будет, считай - двойной запас ... как такое возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:05:05 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Коллега, вы попробуйте вообще все записи удалить, и потом поделить объем базы на количество записей (=0). А потом спросите - как такое возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:08:50 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Ну и ... что Вы хотите сказать, кроме как "отметиться"? В чем глубокий смысл Вашей реплики?? :-( Может быть, Вы просто очень торопитесь и ... отвечаете не думая? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:11:39 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Нет, это вы очень торопитесь, и задаете вопросы не думая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:14:18 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван FXSУ меня есть достаточно большая таблица - 1665344 записей (2 поля типа Long без индексов), размер mdb ~ 26М. Я добавил в эту таблицу третье поле типа Boolean - через конструктор. Размер mdb не увеличился ни на один байт, даже после "сжатия и восстановления" ... как такое возможно??? судя по всему у тебя на страницах данных был запас либо в виде явно незаполненных хвостов страницы, либо в виде груды удаленных записей, количества байт в которых оказалось достаточно, чтобы не увеличивать количества страниц данных для таблицы (после как добавления поля, так и сжатия/восстановления :)) ). ЗЫ про то, что акцесс економит байты на битовых полях - для меня тоже хорошая новость. похоже это если и было, то "уже давно". хотя "в явном виде" слышу об этом впервые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:14:36 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван FXSКоллеги, все на самом деле еще более запущено: удосужился разделить объем файла (26 869760 байт) на число записей (1665344). Получилось, что у меня на каждые два значения типа Long приходится 16,13 байт ... Многовато будет, считай - двойной запас ... как такое возможно? Дык, мало информации, может индексы какие. А вообще, если интересуетесь форматом mdb, сходите по ссылке, которую дал Alexey Sh ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:14:39 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
вот, например, что пишет сохраненная справка от jetdevguide (dbjet) 3.51 по этому поводу help Estimating the Size of a Table or Database You can estimate the size of a Microsoft Jet table or database. You cannot determine the exact size of a table or database for the following reasons: The size of system tables can vary greatly. The estimate doesn’t account for the space taken up by indexes in your database. For simplicity, the estimate assumes contiguous record storage. Microsoft Jet stores records on 2K pages and doesn’t split records across pages. Therefore, you might have unused space on individual data pages, generally less than the size of an average record. The length of some fields can vary depending on the data they contain. When you estimate the size of a table that contains a variable-length field, the estimate is based on the maximum size of the field, not on the actual length of the data it contains. For example, suppose you define a variable-length field with a size of 25 characters, and you store the character Y in this field. The actual storage consumed will be 2 bytes: 1 for the character and 1 for the overhead. This is 23 bytes fewer than you might use to estimate the storage space for a table. Consider the following when you estimate the size of a Microsoft Jet table or database: Records in Microsoft Jet versions 1.0 through 2.5 databases have an overhead of 7 bytes per record, and records in version 3.0 and 3.5 databases have an overhead of 6 bytes per record. Fields have an overhead of 1 byte, plus 1 byte for every 256 bytes of record storage. Fixed-length fields for Yes/No, Byte, Integer, Long Integer, Single, Double, and Date/Time data types have an overhead of 1 byte per field, rounded to the next higher byte. Zero-length text strings occupy 1 byte in the record (plus the overhead described in the preceding bullet). For Microsoft Jet versions 1.0 through 2.5, the minimum size of a database is 65,536 bytes. These databases always grow in 32K chunks (32,768 bytes). Versions 3.0 and 3.5 databases have a minimum size of 40,960 bytes and grow in multiples of 2K. A new database created in Microsoft Access 97 is 60K (61,440 bytes) because of additional system tables added by Microsoft Access. The following table estimates the size of a table in a Microsoft Jet 3.5 database. The table has 10,000 records. Field Data type/Overhead description Size in bytes Overhead bytes 1 Text 25 1 2 Text 25 1 3 Number/Double 8 1 4 Date/Time 8 1 Record Overhead N/A 6 Totals 66 10 The total size of the table is 66 + 10, or 76, bytes per record. Because the table has 10,000 records, the total size of the table is 760,000 bytes (76 x 10,000). Because this example takes into account the maximum size of the text fields, this is only an estimate of the table size. The actual size of the values in the text fields determine the actual size of the table. The following table estimates the size of the Customers table in the Microsoft Jet 3.5 Northwind.mdb sample database. The Customers table has 91 records. Field name/Overhead description Data type Size in bytes Overhead bytes CustomerID Text 5 1 CompanyName Text 40 1 ContactName Text 30 1 ContactTitle Text 30 1 Address Text 60 1 City Text 15 1 Region Text 15 1 PostalCode Text 10 1 Country Text 15 1 Phone Text 24 1 Fax Text 24 1 Record Overhead N/A N/A 6 Overhead for >256 bytes of text N/A N/A 1 Totals 268 18 The total size of the Customers table is 268 + 18, or 286, bytes per record. Because the table has 91 records, the size of the table is 26,026 bytes (286 x 91). Again, because the actual sizes of the text field values aren’t known, this is only an estimate. -------------------------------------------------------------------------------- Send feedback to MSDN.Look here for MSDN Online resources (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:17:37 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
да, давно структурку смотрел. Итого: На кажде поле всегда выделяется бит в Null-Mask (даже если поле не может содержать NULL, позволяет не трогая данных менять атрибут Required). Boolean поля хранятся в тех же битах, именно поэтому в mdb , булевские поля не могут быть Null. Ксли в таблице два лонга, в неё без изменения размера влезет ещё 6 Boolean полей +--------------------------------------------------------------------------+ | Jet4 Row Definition | +------+---------+---------------------------------------------------------+ | data | length | name | description | +------+---------+---------------------------------------------------------+ | ???? | 2 bytes | num_cols | Number of columns stored on this row. | | ???? | n bytes | fixed_cols | Fixed length columns | | ???? | n bytes | var_cols | Variable length columns | | ???? | 2 bytes | eod | length of data from begining of record | | ???? | n bytes | var_table[]| offset from start of row for each var_col | | ???? | 2 bytes | var_len | number of variable length columns | | ???? | n bytes | null_mask | Null indicator. size is 1 byte per 8 cols | | | | | 0 indicates a null value. Also used to | | | | | represent value of bit type columns | +--------------------------------------------------------------------------+ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:24:12 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Serge GavrilovДык, мало информации, может индексы какие. - е-к-л-м-н! Написал же - в первом же постере: 2 поля типа Long без индексов! В базе нет ничего, кроме этой охренительной таблицы (специально ее выудил и отдельно положил!), и сжатия/восстановления - КОНЕЧНО ЖЕ ПРОИЗВЕДЕНО! И вообще - ПОЧТИ ровно 16 байт на запись ... какие тут могут быть "незаполненные хвосты страницы", какие "груды удаленных записей"? PS. Кстати, индекс-без-повторений по одному из указаных Long-полей увеличивает размер базы до 40 275 968 байт (24.18 байт/запись), то есть индекс добавляет 8 байт на запись! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:28:10 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Boolean поля хранятся в тех же битах, именно поэтому в mdb , булевские поля не могут быть Null. Все гениальное просто. Сенькс. Ксли в таблице два лонга, в неё без изменения размера влезет ещё 6 Boolean полей Надеюсь автор получил ответ на свой первоначальный вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:32:52 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Лох Позорный Ксли в таблице два лонга, в неё без изменения размера влезет ещё 6 Boolean полей Надеюсь автор получил ответ на свой первоначальный вопрос? - да, на первоначальный - получил. Спасибо ВСЕМ за конструктивный подход. Осталось расписать, - как на структуре из 2-х Loнгов набегает 16 байт на запись ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:37:25 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Ну а системные таблицы где хранится будут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:38:44 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
А может еще какой запрос, форма\отчет или модуль\макрос в mdb затесался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:40:45 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
PavelНу а системные таблицы где хранится будут? - если это вопрос ко мне, то ... при размере таблицы в 26М - "где будут хранится системные таблицы" - меня мало интересует! На запись приходится 16.13 байта, вот в этих 0.13 байта и "хранятся", очевидно, системные таблицы ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:42:58 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван FXS- е-к-л-м-н! Написал же - в первом же постере: 2 поля типа Long без индексов! ну что вы так нервничаете :) ну пропустил, виноват, работаю одновременно .. Но я же вам сказал, что вы можете изучить формат сами. Просто и для страницы нужно описание и для записи. Даже на первый взгляд видно, что каждой записи надо как минимум 4 байта на описание ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:46:12 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван FXS Лох Позорный Ксли в таблице два лонга, в неё без изменения размера влезет ещё 6 Boolean полей Надеюсь автор получил ответ на свой первоначальный вопрос? - да, на первоначальный - получил. Спасибо ВСЕМ за конструктивный подход. Осталось расписать, - как на структуре из 2-х Loнгов набегает 16 байт на запись ... в соответствии с таблицей от Alexey Sh: 2 байта - - к-во полей 2 байта - выровненный до ште описатель дщтпф 4 байта - значение лонга 2 байта - выровненный до ште описатель дщтпф 4 байта - значение лонга 1 байт - нулл маск -------------------- 15 умно было бы выровнять хотябы до ближайшего кратного int если не так, то лишние байты соберутся в конце страницы, а работа с базой РЕЗКО замедлится +1 =16 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 12:46:21 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Два байта на Offset на каждую запись! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 13:01:14 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Victosha-------------------- 15 умно было бы выровнять хотябы до ближайшего кратного int если не так, то лишние байты соберутся в конце страницы, а работа с базой РЕЗКО замедлится +1 =16 Супер! Спасибо!! Но дальше ... интересные вещи продолжаются. Я решил, что могу в тот же размер впихнуть еще 6 + 8 =14 Booleans (+8 - это 16-й байт, котрый сейчас "пропадает") ... и в самом деле, таблица приняла их не пикнув! Когда я добавил 15-й Boolean - база подросла на ... 60Кб, но после сжатия - ВЕРНУЛАСЬ В ПРЕЖНИЙ размер! И так - продолжалось при добавлении Booleans с 15-го по 30-й (т.е - пока ПОЛНОЕ число полей в таблице не стало - 32) ... А вот когда я добавил 31-й Boolean (число полей в таблице стало - 33) - база выросла до 28 557 312 байт, то есть - добавился "скачком" 1 байт на запись ... Забавно ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 13:20:03 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Add: похоже, будто тот "описатель записи", в котором "на халяву" размещаются Booleans, имеет размер не 1 байт, а 32 бита (4 байта) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 13:25:06 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
...если вы сумели диагностировать ослабление крепления картера рулевого управления - значит, вы здорово разбираетесь в таких мудрёных вещах! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 13:35:44 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван , а производственная необходимость состоит в экономии дискового пространства или в поиске способа компактного хранения данных ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 13:43:04 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Во многих знаниях многия печали, и умножающий премудрость умножает скорбь (с) Экклезиаст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 14:06:52 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Наверно, я невнимательно читал этот топик, поэтому заранее прошу прощения. Но мне кажется, что размер файла mdb увеличивается скачками по сколько-то байтов. Каждый скачок добавляет место для следующего роста количества информации, пока не понадобится следующий скачок. Если при добавлении поля увеличение файла не произошло - это значит, что предыдущего скачка хватило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 14:14:12 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч... размер файла mdb увеличивается скачками по сколько-то байтов. Каждый скачок добавляет место для следующего роста количества информации, пока не понадобится следующий скачок. Если при добавлении поля увеличение файла не произошло - это значит, что предыдущего скачка хватило. 97 - 2048 > 97 - 4096 размер страницы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 14:34:26 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
ShuhardИван , а производственная необходимость состоит в экономии дискового пространства или в поиске способа компактного хранения данных ? - производственная необходимость, говорите? ... А я думал, - экономия ресурсов, - это как бы такой безусловный рефлекс должен быть ... у программистов ... ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 14:35:34 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
А тогда почему бы тебе еще и TMP файлы на диске не чистить паралельно. Тоже экономия ресурсов ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 14:39:05 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Эт, Вы считаете, конструктивный разговор? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 14:46:07 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
2 Иван FXS : Решая задачу оптимизации, неплохо бы определиться с целевой функцией Мы Вас обслужим быстро, качественно , недорого. Просьба выбрать два пункта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 14:46:33 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван FXS ShuhardИван , а производственная необходимость состоит в экономии дискового пространства или в поиске способа компактного хранения данных ? - производственная необходимость, говорите? ... А я думал, - экономия ресурсов, - это как бы такой безусловный рефлекс должен быть ... у программистов ... ;-) тогда mdb не оптимален - легко заметить по коэффициенту сжатия любым архиватором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 17:17:49 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Shuhardтогда mdb не оптимален - легко заметить по коэффициенту сжатия любым архиватором. Не путай оптимальность с нормализацией. Хранилище OLAP в формате mdb ой как жмется, но это совсем не значит что оно не оптимально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 17:43:17 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Хранилище OLAP в формате mdb Ахтунг! Я уже боюсь Такое бывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 17:46:47 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Лох Позорный Хранилище OLAP в формате mdb Ахтунг! Я уже боюсь Такое бывает? к Crystal Reports что-то похожее идёт Pavel - про "рыхлость" куба понимаю ,хочу добиться от Ивана ответа о цели оптимизации,выяснили про устройство mdb каков дальнейший шаг - тестирование всех ISAM форматов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 18:07:11 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Не пугайте меня, к кристалу 9 прикладывалась базейка xtrem.mdb и некие Holos Data control File и Holos Data Dimension File, а кубик похоже кристалом из этого добра на лету строится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 18:23:21 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Лох Позорный Хранилище OLAP в формате mdb Ахтунг! Я уже боюсь Такое бывает? Не только бывает а ЕСТЬ ПО УМОЛЧАНИЮ, если иначе не приказать. Можно сказать - стандарт, а вовсе не АХТУНГ. ЗЫ не пужайся сильно. там главным образом описания живут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 18:45:01 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Лох Позорный Хранилище OLAP в формате mdb Ахтунг! Я уже боюсь Такое бывает? С AS пример идет как раз в формате mdb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 18:45:27 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Victosha, не видел твой пост :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 18:46:38 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
PavelVictosha, не видел твой пост :) и я не видел :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 18:47:10 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Shuhard...хочу добиться от Ивана ответа о цели оптимизации,выяснили про устройство mdb каков дальнейший шаг ... - да нету никакой "цели оптимизации"! Есть общее понимание - на уровне здравого смысла - что чем больше полей, тем больше база. Значит - если проектируешь систему ... -мку ..., включающую в себя БОЛЬШУЮ таблицу (на миллионы записей), то нужно себя ограничивать ... Когда знаешь, что - в некоторых ситуациях - можно себя кое в чем не ограничивать, это ... просто ... приятно. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 19:23:27 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван FXS Shuhard...хочу добиться от Ивана ответа о цели оптимизации,выяснили про устройство mdb каков дальнейший шаг ... - да нету никакой "цели оптимизации"! Есть общее понимание - на уровне здравого смысла - что чем больше полей, тем больше база. Значит - если проектируешь систему ... -мку ..., включающую в себя БОЛЬШУЮ таблицу (на миллионы записей), то нужно себя ограничивать ... Когда знаешь, что - в некоторых ситуациях - можно себя кое в чем не ограничивать, это ... просто ... приятно. ;-) здравый смысл подсказывает ,что миллионы записей в mdb хранить не есть хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 20:17:39 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
2 Shuhard : Зачем так категорично? Если табличка на два лонга и 2 бита с показаниями какого-нибудь датчика в университетской лаборатории, то поиграться с парой-другой миллионов записей в аксессе - вполне нормально, особенно для физика, а не программера например ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 20:57:59 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Alexey Sh2 Shuhard : Зачем так категорично? Если табличка на два лонга и 2 бита с показаниями какого-нибудь датчика в университетской лаборатории, то поиграться с парой-другой миллионов записей в аксессе - вполне нормально, особенно для физика, а не программера например с 2 полями не пробовал - весьма редкий случай базы из ОДНОЙ таблицы документооборот/статистика у меня "умирали" при 70-120 000 записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2004, 21:58:26 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Shuhardдокументооборот/статистика у меня "умирали" при 70-120 000 записей - что показывало вскрытие, от чего умер больной? От количества записей, от объема базы, от чего-то еще? В чем ПРИНЦИПИАЛЬНОЕ ограничение, не позволяющее аццессу работать - например - с миллиардом записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 09:38:12 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
У Access'97 из хелпа: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 09:57:33 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
В последующих версиях размер mdb увеличился до 2 гигов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 09:59:23 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
ПРИНЦИПИАЛЬНОЕ ограничения см в спецификации Access в моем случае времена выборки были критичны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 11:02:03 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Shuhardв моем случае времена выборки были критичны - времена выборки - по индексированым полям, надеюсь? Тогда - непонятно ... индекс, он и в африке - индекс ... бинарное дерево, или что-то типа того ... Каким образом Аццесс может тут оказываться ПРИНЦИПИАЛЬНОЕ медленее других СУБД? Вы ведь не хотите сказать, что ... он просто не умеет их готовить ... в смысле: Билл Гейтс - индексы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 11:31:58 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Этта от запросов зависит, по техническим причинам, JET не может в кэше долго держать страницы как данных, так и индексов См MSDN, искать "jet locking" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 11:42:41 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван FXS Shuhardв моем случае времена выборки были критичны - времена выборки - по индексированым полям, надеюсь? Тогда - непонятно ... индекс, он и в африке - индекс ... бинарное дерево, или что-то типа того ... Каким образом Аццесс может тут оказываться ПРИНЦИПИАЛЬНОЕ медленее других СУБД? Вы ведь не хотите сказать, что ... он просто не умеет их готовить ... в смысле: Билл Гейтс - индексы? ищи луну в небе ,а не в пруду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 11:49:45 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Alexey ShЭтта от запросов зависит, по техническим причинам, JET не может в кэше долго держать страницы как данных, так и индексов См MSDN, искать "jet locking" - спасибо за ликбез. А зачем нужно "долго держать в кэше страницы как данных, так и индексов"? Чтобы лишний раз их туда не загружать? Типа ... если "страниц данных и индексов" в базе - мегабайт этак ... на 10 (100?) - хочется держать их постоянно в кэше? И - какая тогда есть РЕАЛЬНАЯ альтернатива аццессу: а. для использования в качестве ПЕРСОНАЛЬНОГО инструмента б. на ЛОКАЛЬНОЙ в. машине из-по WINDOWS ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 12:28:55 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Да, хочется держать в кэше максимум возможного А что касается локальной базы на локальной машине для одинокого юзера - я собственно никогда и не возражал против аксесса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 12:34:17 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
автор И - какая тогда есть РЕАЛЬНАЯ альтернатива аццессу: а. для использования в качестве ПЕРСОНАЛЬНОГО инструмента б. на ЛОКАЛЬНОЙ в. машине из-по WINDOWS для решения какой задачи ищется альтернатива ,что значит реальная,отличия персонального инструмента,и нужен ли Linux ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 13:23:07 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Родился Джет, рос себе, развивался. Был у него старший брат - Эмэс Эскуэл. Эскуэл выполнял всю тяжелую работу, а Джет делал что попроще. Причем мелкую работу делал очень быстро, практически без подготовки, и ел при этом гораздо меньше старшего брата. Но вот тяжелую работу он делал с трудом, часто ее запарывал, и поэтому поручали ее Эскуэлу. В один прекрасный день проснулся Эскуэл, и понял, что стал совсем другим. И может есть мало, и работать делать мелкую не хуже младшего брата, и жить может не только в барских покоях, но и в халупе. И стали ему поручать всякую работу, и простую и сложную, и быструю и долгую, а про Джет родители стали говорить - не выйдет из него толку, перестал он рости и развиваться, и мы больше не хотим с ним возится, не давайте ему работы, пусть перебивается от случая к случаю, еще не все про Эскуэла знают, так что и Джету пока работы хватит! Вот такая сказка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 13:39:26 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
2Pavel Душевная сказка, я плакаль! :-) Прямо скажем, не всякий может так просто, легко и доходчиво пояснить, что есть как и почему. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2004, 21:00:49 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Alexey ShДа, хочется держать в кэше максимум возможного - да уж - не стесняйтесь, - говорите сразу: "хочется держать в кэше" ВЕСЬ индекс и ВСЮ обрабатываемую таблицу ЦЕЛИКОМ! Ибо - какая разница: удается нам "держать в кэше" 50% или 5% - все равно нужно будет выгружать одно и загружать другое ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 09:46:10 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Корневые и близкие к ним страницы индексов и системные таблицы в кэше удивительно полезны Если конечно речь идёт о быстродействии а не экономии RAM. Я не зря спрашивал про целевую функцию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 10:45:56 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Alexey ShКорневые и близкие к ним страницы индексов и системные таблицы в кэше удивительно полезны - ок, убедили, сдаюсь: если у аццесса И С ЭТИМ - проблемы, то он в самом деле ни на что не годится ... Alexey ShЯ не зря спрашивал про целевую функцию - "целевую функцию" - для выбора между чем и чем? Ок, предположим, есть задачка: 1. ключевое поле 4 байта (т.е. - типа Long), 2. к нему прилагаются еще несколько (минимум - одно, максимум - пять) полей по 4 байта 3. число записей - несколько миллионов ... возможно - несколько ДЕСЯТКОВ миллионов ... Нужно: 4. как можно более эффективно ИЗВЛЕКАТЬ из таблицы запись - по значению ключевого поля 5. как можно более эффективно ПОДДЕРЖИВАТЬ эту таблицу, то есть - добавлять (по мере необходимости) в нее новые записи 6. в последствии - анализировать эту таблицу, то есть - вычислять по ней различные СТАТИСТИКИ ... Какое решени будет ПРИНЦИПИАЛЬНО лучше, чем MS Access (с учетом - Windows, локальная, персональная машина) ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 11:14:14 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
а зачем такой задаче нужен sql - файл постоянной структуры(запись фиксированной длины) - прямой доступ т.е. ключ->смещение от начала файла соответсвенно файлов 2 шт - данные и индекс получается dbf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 11:25:59 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Shuhardключ->смещение от начала файла - "адресное пространство" для значений типа лонг - это 4 с хвостиком миллирда "ячеек" ... я ничего не путаю? То есть Вы предлагаете производить "смещение от начала" в файле размером несколько ДЕСЯТКОВ гигабайт ... ага? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 11:47:46 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
1)путаете 2) НЕ ага ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 12:19:40 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
прямой доступ - этот термин не о чём не говорит ? автор Читает данные из открытого файла на диске в переменную. Синтаксис Get [#]номерФайла, [номерЗаписи], имяПеременной Синтаксис инструкции Get содержит следующие элементы: Элемент Описание номерФайла Обязательный. Любой допустимый номер файла. номерЗаписи Необязательный. Тип Variant (Long). Номер записи (для файлов в режиме Random) или номер байта (для файлов в режиме Binary), с которого следует начать чтение. имяПеременной Обязательный. Допустимое имя переменной, в которую следует поместить считанные данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 12:24:52 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Извините, Вы написали: авторключ->смещение от начала файла- я не понимаю, как я по 4-байтному ключу буду узнавать это самое смещение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 12:50:02 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван FXSИзвините, Вы написали: авторключ->смещение от начала файла- я не понимаю, как я по 4-байтному ключу буду узнавать это самое смещение? при записи в файл данных определяется номер свободной записи ,пара номер записи+смещение записываюися в файл индексов ну а способ хэширования Иван выберете самостоятельно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 12:58:40 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
То есть Вы мне предлагаете ... склепать "на коленке" индексный поиск ... и утверждаете, что я смогу "обставить" аццесс??? :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 13:05:45 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван FXSТо есть Вы мне предлагаете ... склепать "на коленке" индексный поиск ... и утверждаете, что я смогу "обставить" аццесс??? :-( написав на C/Asm под свою узкую задачу несомненно обскачите решение будет не расширяемое,зато максимально оптимизированное у меня крутилься на старой работе не реляционный OLTP под FreeBsd - по времени выборки в десятки раз перекрывая все щупанные СУБД(но жёсткий аки панцирь). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 13:12:46 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Конечно можно обставить! А какго рода обращения к табличке ожидаются? от ответа на вопрос зависит правильный выбор "сорта" дерева для индекса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 13:14:30 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Alexey ShА какго рода обращения к табличке ожидаются? от ответа на вопрос зависит правильный выбор "сорта" дерева для индекса - дык:Ок, предположим, есть задачка ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 13:20:16 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Вспомнить всё :) ИМХО оставить в покое C++, смириться с потерей 7 байтов на запись и запрограммировать на аксессе. Для оптимизации запускать аксесс монопольно и подкрутить параметры Jet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 13:28:50 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
дык Вам быстро читать и долго писать/быстро писать и долго читать Alexey Sh и спросил об этом автор 4. как можно более эффективно ИЗВЛЕКАТЬ из таблицы запись - по значению ключевого поля 5. как можно более эффективно ПОДДЕРЖИВАТЬ эту таблицу, то есть - добавлять (по мере необходимости) в нее новые записи более эффективно - означает осознанный выбор баланса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 13:29:53 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Ок, давайте - для определенности - "быстро читать и долго писать". // Я надеюсь, что "долго писать" не выльется в БЕСКОНЕЧНО долго ... ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 13:56:56 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Alexey ShВспомнить всё :) ИМХО оставить в покое C++, смириться с потерей 7 байтов на запись и запрограммировать на аксессе. - дык! Рубка-то идет уже не за семь байтов, а за то, что индексы в аццессе, якобы, никуда не годятся! Alexey ShДля оптимизации запускать аксесс монопольно и подкрутить параметры Jet - а с этого места - пожалуйста, по-подробнее ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 13:59:53 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Смотреть в хелпе или MSDN Initializing the Microsoft Jet 4.0 Database Engine Driver P.S. Оптимизировать можно не только программу, но и затраты своих сил и времени. Вопрос с целевой функцией остаётся открытым :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 14:13:01 |
|
||
|
при добавлении поля в таблицу размер базы не увеличился!
|
|||
|---|---|---|---|
|
#18+
Иван FXS Alexey ShВспомнить всё :) ИМХО оставить в покое C++, смириться с потерей 7 байтов на запись и запрограммировать на аксессе. - дык! Рубка-то идет уже не за семь байтов, а за то, что индексы в аццессе, якобы, никуда не годятся! Alexey ShДля оптимизации запускать аксесс монопольно и подкрутить параметры Jet - а с этого места - пожалуйста, по-подробнее ... 1 я собственно постился о том,что мои широкие таблицы мёрли на 100000 записях, и 10 миллионов записей я бы в mdb не хранил. 2 существует и клиент-серверная технология в рамках персонально/локальной идиомы MySql под Windows для данной задачи (ИМНО) подойдёт полностью,а комбинация VmWare+Linux+MySql будет ещё и шустрой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2004, 14:36:53 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1672025]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
124ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 453ms |

| 0 / 0 |
