Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Большая таблица -> ADO -> Grid, долго обрабатывется 
:(
    Опции темы
RST8
Дата 18.2.2007, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: нет
Всего: 1



Имеем большую таблицу Microsoft Access, гдето на 50 000 записей. Подключаемся через ADO. Связываем это все со стандартным дбгридом и запускаем программу. Грид заполняется данными несколько минут. 

Вопрос: как это ускорить?
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
Savek
Дата 19.2.2007, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



Не грузить сразу все 50 000 записей (не использовать TTable)! Пользователю они не понадобятся (все и сразу). Используй запрос c условием отбора для отображения части записей.

PM MAIL   Вверх
RST8
Дата 11.3.2007, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: нет
Всего: 1



Наконец дошел ход до этой части программы. Так вот как бы сделать что бы навигация по полученной сетке выполнялась нормально. Т.е. как реализовать динамическую подгрузку данных? Кто как из такой ситуации выкручивался?
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
Savek
Дата 12.3.2007, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



Либо делать выборку по условию и подгружать только нужные записи в данный момент, либо использовать ClientDataSet, с параметром PacketRecords=видимое кол-во записей

Можно комбинировать оба способа

Это сообщение отредактировал(а) Savek - 12.3.2007, 09:38
PM MAIL   Вверх
kobra
Дата 12.3.2007, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



в TADOQuery есть ExecuteOptions
PM MAIL   Вверх
RST8
Дата 12.3.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: нет
Всего: 1



Цитата(Savek @  12.3.2007,  09:35 Найти цитируемый пост)
PacketRecords

Где это искать?. Так нашел, но похоже с ADO это не работает.



Цитата(kobra @  12.3.2007,  10:27 Найти цитируемый пост)
ExecuteOptions

Непомогает.


Это сообщение отредактировал(а) RST8 - 12.3.2007, 22:54
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
kobra
Дата 13.3.2007, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



Цитата(RST8 @  12.3.2007,  22:53 Найти цитируемый пост)
Непомогает.
если вклучить eoAsyncFetch, то у юзера создоется впечетление что данние загрузилис, грид заполнен

PM MAIL   Вверх
ama_kid
Дата 13.3.2007, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: нет
Всего: 95



Цитата
Вопрос: как это ускорить?

Отказаться от тяжеловесного и не слишком умного грида... В итоге получится так (см. прикрепленный проект)

Это сообщение отредактировал(а) ama_kid - 13.3.2007, 13:11

Присоединённый файл ( Кол-во скачиваний: 18 )
Присоединённый файл  MyTestDB.rar 99,63 Kb


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
RST8
Дата 13.3.2007, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: нет
Всего: 1



Спасибо за внимание к моему вопросу 

Цитата(kobra @  13.3.2007,  08:54 Найти цитируемый пост)
если вклучить eoAsyncFetch, то у юзера создоется впечетление что данние загрузилис, грид заполнен


Может конечно я что то не так делаю, но нормального результата получить немогу. У самого грида который я пробую есть параметр буфиризировать данные. Так вот пока он их все не получет он их не отображает и программ типа висит. Если же эту опцию отключить, то независимо от eoAsyncFetch от отображает их сразу, но при попытке навигации по нему жутко тормозит все время. 

Цитата(ama_kid @  13.3.2007,  12:55 Найти цитируемый пост)
В итоге получится так (см. прикрепленный проект)

У меня создалось впечатление что это не тот проект ... 

Так что пока не нашел ничего лучше вывода окошка со словом "подождите немного"  smile 

Это сообщение отредактировал(а) RST8 - 13.3.2007, 20:53
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
SergeBS
Дата 14.3.2007, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



RST8, 
Размер записи?
Работа локально или по сети? Если по сети - ее скорость?
При загрузке в гриде данные мельтешат?
PM MAIL   Вверх
RST8
Дата 14.3.2007, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: нет
Всего: 1



Цитата(SergeBS @  14.3.2007,  11:28 Найти цитируемый пост)

Размер записи?

20 полей половина числовые половина текстовый на 100 знаков

Цитата

Работа локально или по сети? 
Если по сети - ее скорость?

локально

Цитата

При загрузке в гриде данные мельтешат?


нет, их грид предварительно кэширует, если это отключить то все равно не мельтешат, появляются сразу. Но навигация все время тормозит жутко.

--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
SergeBS
Дата 15.3.2007, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



RST8, 
Цитата
Имеем большую таблицу Microsoft Access, гдето на 50 000 записей. 

Цитата
20 полей половина числовые половина текстовый на 100 знаков

Т.е. где-то 60-80 Мб. Ну и что ты хочешь? В Word-е попробуй похожее по размерам открыть - тоже тормозить будет. Урезай до приемлемых размеров. Все равно человек столько сразу и не увидит и не поймет. Да и на экран даже 1 запись не уместится.

PM MAIL   Вверх
RST8
Дата 15.3.2007, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: нет
Всего: 1



Цитата(SergeBS @  15.3.2007,  08:28 Найти цитируемый пост)
Т.е. где-то 60-80 Мб. Ну и что ты хочешь? В Word-е попробуй похожее по размерам открыть - тоже тормозить будет. Урезай до приемлемых размеров. Все равно человек столько сразу и не увидит и не поймет. Да и на экран даже 1 запись не уместится.


Это всего 14 Мб. Что я хочу? Хм... Наверное чтобы ее начало сразу появилось на экране а остаток догружался фоново. По крайней мере сам Access открывает ее мгновенно. 
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0673 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.