|
|
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Доброго дня, уважаемые гуру! Давно стоит проблема, но всё откладывалась на потом. И вот этот "потом" настал. Есть среда Embarcadero XE5, есть Oracle версии 11.2.0.4.0. Доступ к базе построен на компонентах DOA. Есть установленный набор компонент от DevExpress 14.1.3. Имеется форма с одним cxGrid, в котором нужно открыть DataSet с количеством записей от 1.5 до 3 миллионов. Сразу предупреждаю, я читал уже похожие вопросы и отдаю себе отчет, что конечному пользователю нужен весь набор данных. Фильтрация, выгрузка в Excel и т.п. Суть в том, что в ServerMode режиме полуторамиллионник открывается около 7 минут. Просто, без сумматоров в футере. Это непозволительно долго. На обычном встроенном DBGrid открываются влет первые N записей (при установке ReadBuffer = N и QueryAllRecords = False) за секунду с возможностью подкачки (до определенного предела). А теперь вопрос: Можно ли настроить cxGrid, чтобы он открывал сразу набор, а только потом высасывал по необходимости данные. Стоит задача открывать данные быстро. Заранее благодарю за конструктив ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:06:44 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийДоброго дня, уважаемые гуру! Давно стоит проблема, но всё откладывалась на потом. И вот этот "потом" настал. Есть среда Embarcadero XE5, есть Oracle версии 11.2.0.4.0. Доступ к базе построен на компонентах DOA. Есть установленный набор компонент от DevExpress 14.1.3. Имеется форма с одним cxGrid, в котором нужно открыть DataSet с количеством записей от 1.5 до 3 миллионов. Сразу предупреждаю, я читал уже похожие вопросы и отдаю себе отчет, что конечному пользователю нужен весь набор данных. Фильтрация, выгрузка в Excel и т.п. Суть в том, что в ServerMode режиме полуторамиллионник открывается около 7 минут. Просто, без сумматоров в футере. Это непозволительно долго. На обычном встроенном DBGrid открываются влет первые N записей (при установке ReadBuffer = N и QueryAllRecords = False) за секунду с возможностью подкачки (до определенного предела). А теперь вопрос: Можно ли настроить cxGrid, чтобы он открывал сразу набор, а только потом высасывал по необходимости данные. Стоит задача открывать данные быстро. Заранее благодарю за конструктив SmartReload/SmartRefresh ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:07:44 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
юра, а зачем тебе СТОЛЬКО данных? (я серьёзно) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:11:27 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийюра, а зачем тебе СТОЛЬКО данных? (я серьёзно) +1. 2ТС: попытайся структурировать данные и показать их (например) в виде дерева. Список строений, к примеру, отлично раскладывается по улицам, улицы - по городам и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:32:48 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
ServerMode требует специальной поддержки от датасет-компонента (посмотрел сейчас доки, в 14 версии нет поддержки doa (delphi oracle access). Возможно, необходим фетчинг данных -- когда курсор с данными остается открытым на сервере, а программа грузит их по мере надобности движения по списку. Для последнего нужно включить GridMode. И при его включении итоги в колонках перестанут работать. В общем, можно просто в справке сделать поиск по "servermode" и "gridmode", там есть подробные инструкции по настройке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:35:31 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
чччДМимопроходящийюра, а зачем тебе СТОЛЬКО данных? (я серьёзно) +1. 2ТС: попытайся структурировать данные и показать их (например) в виде дерева. Список строений, к примеру, отлично раскладывается по улицам, улицы - по городам и т.д. у него случай выгрузки данных в Excel для дальнейшего анализа. Не вижу криминала в выгрузке полутора лямов строк на клиента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:39:25 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
JaDiServerMode требует специальной поддержки от датасет-компонента (посмотрел сейчас доки, в 14 версии нет поддержки doa (delphi oracle access). Возможно, необходим фетчинг данных -- когда курсор с данными остается открытым на сервере, а программа грузит их по мере надобности движения по списку. Для последнего нужно включить GridMode. И при его включении итоги в колонках перестанут работать. В общем, можно просто в справке сделать поиск по "servermode" и "gridmode", там есть подробные инструкции по настройке. Какие уж тут итоги (да и фильтры на клиенте), если тащит такие объемы данных. ... 2 ТА: имхо, проще всего запитать грид от TcxCustomDataSet. Тут уж что напишешь - все твое. Можно, например, подгружать реальные данные только тогда, когда грид их запросит. Но тут тоже самое - все подсчеты "на лету" и фильтрацию средствами грида придется ручками обрабатывать - например, формируя запросы к серверу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:40:45 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
06.12.2017 14:39, defecator пишет: > у него случай выгрузки данных в Excel для дальнейшего анализа. > Не вижу криминала в выгрузке полутора лямов строк на клиента ну а "за щекой" то их зачем держать? если это конечно не сила привычки... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:41:01 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
defecatorчччДпропущено... +1. 2ТС: попытайся структурировать данные и показать их (например) в виде дерева. Список строений, к примеру, отлично раскладывается по улицам, улицы - по городам и т.д. у него случай выгрузки данных в Excel для дальнейшего анализа. Не вижу криминала в выгрузке полутора лямов строк на клиента Для выгрузки в иксель зачем все сразу тащить? ... И что там у него за строки еще - пара килобайт на строку - вот и съели всю оперативку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:43:49 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
чччДdefecatorпропущено... у него случай выгрузки данных в Excel для дальнейшего анализа. Не вижу криминала в выгрузке полутора лямов строк на клиента Для выгрузки в иксель зачем все сразу тащить? ... И что там у него за строки еще - пара килобайт на строку - вот и съели всю оперативку. в DOA, в отличие от ODAC, с оперативкой всё плохо - очень прожорливый этот DOA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:45:25 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийюра, а зачем тебе СТОЛЬКО данных? (я серьёзно) Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:47:29 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийМимопроходящийюра, а зачем тебе СТОЛЬКО данных? (я серьёзно) Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались)) Чтото я сомневаюсь, что они будут листать весь миллион записей... Может пользователи не поняли про предформу и им нужно внятнее объяснить, на простом для них языке :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:53:12 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
06.12.2017 14:47, Леонов Юрий пишет: > > Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. весь набор хранится НА СЕРВЕРЕ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:53:22 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийМимопроходящийюра, а зачем тебе СТОЛЬКО данных? (я серьёзно) Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались)) Ну, пусть ждут. Я как-то в одной конторке изменил базовый принцип работы со списками. Сперва открываешь грид - а там пусто. Пока не укажешь фильтр. Если указал "хочу весь интернет все" - ну и жди, сам захотел. На вопрос "...э?" ответил - "вы в интернете все сразу видите, или что попросите?" Конечно, сперва с директором согласовал. Так и работают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:56:18 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Excel столько строк не вытянет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:57:49 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
DimaBr Excel столько строк не вытянет на одной странице - миллион а страниц может быть 65 тыщ вытянет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 14:58:42 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
06.12.2017 14:57, DimaBr пишет: > Excel столько строк не вытянет они ж вродь уже и х64 сподобились выпустить Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:00:41 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
JaDiServerMode требует специальной поддержки от датасет-компонента (посмотрел сейчас доки, в 14 версии нет поддержки doa (delphi oracle access). есть самописный компонент, потомок TdxServerModeDataSource. Сделан по аналогии с TdxServerModeADODataSource. Разница только в подключении к БД. JaDiВозможно, необходим фетчинг данных -- когда курсор с данными остается открытым на сервере, а программа грузит их по мере надобности движения по списку. Для последнего нужно включить GridMode. И при его включении итоги в колонках перестанут работать. В общем, можно просто в справке сделать поиск по "servermode" и "gridmode", там есть подробные инструкции по настройке. Это для обычного грида? Кроме итогов не работает и фильтрация с сортировкой. Хотя в целом вариант очень даже жизнеспособный. Причесать код придется сильно, но эффект выходит хороший. Спасибо огромное)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:14:56 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
DimaBr, XLSX нормально тянет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:16:35 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
06.12.2017 15:16, Леонов Юрий пишет: > XLSX нормально тянет ой как всё запущено.... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:18:02 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
шК0ДЕР Чтото я сомневаюсь, что они будут листать весь миллион записей... Может пользователи не поняли про предформу и им нужно внятнее объяснить, на простом для них языке :) Что можно объяснить людям, которые на просьбу скинуть скрин формы ФОТОГРАФИРУЮТ ее на телефон а потом выкладывают в скайп? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:19:08 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
DimaBr Excel столько строк не вытянет Ты сам-то свою ссылку открывал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:20:30 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийМимопроходящийюра, а зачем тебе СТОЛЬКО данных? (я серьёзно) Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались)) Юрий, объясни своим специфическим людям, что если некто начнет просматривать по одной записи в секунду, то для просмотра всего набора из миллиона записей человеку понадобится 12 дней непрерывного времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:33:38 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
КвейдЛеонов Юрийпропущено... Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались)) Юрий, объясни своим специфическим людям, что если некто начнет просматривать по одной записи в секунду, то для просмотра всего набора из миллиона записей человеку понадобится 12 дней непрерывного времени. а им не надо просматривать ВСЕ записи. Они в Excel строят аналитику, а для этого нужны все возможные записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:34:59 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
рррЗDimaBr Excel столько строк не вытянет Ты сам-то свою ссылку открывал? ТС надо полтора миллиона записей. А на листе только миллион Другое дело, что листов может быть 65 тыщ ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:35:57 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
06.12.2017 15:33, Квейд пишет: > Юрий, объясни своим специфическим людям, что если некто начнет просматривать по одной записи в секунду, > то для просмотра *всего набора* из миллиона записей человеку понадобится 12 дней непрерывного времени. имхо, проблема тут не только в заказчике. проблема ещё и в том, что Юра не видит иных путей для достижения цели, окромя как использовать встроенные в этот аляповатый грид средства фильтрации, сортировки, агрегации... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:36:39 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
06.12.2017 15:34, defecator пишет: > Они в Excel строят аналитику пивной ларёк Ltd Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:37:37 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
К слову, эксель может и сам напрямую к источникам данных подключаться, в т.ч. к базам данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:40:33 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
06.12.2017 15:40, JaDi пишет: > К слову, эксель может и сам напрямую к источникам данных подключаться, в т.ч. к базам данных. сам напрямую не может. только через ODBC/OLEDB Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:41:52 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, Про это и говорю. Например, автор может попробовать подготовить настроенный эксель с путями для подключения и отдавать эти файлы пользователям, раз им именно эксель нужен. В крайнем случае можно рядом выгрузить данные к csv или т.п. и так же через эксель подключиться к файлу. Это если там именно эксель нужен кому-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:47:01 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийМожно ли настроить cxGrid, чтобы он открывал сразу набор, а только потом высасывал по необходимости данные. Стоит задача открывать данные быстро. Он и так это делает по умолчанию. Грид здесь не причём, он рисует ровно столько данных, сколько помещается на экране. Сделай отвязанный от визуальных компонентов Dataset.Open и сиди секундомером. Это и есть то, что ты называешь "открывать данные". Леонов ЮрийФильтрация, выгрузка в Excel и т.п. Определись, что именно - отображать или выгрузить ? Если предполагается фильтрация, то её точно надо делать на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:49:29 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
defecatorКвейдпропущено... Юрий, объясни своим специфическим людям, что если некто начнет просматривать по одной записи в секунду, то для просмотра всего набора из миллиона записей человеку понадобится 12 дней непрерывного времени. а им не надо просматривать ВСЕ записи. Они в Excel строят аналитику, а для этого нужны все возможные записиТС пишет, что ему нужны эти записи в Grid, а не в Excel. Или я что-то недопонял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 15:55:43 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Квейдdefecatorпропущено... а им не надо просматривать ВСЕ записи. Они в Excel строят аналитику, а для этого нужны все возможные записиТС пишет, что ему нужны эти записи в Grid, а не в Excel. Или я что-то недопонял? Возможно, спорить не буду. Но слова "выгрузка в Excel" там присутствуют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 16:00:19 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Квейдdefecatorпропущено... а им не надо просматривать ВСЕ записи. Они в Excel строят аналитику, а для этого нужны все возможные записиТС пишет, что ему нужны эти записи в Grid, а не в Excel. Или я что-то недопонял? Можно конечно сделать фоновую выгрузку в Excel (благо уже есть механизм и скорее всего им и воспользуюсь). Вопрос ставился относительно отображения данных в TcxGridServerModeTableView, потому и выгрузка планировалась встроенным механизмом грида ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 16:13:58 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
В дополнение к предыдущему посту. Сортировать и фильтровать он хотят по набору данных в гриде, потому о фильтрации и сортировке в самом запросе речь не стоит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 16:15:59 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийВ дополнение к предыдущему посту. Сортировать и фильтровать он хотят по набору данных в гриде, потому о фильтрации и сортировке в самом запросе речь не стоит Да всё уже, не получится ничего. Если 2 страницы тебя отговаривают - никто тебе уже ничего не посоветует. Народная примета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 16:26:26 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
голосую: убить (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 16:33:09 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
вввУЛеонов ЮрийВ дополнение к предыдущему посту. Сортировать и фильтровать он хотят по набору данных в гриде, потому о фильтрации и сортировке в самом запросе речь не стоит Да всё уже, не получится ничего. Если 2 страницы тебя отговаривают - никто тебе уже ничего не посоветует. Народная примета.Я могу посоветовать: сортировать и фильтровать запросами на сервере. Юзеры не обязаны понимать и, вполне вероятно, не понимают технических сторон вопроса, нужно (или можно) им сказать, что вот так для них будет хорошо. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 16:48:29 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
s62вввУпропущено... Да всё уже, не получится ничего. Если 2 страницы тебя отговаривают - никто тебе уже ничего не посоветует. Народная примета.Я могу посоветовать: сортировать и фильтровать запросами на сервере. Юзеры не обязаны понимать и, вполне вероятно, не понимают технических сторон вопроса, нужно (или можно) им сказать, что вот так для них будет хорошо. )) У тебя уже все признаки профдеформации - тебе пора либо в РосКосмос на работу, либо в больницу лечиться, либо на покой роботов собирать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 16:56:32 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
вввК, пользователь вообще не знает, сортирует он данные на сервере или на клиенте. Он видит перед собой окно программы, фильтры и таблицу (грид). Ему нужно, чтобы можно было сортировать и фильтровать. А как оно устроено "в потрохах" - на сервере или клиенте, через SQL или LINQ, на Дельфи или на Java, вообще его не касается, лишь бы работало, как нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 17:06:19 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
вввУЛеонов ЮрийВ дополнение к предыдущему посту. Сортировать и фильтровать он хотят по набору данных в гриде, потому о фильтрации и сортировке в самом запросе речь не стоит Да всё уже, не получится ничего. Если 2 страницы тебя отговаривают - никто тебе уже ничего не посоветует. Народная примета. Я писал про начальные условия, если вы не обратили на это свое внимание. Выше я уже согласился с JaDi по использованию обычного (не ServerMode) грида. Всем спасибо за участие, буду копать. Если не сильно увлекусь копанием и не забуду, то обязательно в этой ветке отпишусь по результату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 17:09:56 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
DimaBr Excel столько строк не вытянетвытянет. но какими компонентами ТС хочет в дельфях создать такой xlsx-файл и сколько памяти должно быть на клиенте? ну, если там не полтора числовых столбца, конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2017, 20:21:29 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
На мой взгляд имеет смысл рассмотреть промежуточный датасет(кэш), например: http://www.aidaim.com/in-memory_sql_database_delphi.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 09:10:10 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Прогер123На мой взгляд имеет смысл рассмотреть промежуточный датасет(кэш), например: http://www.aidaim.com/in-memory_sql_database_delphi.htm Если функционал сводится к чтению, то присовокупить производительный SSD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 09:12:45 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов Юрийесть самописный компонент, потомок TdxServerModeDataSource. Сделан по аналогии с TdxServerModeADODataSource. Разница только в подключении к БДаналог KA18700? шож там тормозит 7 минут, сам доа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 09:28:53 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
vavanЛеонов Юрийесть самописный компонент, потомок TdxServerModeDataSource. Сделан по аналогии с TdxServerModeADODataSource. Разница только в подключении к БДаналог KA18700? шож там тормозит 7 минут, сам доа? DOA сам по себе тормозной и жутко прожорливый по памяти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 10:10:20 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
defecator, а у нас изрядная часть приложений к-е было в лом переводить на anydac так на нем и осталась, с какими-то моими примочками правда непонятно на чем там у OP такие задержки, скорее думается на выполнении запроса ораклом. server mode впрочем никогда не юзал из-за ограничений, может и он что негативно так вносит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 10:40:39 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
vavan, перешел бы давно на UniDAC. Но проекту уже 7 лет, писало до меня человек 5. Я предлагал руководству переписать с нуля и на других компонентах. Жмутся, типа времени много займет... А клиент привередливый, но жирный... Вот и приходится изворачиваться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 12:43:41 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, Мне кажется, вы немного не понимаете что вам тут объясняют. При асинхронной загрузке в грид пользователю будет казаться что у него все данные, хотя на самом деле данные будут подгружаться по мере прокрутки. При этом все фильтры и сортировки нужно выполнять на стороне сервера. Выгружать в файл данные нужно не из грида, а запросом при помощи курсора, встали на запись в базе - записали строку в файл, встали на следующую - записали и т.д. Это упрощенно, конечно, потому что нужно не по одной записи таскать а порциями, разменивая скорость на память. И эксель, желательно, формировать при помощи промежуточного тестового файла. Сформировали файл, открыли эксель, импортировали туда данные из промежуточного файла. Если перевалили за 1кк строк, можно разбивать по листам или еще чего делать. Или управлять этим делом на этапе формирования файла. И вся эта кухня должна быть скрыта от пользователей, им будет казаться что они работают с полным набором данных. Это техническая реализация, пользователям она не интересна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 13:12:00 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
MirnyiAtom, тут ничем не поможешь: у человека все работает, просто медленно. "Времени на глобальную переделку нет" (см. выше). Остается дождаться, когда время реакции изменится с 7 минут на 30. Хотя, если клиент такое терпит, он и дальше терпеть будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 14:28:23 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Переелать на BDE. Будет быстро. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 14:40:00 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов Юрийперешел бы давно на UniDACне думаю что принципиально время изменится при смене дака. и все же любопытно где проходят озвученные минут Леонов ЮрийЯ предлагал руководству переписать с нуля и на других компонентах. Жмутся, типа времени много займетэто знакомо, я под это дело тоже часы выбивал. одно время даже параллельно тащил в аппсервере доа и anydac и передачей параметра с клиента инстанцировался тот или иной rdm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 14:54:46 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Servermode от DevExp рассчитан на запрос, который возвращает первые записи быстро, остальные записи они сами подтягивают по мере необходимости. Всякие футтеры они считают делая запрос вида select ... from (ваш запрос), т.е. такие запросы тоже должны выполняться быстро. Если же сам запрос выполняется 7 минут, то тут его ничем не ускоришь, кроме переписывания запрос. Для ServerMode нужен запрос Select * from mytable, а фильтровать и искать грида будет сама когда надо. вопрос к ТС - исходный запрос в sqlplus сколько выполняется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 15:55:35 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
EAlexanderServermode от DevExp рассчитан на запрос, который возвращает первые записи быстро, остальные записи они сами подтягивают по мере необходимости. Всякие футтеры они считают делая запрос вида select ... from (ваш запрос), т.е. такие запросы тоже должны выполняться быстро. Если же сам запрос выполняется 7 минут, то тут его ничем не ускоришь, кроме переписывания запрос. Для ServerMode нужен запрос Select * from mytable, а фильтровать и искать грида будет сама когда надоOP при этом заявляет что Леонов ЮрийНа обычном встроенном DBGrid открываются влет первые N записей (при установке ReadBuffer = N и QueryAllRecords = False) за секунду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 16:47:17 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийСуть в том, что в ServerMode режиме полуторамиллионник открывается около 7 минут. Просто, без сумматоров в футере. Это непозволительно долго.Посмотри в профилировщике/мониторе какие запросы отправляются гридом. Не должно так долго. У нас хватает пользователей с базами и побольше. Правда лучше тестить на более современных компонентах, там за три года могло и поменяться что-то :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 17:07:59 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Еще один вопрос в тему. Пытаюсь перехватить момент, когда пользователь устанавливает свой фильтр. TcxGridServerModeTableView на событие OnFilterChanged не реагирует. Да и вообще событий у него по сравнению с TcxGridDBTableView по части DataController`a не сильно и много. Кто с таким сталкивался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 15:59:33 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийФинансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались)) Толковый бизнес-аналитик после сбора требований разложит этот супер мега отчет на 20 небольших но решающих конкретный задачи. Ведь вашим пользователям после фильтраций и еще чего, нужен какой-то результат. Логичнее отдавать этот результат сразу. Например если надо на основании показателей за прошлый год надо решить прогноз на будущее.. не надо выгружать показатели... Надо расписать алгоритм пользователя который на основании показателей считает прогноз... И при вводимых коэффициентах сразу выводится прогноз. и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2017, 22:22:15 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
X-CiteТолковый бизнес-аналитик после сбора требований разложит этот супер мега отчет на 20 небольших но решающих конкретный задачи. Ведь вашим пользователям после фильтраций и еще чего, нужен какой-то результат. Логичнее отдавать этот результат сразу. Например если надо на основании показателей за прошлый год надо решить прогноз на будущее.. не надо выгружать показатели... Надо расписать алгоритм пользователя который на основании показателей считает прогноз... И при вводимых коэффициентах сразу выводится прогноз. и т.п. А кто вам сказал что это отчет? Это счета клиентов. И работать надо с ними со всеми. Другое дело что запрос умирает с "Out of memory" на сильно большом количестве. Построение отчетов тут ни к чему, откуда вы это взяли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 10:01:39 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийX-CiteТолковый бизнес-аналитик после сбора требований разложит этот супер мега отчет на 20 небольших но решающих конкретный задачи. Ведь вашим пользователям после фильтраций и еще чего, нужен какой-то результат. Логичнее отдавать этот результат сразу. Например если надо на основании показателей за прошлый год надо решить прогноз на будущее.. не надо выгружать показатели... Надо расписать алгоритм пользователя который на основании показателей считает прогноз... И при вводимых коэффициентах сразу выводится прогноз. и т.п. А кто вам сказал что это отчет? Это счета клиентов. И работать надо с ними со всеми. Другое дело что запрос умирает с "Out of memory" на сильно большом количестве. Построение отчетов тут ни к чему, откуда вы это взяли? Такой объем данных необходим только для мега отчетов. Во всех остальных случаях не надо тянуть ВСЕ счета клиентов. Выбрали одного клиента, загрузили его счета, поработали. Выбрали второго клиента, загрузили счета, поработали. Работать сразу с миллионом счетов, зачем? Чтобы потом в Excel отфильтровать и работать с 20? Вам надо понять что они делают с этими счетами, они же какой-то результат на основании работы с ними получают.. Можно же сразу результат этот им и выдавать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 14:21:51 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
X-CiteРаботать сразу с миллионом счетов, зачем? Чтобы потом в Excel отфильтровать и работать с 20? Вам надо понять что они делают с этими счетами, они же какой-то результат на основании работы с ними получают.. Можно же сразу результат этот им и выдаватьиногда бывает что отбор на сервере происходит существенно дольше чем загрузить "менее отфильтрованный" набор на клиента и дорезать его локально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 14:26:16 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
X-CiteТолковый бизнес-аналитикпри наличии его и соответствующих инструментов можно вообще отказаться от дельфового приложения X-CiteНадо расписать алгоритм пользователяхорошо когда удается всю задачу формализовать и автоматизировать, тогда и пользователь глядишь не нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 14:29:43 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
X-Cite, это конечно хорошо, выбрать одного клиента... Только учтите, что в основном у каждого клиента как раз один счет и есть, консолидированный. Речь идет не о банке как таковом, а о Фонде гарантирования вкладов, у них уже 90% всех клиентов имеют по одному счету. И откуда тогда выбирать клиента? Списочек на миллион строк? Так и комбобох любой загнется... Этой проблеме не один год, уже много вариантов было проиграно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:53:07 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийX-Cite, это конечно хорошо, выбрать одного клиента... Только учтите, что в основном у каждого клиента как раз один счет и есть, консолидированный. Речь идет не о банке как таковом, а о Фонде гарантирования вкладов, у них уже 90% всех клиентов имеют по одному счету. И откуда тогда выбирать клиента? Списочек на миллион строк? Так и комбобох любой загнется... Этой проблеме не один год, уже много вариантов было проиграно Ммм.. А если такой вариант... Они с этими счетами что-то делают.. Например (из головы в порядке бреда) сначала смотрят по каким не было движения, потом смотрят например какие истекли, потом смотрят еще что-то... Или например продлить все счета где то и то... Тогда делается 3 отчета... Счета без движения, Счета истекшие, Счета еще чего-то...... Функционал по продлению счетов где то-то и то-то.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 14:59:05 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
X-CiteМмм.. А если такой вариант... Они с этими счетами что-то делают.. Например (из головы в порядке бреда) сначала смотрят по каким не было движения, потом смотрят например какие истекли, потом смотрят еще что-то... Или например продлить все счета где то и то... Тогда делается 3 отчета... Счета без движения, Счета истекшие, Счета еще чего-то...... Функционал по продлению счетов где то-то и то-то.... Им нужны счета. Чтобы все было на одной форме. Весь необходимый функционал они хотят иметь тут же (хотя большей половиной его никогда не пользовались и зачем заказывали непонятно). У людей мозг завязан только на Excel. Им по барабану сколько записей в наборе, но не хотят ждать пока он откроется. Да, они тупые. Да, они реально уже бесят! Но они платят. И платят жирно. Вот такой вот парадокс... Вам такие не попадались? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 16:14:38 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, пагинация? или любое другое разбиение данных на части? не обязательно кидаться в крайности - показывать одного клиента или миллион. может сделать тысяч 20 + пагинацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 16:16:40 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
makhaonпагинация? или любое другое разбиение данных на части? не обязательно кидаться в крайности - показывать одного клиента или миллион. может сделать тысяч 20 + пагинацию? Вот про паггинацию подробнее можно? Сейчас тоже возникла про это мысль. Не читал про такую возможность у cxGrid. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2017, 12:06:58 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
а разве servermode не занимается как раз таки пейджингом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2017, 12:36:47 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, не всё же компоненты должны за тебя делать :) хотя некоторые и умеют нативно. руками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2017, 15:48:04 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
хотя лучше бы умели сами показывать постранично, конечно. ручной skip набора - то еще удовольствие. с другой стороны - я слабо верю, что кому-то реально нужно больше 20ти тысяч записей одновременно. если для поиска - то в миллионе записей всё равно глазами найти что-то практически невозможно, фильтры нужны, и тогда проблема количества записей исчезнет сама собой. может просто ограничить набор 20ю-50ю тысячами записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2017, 15:53:06 |
|
||
|
ServerMode и несколько миллионов записей
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий...Суть в том, что в ServerMode режиме полуторамиллионник открывается около 7 минут... Сделай минимальное тестовое приложение, с "полуторамиллионником" в данных и выложи здесь. Будет код - будет что обсуждать. Не будет кода - будет болтовня еще на 10 страниц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2017, 17:23:33 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041394]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 335ms |

| 0 / 0 |
