Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вопрос про Data Environment
|
|||
|---|---|---|---|
|
#18+
Доброе утро! Я столкнулся с такой проблемой: В Data Environment формы у меня открываются в разных областях порядка 20 таблиц разной размерности и связь между ними. Когда у себя локально открываешь форму, то никакой задержки практически нет, но когда по сети, то происходит задержка, которая раздражает пользователя. Я попробовал в Data Environment поставить в свойстве AutoClose Tables=.F. В первом открытии формы была задержка, но после того как я вышел из формы и снова ее загрузил, то открытие произошло быстрее, но существенно проблему это не решило. У меня возникает в связи с этим вопрос, что для открытия таблиц и связей между ними надо написать отдельную процедуру открытия а затем в формах делать только SELECT. КТо-нибудь сталкивался с такой проблемой? Может быть Data Environment надо настроить так чтобы не было задржки? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2004, 09:11 |
|
||
|
Вопрос про Data Environment
|
|||
|---|---|---|---|
|
#18+
Вопрос достаточно обширный. Попробую изложить его вкратце. FoxPro - это файл-серверное приложение. Т.е. любая обработка происходит на клиенте, а не на сервере (можно обойти при помощи DCOM, но это отдельный вопрос). Если физически таблица находится на сервере, то чтобы внести в нее изменения она должна быть скопирована на клиент (целиком или частично), на клиенте вносятся изменения и результат снова сбрасываются на сервер. Разумеется, в FoxPro предусмотрены различные механизмы кэширования и оптимизации данного процесса. Команда USE ничего не копирует с сервера. Она просто создает идентификатор таблицы. Скачивание чего-либо с сервера выполняется по мере необходимости. Более того, на клиенте происходит кэширование того, что уже скачано с сервера (отсюда ускорение повторного открытия) Например, если Вы отображаете содержимое таблицы в Grid, то на клиента качается не вся таблица, а только то, что Вы видите в данный момент в Grid (или что уже посмотрели). Подкачка происходит динамически при листании Grid. Ускорить открытие формы можно, если в ней будут отображаться не сами таблицы-источники, а выборки из них (Local View). Причем ускорение произойдет не всегда, а только если выборки оптимизированы (читай по Rushmore-оптимизацию). Правда и оптимизированная выборка может выполняться медленно. В этом случае на клиента будет скачаны только индексные теги, участвующие в запросе, а не сама таблица-источник. За счет чего и будет выигрыш в скорости. Короче, без изменения идеологии построения программы принципиального ускорения открытия формы ты не получишь :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2004, 10:09 |
|
||
|
Вопрос про Data Environment
|
|||
|---|---|---|---|
|
#18+
Еще один момент. В форме у меня 7 объектов COMBO. Они ведь тоже используют свой источник данных, которые я открываю в Data Environment. И если я передвигаю указатель записи по таблице, то в объектах COMBO динамически меняется их значения. У меня есть инкрементарный поиск в главной таблице, таким образом я могу искать запись по все таблице, а если использовать локальные представления, если я Вас правильно понимаю, то такая возможность ограничивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2004, 10:32 |
|
||
|
Вопрос про Data Environment
|
|||
|---|---|---|---|
|
#18+
Эот все решаемо. Я пытаюсь сказать следующее: Не следует выводить пользователю ВСЕ содержимое таблицы (далее листает Grid или инкрементный поиск). Следует отображать всегда небольшую выборку, которую можно охватить "одним взглядом" (максимум 2...3 листания). Для поиска лучше использовать отдельные формы (вроде стандартного "Найти файл" в Windows) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2004, 10:41 |
|
||
|
Вопрос про Data Environment
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, если я что-то не понял, но я попробовал в самой среде VFP открыть в форме в GRID большую таблицу по сети на сервере. Очень быстро отработало. В программе работает с задержками, так может быть сконфигурировать как-то? Например файл config.fpw ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2004, 11:15 |
|
||
|
Вопрос про Data Environment
|
|||
|---|---|---|---|
|
#18+
Читаем внимательно еще раз Команда USE ничего не копирует с сервера. Она просто создает идентификатор таблицы. Скачивание чего-либо с сервера выполняется по мере необходимости. Более того, на клиенте происходит кэширование того, что уже скачано с сервера (отсюда ускорение повторного открытия) Например, если Вы отображаете содержимое таблицы в Grid, то на клиента качается не вся таблица, а только то, что Вы видите в данный момент в Grid (или что уже посмотрели). Подкачка происходит динамически при листании Grid. Т.е. Grid и будет быстро открываться (качается только видимая часть таблицы), но получишь притормаживание при листании. Прежде чем открыть новую страницу бедет происходит динамическая подкачка содержимого этой страницы. Это если на таблицу еще фильтра не наложено. Тогда тормоза при листании будут просто ужасные. А тормоза при открытии формы связаны с тем, что требуется выполнить некие предварительные дейстивия по исходным таблицам (поиск записей, позиционирование указателей записи и т.п.). Какие именно действия - это уже зависит от настроек объектов формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2004, 12:48 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32439296&tid=1597024]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 370ms |

| 0 / 0 |
