powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Чем отличается тип поля Memo от Text (с размером поля)?
22 сообщений из 22, страница 1 из 1
Чем отличается тип поля Memo от Text (с размером поля)?
    #32605829
Экспериментруя с типами полей бд моей программы, я заметил такую вещь,
размер бд становится меньше если у поля поменять тип поля с Text(50), например, на Memo.
Никакой разницы в работе моей интерфейсной проги (написанной на VB6 в плане сортировки, фильтрации, добавления, удаления) я пока не вижу.
Вся эта функциоанльность как работала с текстовыми полями, также работает и с Memo. Еще плюс то, что максимальный размер поля практически не ограничен. Да к тому же и размер бд становится меньше!

Думаю перевести все типы текстовых полей на Memo.
Зачем тогда вообще использовать тип Text?
Могут ли возникнуть какие-либо подводные камни?

Заранее спасибо.
Иван Абрамов.
http://AdAnalysis.narod.ru - моя программа для выбора авто.
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606174
Фотография kedzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на вскидку
по полю Memo нельзя делать группировку в запросе, если только через обвязку -что не есть удобно.

а что, так важен размер базы?
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606202
Dmitry-SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я помню, в поле MEMO хранится ссылка на блок данных.
И размер поля, в конечном итоге, определяется размером данных.
А какие проблемы при этом возникают, трудно сказать...
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606222
Да, точно, группировку по нему не сделаешь. И я вспомнил.
Но в данном случае, мне не это не надо. (Программа слишком простая).
А размер базы конечно не очень важен, но все же, от него зависит размер диструбутива всего приложения.

Thanks.
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606351
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry-SQLИ размер поля, в конечном итоге, определяется размером данных.
Что характерно, это справедливо и для строкового. Возможно, размер базы стал меньше по другим причинам? Индексы, мусор или что-то еще?
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606377
Речь идет о размере файла пустой бд (точнее демо-бд с минимальным количеством данных, которая идет с дистрибутивом).
Индексы я контролирую.
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606384
Версия MS Access 2000.
Может в этой версии это еще не было справлдливо и для строкового типа?
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606395
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С 97-го и выше было (про ранние не знаю точно, но подозреваю, что они недалеко отстали).

Сейчас 2 раза запустил акцесс, каждый раз создал новую базу, создал новую таблицу, создал 1 поле (без ключевых), сохранил таблицу, ввел несколько (одинаковое количество) строк "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" (50 знаков), закрыл Акцесс.

В первом случае поле сделал типа text(50), во втором - memo. Размер 1-го файла 67,5 кБ, второго, 69,6 кБ.
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606411
Dmitry-SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, это актульно для гораздо большего количества "а...",
ведь максимальный размер текстового поля 256 символов.
а Memo - было 2k, по-моему, а сейчас, вроде еще больше.
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606417
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя это и не показательно. Я не помню, начиная с какого размера содержимое поля memo выносится на отдельную страницу. Но для строкового поля отдельные страницы заводится просто не могут, оно имеет ограничение по размеру. Опять же, я не знаю, для каждого ли нового мемо-поля заводится своя страница, или они используются более плотно. При большом количестве строковых полей в таблице во втором случае действительно может получиться преимущество. Но разве такие таблицы бывают? ;)
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606432
А Compact & Repare делать не забывал после изменения типа поля?
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606439
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван АбрамовА Compact & Repare делать не забывал после изменения типа поля?

Это мне? Я же говорю, оба раза создал чистую базу, оба раза ...
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606458
Но разве такие таблицы бывают?

Вот это-то и интересно. Может пусть будут! Если разницы никакой, а только преимущества?
Или все-таки где-то есть разница. В скорости сортировки, например. Может по Memo полям сортировка работает медленнее, чем по Text, если нет индексов?
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606460
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ссылку не помню, а файл есть:
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606465
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМожет по Memo полям сортировка работает медленнее, чем по Text
Не работает вообще...
F1 нажми про поле MEMO
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606526
Не работает вообще...

Да, помню, раньше это было так. (И сейачс вижу, что в самом MSAccess 2000 нельзя по Memo отсортировать).
Но мой клиентский компонет, TrueDBGrid 8.0, сортирует по Memo-полям.
Видимо имеет свои встроенные средства.

Для связки у меня используется ADO 2.5.
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606545
Странно, сейчас у меня не получается подготовить свой пример с уменьшением размера DemoDb с данными после изменения типа поля с Text на Memo.
Ранее я точено это видел.
Может действительно какой мусор сохранялся.
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32606586
Хотя нет, дело не может быть в клиентском гриде.

Вот как открывается рекодсет

m_rstMain.Open "SELECT * FROM tblAd ORDER BY Ad, ID", g_clsDb.Con, adOpenKeyset, adLockOptimistic

Поле Ad - Memo и все сортируется, но я не пойму почему?
Видимо ADO все же как-то сортирует.
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32607651
По аналогии с FoxPro3.0 организация Мемо поля выглядит так:
В таблице поле занимает 4 байта и хранит Long адрес блока в другом месте.
Размер блока 64 байта (в Access, возможно, меньше или больше).
В блоке, на который ссылается адрес, первые 8 байт - служебные.
Если вносятся данные размером <=56 байт - используется 1 блок, если 57 байт - 2 блока. Если затем данные удалить, то удаляется адрес, а мусор остается. Подобная картина, если текст, занимающий 2 блока, заменить текстом, для которого достаточно 1-го.

Если по текстовому полю не выполняются группировки и сортировки, то польза от замены на Мемо зависит от длины поля и статистики заполнения.
Поле длиной 255 символов, которое заполняется под завязку лиш в единичных случаях, а чаше данные не превышают 50 - вполне логично заменить на Мемо. То же можно сказать и про поле в 20-50 символов, если количество пустых полей значительно больше заполненных.

В какой-то степени нужно учитывать свойство поля "Unicode Compression".
Латинские символы ужимаются, другие - нет, и занимают 2 байта каждый.
Кстати, как это работает - я не въезжаю.

Я в своих БД перевел все поля для примечаний на Мемо, в результате получил ощутимое уменьшение размера и простор для творчества при заполнении полей.
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32607661
Dmitry-SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, примечание-Memo - хороший тон :)
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32608976
А почему же все-таки у меня прекрасно работает сортировка по Memo полю?
...
Рейтинг: 0 / 0
Чем отличается тип поля Memo от Text (с размером поля)?
    #32609081
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть и минусы:
- криво поддерживается в Union (берёт первые 255 символов);
- список/поле со списком обрезается аналогично;
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Чем отличается тип поля Memo от Text (с размером поля)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]