powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Медленный Grid на большой таблице под фильтром
7 сообщений из 7, страница 1 из 1
Медленный Grid на большой таблице под фильтром
    #37559967
Игорь_М
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
При переводе приложения с Foxpro2.6 DOS под VFP выяснилось, что Grid работает очень медленно
и сильно грузит процессор при листании таблицы с большим числом записей (1-2 млн) и с установленным фильтром.
Хотя в том-же VFP да и в Foxpro2.6 DOS на этой-же таблице под тем-же фильтром все нормально.
Можно как-то оптимизировать работу Grid ?
Индекс на поле фильтра имеется, удаленные записи не причем.
...
Рейтинг: 0 / 0
Медленный Grid на большой таблице под фильтром
    #37560426
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_МЗдравствуйте.
При переводе приложения с Foxpro2.6 DOS под VFP выяснилось, что Grid работает очень медленно
и сильно грузит процессор при листании таблицы с большим числом записей (1-2 млн) и с установленным фильтром.
Хотя в том-же VFP да и в Foxpro2.6 DOS на этой-же таблице под тем-же фильтром все нормально.
Можно как-то оптимизировать работу Grid ?
Индекс на поле фильтра имеется, удаленные записи не причем.

Оптимизируйте приложение. Накой в грид выводить 1-2 млн. записей, да еще и с фильтром. Существуют запросы SQL и Cursor Adapter. Коль уж переводите приложение под VFP, так и используйте соответствующие возможности.
...
Рейтинг: 0 / 0
Медленный Grid на большой таблице под фильтром
    #37560466
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_МИндекс на поле фильтра имеется, удаленные записи не причем.
Возможно индекс не используется, например, если индекс создан при SET COLLATE "MACHINE" а текущая SET COLLATE "RUSSIAN"

Поизучай SET KEY TO ...

Количество записей на скорость работы самого грида никак не влияет, тормозит считывание из файла.
...
Рейтинг: 0 / 0
Медленный Grid на большой таблице под фильтром
    #37560469
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
set filter - это одна из командочек, которую нужно стараться не использовать

сам считаю - для лентяев,
и использовал и (ую, уже совсем изредка), когда лениво кодить.
...
Рейтинг: 0 / 0
Медленный Grid на большой таблице под фильтром
    #37560568
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если речь идет о VFP9, то установи настройку

Код: plaintext
1.
Grid.Optimize = .T.



Эта настройка включает Rushmore-оптимизацию для SET FILTER внутри Grid

Хотя, разумеется, согласен с остальными, что SET FILTER - это "затычка". Нечто, сделанной "по быстрому", только чтобы пользователи отстали. При дальнейшем развитии приложения от нее все-равно придется отказаться. Слишком она сложна в сопровождении и недостаточно гибкая.
...
Рейтинг: 0 / 0
Медленный Grid на большой таблице под фильтром
    #37561006
Игорь_М
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМЕсли речь идет о VFP9, то установи настройку

Код: plaintext
1.
Grid.Optimize = .T.



Спасибо огромное! Я уж думал на @ get и Browse делать :)

P.S. Новое приложение я наверное сразу под SQL стал-бы делать, или среду разработки выбрал бы другую.
А переводить старое, 15 лет писавшееся - тяжеловато. Да и заказчик хочет, чтобы новое было похоже на старое, и побыстрее.
...
Рейтинг: 0 / 0
Медленный Grid на большой таблице под фильтром
    #37561041
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_М Да и заказчик хочет...

в колодец бултых..., если попросит?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Медленный Grid на большой таблице под фильтром
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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