|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Ускорение обработки ~ 1000000 записей
Задача: ускорить обработку и отображение данных.
Исходные данные: 1. Есть база данных FireBird 2.5, в которой больше 1000000 записей. 2. Для получения и отображения данных используются компоненты TpFIBDataSet [FIBPlus] и TcxExtLookupComboBox [DevExpress]. Сейчас работает так: есть 6 TpFIBDataSet, которые связаны между собой, и 6 TcxExtLookupComboBox, в которых отображаются данные из тех шести датасетов. 3. Каждый раз при выборе записи в одном из датасетов, происходит перевыборка во всех подчиненных. Я хочу этого избежать, то есть уменьшить количество обращений к базе данных. Мое предположительное решение: убрать связь master-detail, и использовать свойство Filtered. Вопрос: Насколько вырастет или упадет производительность отображения данных? И есть ли еще какие решения? |
#2
|
||||
|
||||
Думаю, фильтрация не поможет, по сути она ничем не отличается от master-detail. В последнем случае фильтрация делается автоматически, а в первом - придётся прописывать руками, но принципиальное убыстрение процесса тут вряд ли возможно.
Возможный вариант - отображать (читать из БД) подчинённые записи только по требованию пользователя. |
#3
|
||||
|
||||
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#4
|
|||
|
|||
Цитата:
Почему не отличается от master-detail? Я правильно понимаю, что если выполнить Filtered, то не происходит обращения к базе, а просто перебирается выборка в датасете и все записи, которые не удовлетворяют условию в Filtered отсекаются? |