|
|
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Экспериментруя с типами полей бд моей программы, я заметил такую вещь, размер бд становится меньше если у поля поменять тип поля с Text(50), например, на Memo. Никакой разницы в работе моей интерфейсной проги (написанной на VB6 в плане сортировки, фильтрации, добавления, удаления) я пока не вижу. Вся эта функциоанльность как работала с текстовыми полями, также работает и с Memo. Еще плюс то, что максимальный размер поля практически не ограничен. Да к тому же и размер бд становится меньше! Думаю перевести все типы текстовых полей на Memo. Зачем тогда вообще использовать тип Text? Могут ли возникнуть какие-либо подводные камни? Заранее спасибо. Иван Абрамов. http://AdAnalysis.narod.ru - моя программа для выбора авто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 13:23:02 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
на вскидку по полю Memo нельзя делать группировку в запросе, если только через обвязку -что не есть удобно. а что, так важен размер базы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 15:01:18 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Насколько я помню, в поле MEMO хранится ссылка на блок данных. И размер поля, в конечном итоге, определяется размером данных. А какие проблемы при этом возникают, трудно сказать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 15:09:21 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Да, точно, группировку по нему не сделаешь. И я вспомнил. Но в данном случае, мне не это не надо. (Программа слишком простая). А размер базы конечно не очень важен, но все же, от него зависит размер диструбутива всего приложения. Thanks. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 15:17:35 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Dmitry-SQLИ размер поля, в конечном итоге, определяется размером данных. Что характерно, это справедливо и для строкового. Возможно, размер базы стал меньше по другим причинам? Индексы, мусор или что-то еще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 15:51:17 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Речь идет о размере файла пустой бд (точнее демо-бд с минимальным количеством данных, которая идет с дистрибутивом). Индексы я контролирую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 15:58:49 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Версия MS Access 2000. Может в этой версии это еще не было справлдливо и для строкового типа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:00:04 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
С 97-го и выше было (про ранние не знаю точно, но подозреваю, что они недалеко отстали). Сейчас 2 раза запустил акцесс, каждый раз создал новую базу, создал новую таблицу, создал 1 поле (без ключевых), сохранил таблицу, ввел несколько (одинаковое количество) строк "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" (50 знаков), закрыл Акцесс. В первом случае поле сделал типа text(50), во втором - memo. Размер 1-го файла 67,5 кБ, второго, 69,6 кБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:04:54 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Возможно, это актульно для гораздо большего количества "а...", ведь максимальный размер текстового поля 256 символов. а Memo - было 2k, по-моему, а сейчас, вроде еще больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:08:41 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Хотя это и не показательно. Я не помню, начиная с какого размера содержимое поля memo выносится на отдельную страницу. Но для строкового поля отдельные страницы заводится просто не могут, оно имеет ограничение по размеру. Опять же, я не знаю, для каждого ли нового мемо-поля заводится своя страница, или они используются более плотно. При большом количестве строковых полей в таблице во втором случае действительно может получиться преимущество. Но разве такие таблицы бывают? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:10:20 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
А Compact & Repare делать не забывал после изменения типа поля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:17:51 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Иван АбрамовА Compact & Repare делать не забывал после изменения типа поля? Это мне? Я же говорю, оба раза создал чистую базу, оба раза ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:18:49 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Но разве такие таблицы бывают? Вот это-то и интересно. Может пусть будут! Если разницы никакой, а только преимущества? Или все-таки где-то есть разница. В скорости сортировки, например. Может по Memo полям сортировка работает медленнее, чем по Text, если нет индексов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:22:47 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Ссылку не помню, а файл есть: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:22:56 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
авторМожет по Memo полям сортировка работает медленнее, чем по Text Не работает вообще... F1 нажми про поле MEMO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:24:22 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Не работает вообще... Да, помню, раньше это было так. (И сейачс вижу, что в самом MSAccess 2000 нельзя по Memo отсортировать). Но мой клиентский компонет, TrueDBGrid 8.0, сортирует по Memo-полям. Видимо имеет свои встроенные средства. Для связки у меня используется ADO 2.5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:44:32 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Странно, сейчас у меня не получается подготовить свой пример с уменьшением размера DemoDb с данными после изменения типа поля с Text на Memo. Ранее я точено это видел. Может действительно какой мусор сохранялся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:49:17 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
Хотя нет, дело не может быть в клиентском гриде. Вот как открывается рекодсет m_rstMain.Open "SELECT * FROM tblAd ORDER BY Ad, ID", g_clsDb.Con, adOpenKeyset, adLockOptimistic Поле Ad - Memo и все сортируется, но я не пойму почему? Видимо ADO все же как-то сортирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:59:48 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
По аналогии с FoxPro3.0 организация Мемо поля выглядит так: В таблице поле занимает 4 байта и хранит Long адрес блока в другом месте. Размер блока 64 байта (в Access, возможно, меньше или больше). В блоке, на который ссылается адрес, первые 8 байт - служебные. Если вносятся данные размером <=56 байт - используется 1 блок, если 57 байт - 2 блока. Если затем данные удалить, то удаляется адрес, а мусор остается. Подобная картина, если текст, занимающий 2 блока, заменить текстом, для которого достаточно 1-го. Если по текстовому полю не выполняются группировки и сортировки, то польза от замены на Мемо зависит от длины поля и статистики заполнения. Поле длиной 255 символов, которое заполняется под завязку лиш в единичных случаях, а чаше данные не превышают 50 - вполне логично заменить на Мемо. То же можно сказать и про поле в 20-50 символов, если количество пустых полей значительно больше заполненных. В какой-то степени нужно учитывать свойство поля "Unicode Compression". Латинские символы ужимаются, другие - нет, и занимают 2 байта каждый. Кстати, как это работает - я не въезжаю. Я в своих БД перевел все поля для примечаний на Мемо, в результате получил ощутимое уменьшение размера и простор для творчества при заполнении полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 11:39:03 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
По-моему, примечание-Memo - хороший тон :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 11:41:29 |
|
||
|
Чем отличается тип поля Memo от Text (с размером поля)?
|
|||
|---|---|---|---|
|
#18+
А почему же все-таки у меня прекрасно работает сортировка по Memo полю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 18:40:12 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32605829&tid=1673142]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 305ms |

| 0 / 0 |
