![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замедление DataSet.next [D7, MySQL]
wsv © (2007-07-13 10:28:00)Здравствуйте.
Столкнулся с проблемой при больших DataSet-ах с доступом к MySql с помщью компонентов Zeos.
В DataSet (точнее ZQuery, который наследник DataSet), выбирается большое количество данных, 50 тысяч строк и более.
При считывании результата запроса циклом while...do begin ... Dataset.next... происходит замеделение считывания, которое визуально отловлено простым прогрессором.
КАК ИЗБАВИТЬСЯ?
Может можно как-то другими способами скопировать результат в массив?
В частном случае копируются данные типа duoble в масив соотв. типа... В общем случае это вариантные данные.
wsv (2007-07-13 11:01:00) [61]
> Зачем иметь сразу столько данных на клиенте?
> зачем тебе 50 000 записей на клиенте?????
Это навигационные данные, которые поступают каждые 15-30 секунд.
Нужен отчет за период.
Границы периода неизвестны. Данные нужно обработать сначала.
Desdechado (2007-07-13 10:59:00) [62]Данные читаются и накапливаются. Вот и замедление. Используй однонаправленный датасет, если уж припекло читать столько много.
sniknik (2007-07-13 10:49:00) [63]> while...do begin ... Dataset.next... происходит замеделение считывания, которое визуально отловлено простым прогрессором.
имхо, все дело в волшебных пузырьках... т.е. точках, next не причем.
хотя, не зная особенностей Zeos, могу и ошибаться.
> КАК ИЗБАВИТЬСЯ?
исправить ошибку. сначала, а после задуматься "а нафига тебе столько данных на клиенте?" (если не исправить то притормаживание просто "смажется" малым количеством... останется но не будет так заметно)
Ega23 (2007-07-13 10:34:00) [64]зачем тебе 50 000 записей на клиенте?????
Johnmen (2007-07-13 10:34:00) [65]
> выбирается большое количество данных, 50 тысяч строк и более.
Зачем иметь сразу столько данных на клиенте?