|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.02.2014, 14:40 | #1 |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
"Ускорить" вывод данных из БД, потоки?
Всем Привет!
Суть задачи: есть файл MS Access, по запросу, их будет около 3-4х десятков, будут заполняться РАЗНЫЕ сетки Grid, запросы через ADO компоненты. Так вот, имеет смысл распихать запросы в потоки, тем самым плодить к-во компонентов ADO и "умеет" ли Access работать с много поточностью или идти другим путем: выстроить все запросы, а уже в потоках распихивать данные по сеткам т.к. я "понимаю" запрос все равно выполнится быстрее чем заполнится сетка в 1000 строк с 99-ю полями где паралельно будет выставляться ширина, высота строк, "ручная" заливка ячеек, разные шрифты, цвет шрифта для каждой ячейки и т.д. Подскажите
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
25.02.2014, 15:08 | #2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
первый вопрос а зачем пользователю сразу столько тяжелых (что требуется N>10 запрос каждый из которых работает более 1 секунды).
иначе он может и подождать эти 10 секунд.
программа — запись алгоритма на языке понятном транслятору
|
25.02.2014, 16:18 | #3 | |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
Цитата:
Я думаю что Вы согласитесь что проводить анализ для 2-х (22-х) команд в отдельной сетке гораздо проще нежели когда все в куче... О целесообразности, еффективности, оптимизации и систематизации данных вопрос совсем с другой оперы, нужно именно то и именно так как на скрин-шоте. Я понимаю что можно открывать сетку по очереди одну за другой, но на заполнение одной сетки (заливке, подгон размеров и т.д.) на моем ПК уходит около 6-8 секунд, отсюда и встал вопрос разнести в потоки...
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
|
25.02.2014, 16:40 | #4 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,872
|
Цитата:
|
|
25.02.2014, 16:43 | #5 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
в общем случае VCL (то бишь та самая сетка) однопоточен. смотри про synchronize.
так что надо смотреть код подгонки. иногда можно сэкономить время если подгонку ограничить отображаемой частью (перенести код подгонки в OnPaint!). И не заниматься тем что не нужно, т.е рассчитывать только те данные которые мы в состоянии отобразить (а это уж точно не 1000 строк и не 100 колонок) (именно так часто и поступает Windows). Или наоборот "озадачить" этим (цвета/заливки) БД. Ввести доп. поле, возможно вычислимое(!) на сервере (будут вычисляться все строки)/на клиенте (вычисления при необходимости(читай отрисовке). ИМХО: вычислимое поле(я) на клиенте для определения характеристик отображения зависящих только от текущей записи. Более определенное мнение только при коде (или описании алгоритма) расчетов (той самой подгонки).
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 25.02.2014 в 16:49. |
25.02.2014, 17:29 | #6 | |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
Цитата:
Есть две сетки TMS (AdvStringGrid) со значениями. В самой сетке есть возможность, свойство (не в событии onDrawCell) явно указать цвет заливки конкретной ячейки. Нужно, в зависимости от значения ячейки, сделать заливку (если значение 1 залить зеленым, 2 - красным). Вопрос: Можно заполнять, заливать отдельную сетку в отдельном потоке? и будет ли прирост по производительности?
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
|
25.02.2014, 17:47 | #7 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
25.02.2014, 17:54 | #8 |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
Вытащить да, мне нужно залить разные сетки, здесь львиная доля времени уходит... Вопрос именно в распаралировании процесса заливки... если впихнуть в потоки прирост производительности будет?
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
25.02.2014, 18:48 | #9 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
не впихнете
|
25.02.2014, 19:02 | #10 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
прироста не будет, но геморроя добавит...
что за база и как оно может 6-8 секунд инфу в ней искать? индексы, связи? да и в базе ли тормоза?
Не стесняемся, плюсуем!
Последний раз редактировалось Slym; 25.02.2014 в 20:09. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа функциями "ЕСЛИ", "И" и вывод текстового результата | johny_03 | Microsoft Office Excel | 3 | 04.08.2014 11:01 |
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" | Alexsandrr | Microsoft Office Excel | 4 | 19.10.2013 14:22 |
Как "повесить " передачу данных из формы на событие нажатия кнопки типа "button" ? | vedro-compota | JavaScript, Ajax | 10 | 14.12.2010 21:05 |
вывод данных из формы в формате "dd.mm.yy" | serikov | Microsoft Office Excel | 3 | 07.07.2010 08:59 |
настроить при открытии Excel 2003 в окошке "Тип файлов" вывод пункта "Все файлы (*.*)" по умолчанию? | Unior | Microsoft Office Excel | 2 | 01.03.2009 02:42 |