Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Насчет целесообразности применения memo-полей…
|
|||
|---|---|---|---|
|
#18+
В принципе, логика мне кажется очевидной – при разработке структуры БД, в виде memo-полей целесообразно «оформлять» те реквизиты, по которым не предполагается вести индексированный поиск и которые, к тому же, являются достаточно длинными строками нерегулярной (от записи к записи) длины. Это, по-моему, уменьшает объем собственно dbf-ника, в котором и производится индексный поиск, следовательно – скорость поиска должна возрасти за счет уменьшения «переЛопачиваемого» материала. К примеру, в БД предприятий (состоящей из свободных таблиц; речь веду только об одной из них - главной) – код каждой фирмы и ее краткое наименование размещены в отдельных N- и C-полях соответственно, а описательная часть (регистрационные данные, примечания о текущем состоянии фирмы, ее ликвидации и т.п.) – содержится в memo-поле в виде произвольного текста, по которому никогда не будет необходимости вести поиск. Но вот недавно обнаружил, что все, а особенно - ПЕРВЫЙ (в текущем сеансе работы с этой БД) поиск происходит медленней, чем в предыдущем варианте структуры БД, когда некоторые из тех реквизитов, которые я теперь «загнал» в описательное memo-поле, содержались в виде отдельных CHARACTER-полей. Странно, ведь объем dbf-ника тогда был почти в 3 раза больше! Правда, преобразование структуры БД – не единственное изменение, которое я произвел. Были изменены также и запросы, и уменьшено количество «дочерних» таблиц, и еще кое-чего. Вот теперь прикидываю – чем вызвано замедление поиска: либо неоптимальной разработкой новых вариантов запросов; либо я не совсем прав относительно положительно влияния (на поиск) переноса части описательных данных в memo-поля. Конечно, в понедельник приду на работу и поэкспериментирую с различными вариантами запросов. А пока – хотелось бы знать, правильно ли я мыслю насчет целесообразности применения memo-полей (см. 1-й абзац) ? Поделитесь своими мнениями, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2005, 15:11 |
|
||
|
Насчет целесообразности применения memo-полей…
|
|||
|---|---|---|---|
|
#18+
Поиск по индексу производится не в DBF, а собственно в индексном файле (CDX или IDX). ПОСЛЕ того, как ссылка на запись найдена в индексе эта запись "вытягивается" из таблицы. В момент открытия таблицы (командой USE) физически таблица на клиента не скачивается. Скачивается только несклько байт заголовка. А вот выполнение поиска приводит к необходимости закачать нужные данные клиенту. Это относительно медленная операция. Все последующие операции поиска работают с уже закачанными данными, что ускоряет работу. Вообще-то, если есть желание разобраться что и как происходит физически, то поставь себе утилиту FileMon.exe и смотри что и как скачивается с диска. Скачать ее можно здесь http://www.sysinternals.com/ntw2k/source/filemon.shtml Насчет memo-полей почитай вложенный файл. Использовать их имеет смысл, если уже есть memo-поля или если длина значения может превышать 254 символа. Если поле часто модифицируется и его длина не может превышать 254 символа, то стоит использовать поля Character. Из-за особенностей модификации memo-полей при частой их модификации размер файла FPT очень быстро "разбухает" и требует проведения "очистки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2005, 15:30 |
|
||
|
Насчет целесообразности применения memo-полей…
|
|||
|---|---|---|---|
|
#18+
To ВладимирМ: Большое спасибо Вам за подробный ответ и ссылки. Кое-что действительно оказалось несколько сложней, чем я думал. Каюсь, я не все описал в моем вопросе: речь идет только о локальной БД (read only) на одном отдельном компьютере. И кроме того, у меня по умолчанию установлено SET BLOCKSIZE to 0. Сейчас ознакомлюсь с материалом из 2-й ссылки и попытаюсь "восстановить справедливость". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2005, 08:45 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=336&tid=1594809]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
15ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
21ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 258ms |

| 0 / 0 |
