Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Медленный Grid на большой таблице под фильтром  [new]
Игорь_М
Member

Откуда: Тверь
Сообщений: 110
Здравствуйте.
При переводе приложения с Foxpro2.6 DOS под VFP выяснилось, что Grid работает очень медленно
и сильно грузит процессор при листании таблицы с большим числом записей (1-2 млн) и с установленным фильтром.
Хотя в том-же VFP да и в Foxpro2.6 DOS на этой-же таблице под тем-же фильтром все нормально.
Можно как-то оптимизировать работу Grid ?
Индекс на поле фильтра имеется, удаленные записи не причем.
5 дек 11, 20:46    [11709895]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Grid на большой таблице под фильтром  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
Игорь_М
Здравствуйте.
При переводе приложения с Foxpro2.6 DOS под VFP выяснилось, что Grid работает очень медленно
и сильно грузит процессор при листании таблицы с большим числом записей (1-2 млн) и с установленным фильтром.
Хотя в том-же VFP да и в Foxpro2.6 DOS на этой-же таблице под тем-же фильтром все нормально.
Можно как-то оптимизировать работу Grid ?
Индекс на поле фильтра имеется, удаленные записи не причем.


Оптимизируйте приложение. Накой в грид выводить 1-2 млн. записей, да еще и с фильтром. Существуют запросы SQL и Cursor Adapter. Коль уж переводите приложение под VFP, так и используйте соответствующие возможности.
6 дек 11, 09:51    [11711159]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Grid на большой таблице под фильтром  [new]
Dima T
Member

Откуда:
Сообщений: 15291
Игорь_М
Индекс на поле фильтра имеется, удаленные записи не причем.

Возможно индекс не используется, например, если индекс создан при SET COLLATE "MACHINE" а текущая SET COLLATE "RUSSIAN"

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

Количество записей на скорость работы самого грида никак не влияет, тормозит считывание из файла.
6 дек 11, 10:21    [11711304]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Grid на большой таблице под фильтром  [new]
прошелмимо
Member [заблокирован]

Откуда: Из Курска понаехал
Сообщений: 10363
set filter - это одна из командочек, которую нужно стараться не использовать

сам считаю - для лентяев,
и использовал и (ую, уже совсем изредка), когда лениво кодить.
6 дек 11, 10:22    [11711311]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Grid на большой таблице под фильтром  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Если речь идет о VFP9, то установи настройку

Grid.Optimize = .T.


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

Хотя, разумеется, согласен с остальными, что SET FILTER - это "затычка". Нечто, сделанной "по быстрому", только чтобы пользователи отстали. При дальнейшем развитии приложения от нее все-равно придется отказаться. Слишком она сложна в сопровождении и недостаточно гибкая.
6 дек 11, 11:14    [11711709]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Grid на большой таблице под фильтром  [new]
Игорь_М
Member

Откуда: Тверь
Сообщений: 110
ВладимирМ
Если речь идет о VFP9, то установи настройку

Grid.Optimize = .T.


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

P.S. Новое приложение я наверное сразу под SQL стал-бы делать, или среду разработки выбрал бы другую.
А переводить старое, 15 лет писавшееся - тяжеловато. Да и заказчик хочет, чтобы новое было похоже на старое, и побыстрее.
6 дек 11, 14:23    [11713348]     Ответить | Цитировать Сообщить модератору
 Re: Медленный Grid на большой таблице под фильтром  [new]
прошелмимо
Member [заблокирован]

Откуда: Из Курска понаехал
Сообщений: 10363
Игорь_М
Да и заказчик хочет...


в колодец бултых..., если попросит?
6 дек 11, 14:39    [11713512]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить