powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP 9 -- долго закрывает DBF
10 сообщений из 10, страница 1 из 1
VFP 9 -- долго закрывает DBF
    #38505916
erhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Столкнулся с такой фичей в MS Visual FoxPro 9: после сравнения 2-х больших DBF-ок (одна на 200 Мб, вторая тянет на 1,5 Гб) очень долго происходит закрытие этих самых файлов. Открывал в режиме EXCLUSIVE. В конце поставил USE IN (fDbf1) и USE IN (fDbf2) -- программа закрывала их минут 20-25. Как-то это грустно, при том, что сравнение проходит минут за 10...

Можно это побороть и ускорить процесс? (Пока идет сравнение программа "съедает" до 700 Мб оперативки. Поскольку сервер -- не важно, но процесс закрытия и отдачи этой памяти удручает...)

Да, ещё вопрос. При первом открытии DBF приложение выдает системный диалог с предложение указать кодировку файла (у меня используются DOS-ские DBF_ки, созданные Clipper-ом) -- можно как-то в программе задать, что "кодировка такая" и пусть не спрашивает?
...
Рейтинг: 0 / 0
VFP 9 -- долго закрывает DBF
    #38506156
Дед Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кодовую страницу в заголовке файла Клиперовского dbf можно прописать очень простым способом:

nOnFileDbf = FOPEN(FULLPATH("")+"ClipDate.dbf",2)
IF nOnFileDbf > 0
= FSEEK(nOnFileDbf,29) && Перемещаемся к 29 байту в заголовке
= FWRITE(nOnFileDbf,CHR(101)) && Прописываем код 866
= FCLOSE(nOnFileDbf)
ENDIF

Только нужно учесть, что прописывать нужно в файл открытом монопольно, и Клиппер при открытии этой таблице опять исправит на свою нулевую кодовую.
...
Рейтинг: 0 / 0
VFP 9 -- долго закрывает DBF
    #38506189
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
erheЗдравствуйте.

Столкнулся с такой фичей в MS Visual FoxPro 9: после сравнения 2-х больших DBF-ок (одна на 200 Мб, вторая тянет на 1,5 Гб) очень долго происходит закрытие этих самых файлов. Открывал в режиме EXCLUSIVE. В конце поставил USE IN (fDbf1) и USE IN (fDbf2) -- программа закрывала их минут 20-25. Как-то это грустно, при том, что сравнение проходит минут за 10...

Можно это побороть и ускорить процесс? (Пока идет сравнение программа "съедает" до 700 Мб оперативки. Поскольку сервер -- не важно, но процесс закрытия и отдачи этой памяти удручает...)
При сравнении запись в DBF происходит? подозреваю что происходит, эти изменения кэшируются на клиенте, а при закрытии пишутся в файл, поэтому и тормоз. Плюс индексы перестраиваются.

Попробуй в начале поставить
Код: sql
1.
SET AUTOSAVE OFF



По-хорошему такие операции надо запускать на том компе где DBF-ки лежат, тогда быстрее будет.
...
Рейтинг: 0 / 0
VFP 9 -- долго закрывает DBF
    #38507098
erhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дед Евгений, спасибо, попробую.
...
Рейтинг: 0 / 0
VFP 9 -- долго закрывает DBF
    #38507101
erhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TПри сравнении запись в DBF происходит? подозреваю что происходит, эти изменения кэшируются на клиенте, а при закрытии пишутся в файл, поэтому и тормоз. Плюс индексы перестраиваются.

Попробуй в начале поставить
Код: sql
1.
SET AUTOSAVE OFF



По-хорошему такие операции надо запускать на том компе где DBF-ки лежат, тогда быстрее будет.

Запись идет в 3-ю DBF -- результат сверки. Отключить автосохранение попробую. Да, операция идет на самом сервере -- и ехе-шка там лежит и DBF-ки.
...
Рейтинг: 0 / 0
VFP 9 -- долго закрывает DBF
    #38507433
erhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отключение автосохранения не помогло -- закрывает так же долго. А вот с указанием кодировки всё замечательно.

Спасибо за помощь.

ЗЫЖ Грустно, конечно, что закрывает так долго, но время сравнения (10 минут сама работа + 30 на закрытие DBF) -- вполне пойдет.
...
Рейтинг: 0 / 0
VFP 9 -- долго закрывает DBF
    #38507452
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
erheЗЫЖ Грустно, конечно, что закрывает так долго, но время сравнения (10 минут сама работа + 30 на закрытие DBF) -- вполне пойдет.
Ненормально это. 30 минут очень много чтоб файл локально сохранить.

Может с замерами времени что-то не так?
Навставляй записи в лог, как-то так
Код: sql
1.
2.
3.
4.
5.
StrToFile(time() + ' Начало расчета' + chr(13) + chr(10), 'MyLog.log', .T.)
... код расчета
StrToFile(time() + ' Расчет закончен' + chr(13) + chr(10), 'MyLog.log', .T.)
use in MyResult
StrToFile(time() + ' Результат сохранен' + chr(13) + chr(10), 'MyLog.log', .T.)


MyResult замени на свою 3-ю DBF
...
Рейтинг: 0 / 0
VFP 9 -- долго закрывает DBF
    #38508764
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

А перенести эти данные в MS SQL, например никак нельзя? Тебе немногго пописать вьюхи и будет работат разочков в 50 быстрее.
Это если есть возможность, конечно )
...
Рейтинг: 0 / 0
VFP 9 -- долго закрывает DBF
    #38508900
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FAMDima T,

А перенести эти данные в MS SQL, например никак нельзя? Тебе немногго пописать вьюхи и будет работат разочков в 50 быстрее.
Это если есть возможность, конечно )
Во-первых проблема не у меня.
Во-вторых MS SQL не быстрее фокса работающего с монопольно открытыми таблицами, находящимися на этом же компе.
...
Рейтинг: 0 / 0
VFP 9 -- долго закрывает DBF
    #38508934
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема может быть и в самом компе (ОС, ФС).
Фоновые процессы более высокого приоритета (сервер всё же), фрагментация файлов (ведь под них отдельный раздел или диск не выделены?), наконец, банальные проблемы с драйверами дисков...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP 9 -- долго закрывает DBF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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