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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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