Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
Доброго дня, уважаемые гуру!

Давно стоит проблема, но всё откладывалась на потом. И вот этот "потом" настал.
Есть среда 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, чтобы он открывал сразу набор, а только потом высасывал по необходимости данные. Стоит задача открывать данные быстро.

Заранее благодарю за конструктив
6 дек 17, 14:06    [21010928]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
defecator
Member

Откуда:
Сообщений: 38703
Леонов Юрий
Доброго дня, уважаемые гуру!

Давно стоит проблема, но всё откладывалась на потом. И вот этот "потом" настал.
Есть среда 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 ?
6 дек 17, 14:07    [21010936]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29168

юра, а зачем тебе СТОЛЬКО данных?
(я серьёзно)

Posted via ActualForum NNTP Server 1.5

6 дек 17, 14:11    [21010963]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
чччД
Guest
Мимопроходящий
юра, а зачем тебе СТОЛЬКО данных?
(я серьёзно)

+1.

2ТС: попытайся структурировать данные и показать их (например) в виде дерева.
Список строений, к примеру, отлично раскладывается по улицам, улицы - по городам и т.д.
6 дек 17, 14:32    [21011087]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3702
ServerMode требует специальной поддержки от датасет-компонента (посмотрел сейчас доки, в 14 версии нет поддержки doa (delphi oracle access). Возможно, необходим фетчинг данных -- когда курсор с данными остается открытым на сервере, а программа грузит их по мере надобности движения по списку. Для последнего нужно включить GridMode. И при его включении итоги в колонках перестанут работать. В общем, можно просто в справке сделать поиск по "servermode" и "gridmode", там есть подробные инструкции по настройке.
6 дек 17, 14:35    [21011103]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
defecator
Member

Откуда:
Сообщений: 38703
чччД
Мимопроходящий
юра, а зачем тебе СТОЛЬКО данных?
(я серьёзно)

+1.

2ТС: попытайся структурировать данные и показать их (например) в виде дерева.
Список строений, к примеру, отлично раскладывается по улицам, улицы - по городам и т.д.


у него случай выгрузки данных в Excel для дальнейшего анализа.
Не вижу криминала в выгрузке полутора лямов строк на клиента
6 дек 17, 14:39    [21011126]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
чччД
Guest
JaDi
ServerMode требует специальной поддержки от датасет-компонента (посмотрел сейчас доки, в 14 версии нет поддержки doa (delphi oracle access). Возможно, необходим фетчинг данных -- когда курсор с данными остается открытым на сервере, а программа грузит их по мере надобности движения по списку. Для последнего нужно включить GridMode. И при его включении итоги в колонках перестанут работать. В общем, можно просто в справке сделать поиск по "servermode" и "gridmode", там есть подробные инструкции по настройке.

Какие уж тут итоги (да и фильтры на клиенте), если тащит такие объемы данных.
...
2 ТА: имхо, проще всего запитать грид от TcxCustomDataSet. Тут уж что напишешь - все твое. Можно, например, подгружать реальные данные только тогда, когда грид их запросит.
Но тут тоже самое - все подсчеты "на лету" и фильтрацию средствами грида придется ручками обрабатывать - например, формируя запросы к серверу.
6 дек 17, 14:40    [21011137]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29168

06.12.2017 14:39, defecator пишет:
> у него случай выгрузки данных в Excel для дальнейшего анализа.
> Не вижу криминала в выгрузке полутора лямов строк на клиента

ну а "за щекой" то их зачем держать?
если это конечно не сила привычки...

Posted via ActualForum NNTP Server 1.5

6 дек 17, 14:41    [21011140]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
чччД
Guest
defecator
чччД
пропущено...

+1.

2ТС: попытайся структурировать данные и показать их (например) в виде дерева.
Список строений, к примеру, отлично раскладывается по улицам, улицы - по городам и т.д.


у него случай выгрузки данных в Excel для дальнейшего анализа.
Не вижу криминала в выгрузке полутора лямов строк на клиента

Для выгрузки в иксель зачем все сразу тащить?
...
И что там у него за строки еще - пара килобайт на строку - вот и съели всю оперативку.
6 дек 17, 14:43    [21011156]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
defecator
Member

Откуда:
Сообщений: 38703
чччД
defecator
пропущено...


у него случай выгрузки данных в Excel для дальнейшего анализа.
Не вижу криминала в выгрузке полутора лямов строк на клиента

Для выгрузки в иксель зачем все сразу тащить?
...
И что там у него за строки еще - пара килобайт на строку - вот и съели всю оперативку.

в DOA, в отличие от ODAC, с оперативкой всё плохо - очень прожорливый этот DOA.
6 дек 17, 14:45    [21011169]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
Мимопроходящий
юра, а зачем тебе СТОЛЬКО данных?
(я серьёзно)


Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались))
6 дек 17, 14:47    [21011184]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1200
Леонов Юрий
Мимопроходящий
юра, а зачем тебе СТОЛЬКО данных?
(я серьёзно)


Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались))


Чтото я сомневаюсь, что они будут листать весь миллион записей...
Может пользователи не поняли про предформу и им нужно внятнее объяснить, на простом для них языке :)
6 дек 17, 14:53    [21011213]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29168

06.12.2017 14:47, Леонов Юрий пишет:
>
> Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень.

весь набор хранится НА СЕРВЕРЕ.


Posted via ActualForum NNTP Server 1.5

6 дек 17, 14:53    [21011215]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
чччД
Guest
Леонов Юрий
Мимопроходящий
юра, а зачем тебе СТОЛЬКО данных?
(я серьёзно)


Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались))


Ну, пусть ждут.
Я как-то в одной конторке изменил базовый принцип работы со списками. Сперва открываешь грид - а там пусто. Пока не укажешь фильтр. Если указал "хочу весь интернет все" - ну и жди, сам захотел.

На вопрос "...э?" ответил - "вы в интернете все сразу видите, или что попросите?"
Конечно, сперва с директором согласовал.

Так и работают.
6 дек 17, 14:56    [21011226]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
DimaBr
Member

Откуда:
Сообщений: 10712
Excel столько строк не вытянет
6 дек 17, 14:57    [21011229]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
defecator
Member

Откуда:
Сообщений: 38703
DimaBr
Excel столько строк не вытянет


на одной странице - миллион
а страниц может быть 65 тыщ
вытянет
6 дек 17, 14:58    [21011234]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29168

06.12.2017 14:57, DimaBr пишет:
> Excel столько строк не вытянет

они ж вродь уже и х64 сподобились выпустить

Posted via ActualForum NNTP Server 1.5

6 дек 17, 15:00    [21011245]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
JaDi
ServerMode требует специальной поддержки от датасет-компонента (посмотрел сейчас доки, в 14 версии нет поддержки doa (delphi oracle access).


есть самописный компонент, потомок TdxServerModeDataSource. Сделан по аналогии с TdxServerModeADODataSource. Разница только в подключении к БД.

JaDi
Возможно, необходим фетчинг данных -- когда курсор с данными остается открытым на сервере, а программа грузит их по мере надобности движения по списку. Для последнего нужно включить GridMode. И при его включении итоги в колонках перестанут работать. В общем, можно просто в справке сделать поиск по "servermode" и "gridmode", там есть подробные инструкции по настройке.


Это для обычного грида? Кроме итогов не работает и фильтрация с сортировкой. Хотя в целом вариант очень даже жизнеспособный. Причесать код придется сильно, но эффект выходит хороший. Спасибо огромное))
6 дек 17, 15:14    [21011329]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
DimaBr, XLSX нормально тянет
6 дек 17, 15:16    [21011333]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29168

06.12.2017 15:16, Леонов Юрий пишет:
> XLSX нормально тянет

ой как всё запущено....

Posted via ActualForum NNTP Server 1.5

6 дек 17, 15:18    [21011339]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
шК0ДЕР

Чтото я сомневаюсь, что они будут листать весь миллион записей...
Может пользователи не поняли про предформу и им нужно внятнее объяснить, на простом для них языке :)


Что можно объяснить людям, которые на просьбу скинуть скрин формы ФОТОГРАФИРУЮТ ее на телефон а потом выкладывают в скайп?
6 дек 17, 15:19    [21011345]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
рррЗ
Guest
DimaBr
Excel столько строк не вытянет

Ты сам-то свою ссылку открывал?

К сообщению приложен файл. Размер - 23Kb
6 дек 17, 15:20    [21011351]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Квейд
Member

Откуда: Kyiv, Ukraine
Сообщений: 5076
Леонов Юрий
Мимопроходящий
юра, а зачем тебе СТОЛЬКО данных?
(я серьёзно)


Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались))


Юрий, объясни своим специфическим людям, что если некто начнет просматривать по одной записи в секунду, то для просмотра всего набора из миллиона записей человеку понадобится 12 дней непрерывного времени.
6 дек 17, 15:33    [21011410]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
defecator
Member

Откуда:
Сообщений: 38703
Квейд
Леонов Юрий
пропущено...


Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались))


Юрий, объясни своим специфическим людям, что если некто начнет просматривать по одной записи в секунду, то для просмотра всего набора из миллиона записей человеку понадобится 12 дней непрерывного времени.

а им не надо просматривать ВСЕ записи.
Они в Excel строят аналитику, а для этого нужны все возможные записи
6 дек 17, 15:34    [21011417]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
defecator
Member

Откуда:
Сообщений: 38703
рррЗ
DimaBr
Excel столько строк не вытянет

Ты сам-то свою ссылку открывал?

Картинка с другого сайта.

ТС надо полтора миллиона записей.
А на листе только миллион

Другое дело, что листов может быть 65 тыщ )))
6 дек 17, 15:35    [21011421]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29168

06.12.2017 15:33, Квейд пишет:
> Юрий, объясни своим специфическим людям, что если некто начнет просматривать по одной записи в секунду,
> то для просмотра *всего набора* из миллиона записей человеку понадобится 12 дней непрерывного времени.

имхо, проблема тут не только в заказчике.
проблема ещё и в том, что Юра не видит иных путей для достижения цели,
окромя как использовать встроенные в этот аляповатый грид средства фильтрации, сортировки, агрегации...

Posted via ActualForum NNTP Server 1.5

6 дек 17, 15:36    [21011424]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29168

06.12.2017 15:34, defecator пишет:
> Они в Excel строят аналитику

пивной ларёк Ltd

Posted via ActualForum NNTP Server 1.5

6 дек 17, 15:37    [21011433]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3702
К слову, эксель может и сам напрямую к источникам данных подключаться, в т.ч. к базам данных.
6 дек 17, 15:40    [21011449]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29168

06.12.2017 15:40, JaDi пишет:
> К слову, эксель может и сам напрямую к источникам данных подключаться, в т.ч. к базам данных.

сам напрямую не может.
только через ODBC/OLEDB

Posted via ActualForum NNTP Server 1.5

6 дек 17, 15:41    [21011461]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3702
Мимопроходящий,

Про это и говорю. Например, автор может попробовать подготовить настроенный эксель с путями для подключения и отдавать эти файлы пользователям, раз им именно эксель нужен. В крайнем случае можно рядом выгрузить данные к csv или т.п. и так же через эксель подключиться к файлу. Это если там именно эксель нужен кому-то.
6 дек 17, 15:47    [21011511]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Valery_B
Member

Откуда: Москва
Сообщений: 1755
Леонов Юрий
Можно ли настроить cxGrid, чтобы он открывал сразу набор, а только потом высасывал по необходимости данные. Стоит задача открывать данные быстро.

Он и так это делает по умолчанию.
Грид здесь не причём, он рисует ровно столько данных, сколько помещается на экране.
Сделай отвязанный от визуальных компонентов Dataset.Open и сиди секундомером. Это и есть то, что ты называешь "открывать данные".

Леонов Юрий
Фильтрация, выгрузка в Excel и т.п.

Определись, что именно - отображать или выгрузить ?
Если предполагается фильтрация, то её точно надо делать на сервере.
6 дек 17, 15:49    [21011525]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Квейд
Member

Откуда: Kyiv, Ukraine
Сообщений: 5076
defecator
Квейд
пропущено...


Юрий, объясни своим специфическим людям, что если некто начнет просматривать по одной записи в секунду, то для просмотра всего набора из миллиона записей человеку понадобится 12 дней непрерывного времени.

а им не надо просматривать ВСЕ записи.
Они в Excel строят аналитику, а для этого нужны все возможные записи
ТС пишет, что ему нужны эти записи в Grid, а не в Excel. Или я что-то недопонял?
6 дек 17, 15:55    [21011563]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
defecator
Member

Откуда:
Сообщений: 38703
Квейд
defecator
пропущено...

а им не надо просматривать ВСЕ записи.
Они в Excel строят аналитику, а для этого нужны все возможные записи
ТС пишет, что ему нужны эти записи в Grid, а не в Excel. Или я что-то недопонял?

Возможно, спорить не буду.
Но слова "выгрузка в Excel" там присутствуют
6 дек 17, 16:00    [21011594]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
Квейд
defecator
пропущено...

а им не надо просматривать ВСЕ записи.
Они в Excel строят аналитику, а для этого нужны все возможные записи
ТС пишет, что ему нужны эти записи в Grid, а не в Excel. Или я что-то недопонял?


Можно конечно сделать фоновую выгрузку в Excel (благо уже есть механизм и скорее всего им и воспользуюсь). Вопрос ставился относительно отображения данных в TcxGridServerModeTableView, потому и выгрузка планировалась встроенным механизмом грида
6 дек 17, 16:13    [21011680]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
В дополнение к предыдущему посту.
Сортировать и фильтровать он хотят по набору данных в гриде, потому о фильтрации и сортировке в самом запросе речь не стоит
6 дек 17, 16:15    [21011693]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
вввУ
Guest
Леонов Юрий
В дополнение к предыдущему посту.
Сортировать и фильтровать он хотят по набору данных в гриде, потому о фильтрации и сортировке в самом запросе речь не стоит

Да всё уже, не получится ничего. Если 2 страницы тебя отговаривают - никто тебе уже ничего не посоветует. Народная примета.
6 дек 17, 16:26    [21011729]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29168

голосую: убить (С)

Posted via ActualForum NNTP Server 1.5

6 дек 17, 16:33    [21011764]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
s62
Member

Откуда: Жуковский
Сообщений: 836
вввУ
Леонов Юрий
В дополнение к предыдущему посту.
Сортировать и фильтровать он хотят по набору данных в гриде, потому о фильтрации и сортировке в самом запросе речь не стоит

Да всё уже, не получится ничего. Если 2 страницы тебя отговаривают - никто тебе уже ничего не посоветует. Народная примета.
Я могу посоветовать: сортировать и фильтровать запросами на сервере. Юзеры не обязаны понимать и, вполне вероятно, не понимают технических сторон вопроса, нужно (или можно) им сказать, что вот так для них будет хорошо. ))
6 дек 17, 16:48    [21011833]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
вввК
Guest
s62
вввУ
пропущено...

Да всё уже, не получится ничего. Если 2 страницы тебя отговаривают - никто тебе уже ничего не посоветует. Народная примета.
Я могу посоветовать: сортировать и фильтровать запросами на сервере. Юзеры не обязаны понимать и, вполне вероятно, не понимают технических сторон вопроса, нужно (или можно) им сказать, что вот так для них будет хорошо. ))

У тебя уже все признаки профдеформации - тебе пора либо в РосКосмос на работу, либо в больницу лечиться, либо на покой роботов собирать :)
6 дек 17, 16:56    [21011865]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
s62
Member

Откуда: Жуковский
Сообщений: 836
вввК,
пользователь вообще не знает, сортирует он данные на сервере или на клиенте. Он видит перед собой окно программы, фильтры и таблицу (грид). Ему нужно, чтобы можно было сортировать и фильтровать. А как оно устроено "в потрохах" - на сервере или клиенте, через SQL или LINQ, на Дельфи или на Java, вообще его не касается, лишь бы работало, как нужно.
6 дек 17, 17:06    [21011932]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
вввУ
Леонов Юрий
В дополнение к предыдущему посту.
Сортировать и фильтровать он хотят по набору данных в гриде, потому о фильтрации и сортировке в самом запросе речь не стоит

Да всё уже, не получится ничего. Если 2 страницы тебя отговаривают - никто тебе уже ничего не посоветует. Народная примета.


Я писал про начальные условия, если вы не обратили на это свое внимание. Выше я уже согласился с JaDi по использованию обычного (не ServerMode) грида.

Всем спасибо за участие, буду копать. Если не сильно увлекусь копанием и не забуду, то обязательно в этой ветке отпишусь по результату.
6 дек 17, 17:09    [21011951]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
fd00ch
Member

Откуда: Нижний Новгород
Сообщений: 5913
DimaBr
Excel столько строк не вытянет
вытянет. но какими компонентами ТС хочет в дельфях создать такой xlsx-файл и сколько памяти должно быть на клиенте? ну, если там не полтора числовых столбца, конечно
6 дек 17, 20:21    [21012673]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Прогер123
Guest
На мой взгляд имеет смысл рассмотреть промежуточный датасет(кэш), например:
http://www.aidaim.com/in-memory_sql_database_delphi.htm
7 дек 17, 09:10    [21013562]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Прогер123
Guest
Прогер123
На мой взгляд имеет смысл рассмотреть промежуточный датасет(кэш), например:
http://www.aidaim.com/in-memory_sql_database_delphi.htm


Если функционал сводится к чтению, то присовокупить производительный SSD
7 дек 17, 09:12    [21013565]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
vavan
Member

Откуда: Казань
Сообщений: 3107
Леонов Юрий
есть самописный компонент, потомок TdxServerModeDataSource. Сделан по аналогии с TdxServerModeADODataSource. Разница только в подключении к БД
аналог KA18700? шож там тормозит 7 минут, сам доа?
7 дек 17, 09:28    [21013602]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
defecator
Member

Откуда:
Сообщений: 38703
vavan
Леонов Юрий
есть самописный компонент, потомок TdxServerModeDataSource. Сделан по аналогии с TdxServerModeADODataSource. Разница только в подключении к БД
аналог KA18700? шож там тормозит 7 минут, сам доа?

DOA сам по себе тормозной и жутко прожорливый по памяти
7 дек 17, 10:10    [21013772]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
vavan
Member

Откуда: Казань
Сообщений: 3107
defecator, а у нас изрядная часть приложений к-е было в лом переводить на anydac так на нем и осталась, с какими-то моими примочками правда

непонятно на чем там у OP такие задержки, скорее думается на выполнении запроса ораклом. server mode впрочем никогда не юзал из-за ограничений, может и он что негативно так вносит
7 дек 17, 10:40    [21013897]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
vavan,

перешел бы давно на UniDAC. Но проекту уже 7 лет, писало до меня человек 5.
Я предлагал руководству переписать с нуля и на других компонентах. Жмутся, типа времени много займет...
А клиент привередливый, но жирный... Вот и приходится изворачиваться
7 дек 17, 12:43    [21014638]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
MirnyiAtom
Member

Откуда:
Сообщений: 23
Леонов Юрий,

Мне кажется, вы немного не понимаете что вам тут объясняют.

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

Выгружать в файл данные нужно не из грида, а запросом при помощи курсора, встали на запись в базе - записали строку в файл, встали на следующую - записали и т.д. Это упрощенно, конечно, потому что нужно не по одной записи таскать а порциями, разменивая скорость на память.
И эксель, желательно, формировать при помощи промежуточного тестового файла. Сформировали файл, открыли эксель, импортировали туда данные из промежуточного файла. Если перевалили за 1кк строк, можно разбивать по листам или еще чего делать. Или управлять этим делом на этапе формирования файла.

И вся эта кухня должна быть скрыта от пользователей, им будет казаться что они работают с полным набором данных. Это техническая реализация, пользователям она не интересна.
7 дек 17, 13:12    [21014825]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
чччД
Guest
MirnyiAtom,

тут ничем не поможешь: у человека все работает, просто медленно.

"Времени на глобальную переделку нет" (см. выше).

Остается дождаться, когда время реакции изменится с 7 минут на 30. Хотя, если клиент такое терпит, он и дальше терпеть будет.
7 дек 17, 14:28    [21015174]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
rgreat
Member

Откуда:
Сообщений: 4388
Переелать на BDE. Будет быстро. ;)
7 дек 17, 14:40    [21015222]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
vavan
Member

Откуда: Казань
Сообщений: 3107
Леонов Юрий
перешел бы давно на UniDAC
не думаю что принципиально время изменится при смене дака. и все же любопытно где проходят озвученные минут
Леонов Юрий
Я предлагал руководству переписать с нуля и на других компонентах. Жмутся, типа времени много займет
это знакомо, я под это дело тоже часы выбивал. одно время даже параллельно тащил в аппсервере доа и anydac и передачей параметра с клиента инстанцировался тот или иной rdm
7 дек 17, 14:54    [21015286]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
EAlexander
Member

Откуда: Москва
Сообщений: 366
Servermode от DevExp рассчитан на запрос, который возвращает первые записи быстро, остальные записи они сами подтягивают по мере необходимости. Всякие футтеры они считают делая запрос вида select ... from (ваш запрос), т.е. такие запросы тоже должны выполняться быстро.
Если же сам запрос выполняется 7 минут, то тут его ничем не ускоришь, кроме переписывания запрос. Для ServerMode нужен запрос Select * from mytable, а фильтровать и искать грида будет сама когда надо.

вопрос к ТС - исходный запрос в sqlplus сколько выполняется?
7 дек 17, 15:55    [21015561]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
vavan
Member

Откуда: Казань
Сообщений: 3107
EAlexander
Servermode от DevExp рассчитан на запрос, который возвращает первые записи быстро, остальные записи они сами подтягивают по мере необходимости. Всякие футтеры они считают делая запрос вида select ... from (ваш запрос), т.е. такие запросы тоже должны выполняться быстро.
Если же сам запрос выполняется 7 минут, то тут его ничем не ускоришь, кроме переписывания запрос. Для ServerMode нужен запрос Select * from mytable, а фильтровать и искать грида будет сама когда надо
OP при этом заявляет что
Леонов Юрий
На обычном встроенном DBGrid открываются влет первые N записей (при установке ReadBuffer = N и QueryAllRecords = False) за секунду
7 дек 17, 16:47    [21015797]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1906
Леонов Юрий
Суть в том, что в ServerMode режиме полуторамиллионник открывается около 7 минут. Просто, без сумматоров в футере. Это непозволительно долго.
Посмотри в профилировщике/мониторе какие запросы отправляются гридом. Не должно так долго. У нас хватает пользователей с базами и побольше. Правда лучше тестить на более современных компонентах, там за три года могло и поменяться что-то :)
7 дек 17, 17:07    [21015893]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
Еще один вопрос в тему. Пытаюсь перехватить момент, когда пользователь устанавливает свой фильтр. TcxGridServerModeTableView на событие OnFilterChanged не реагирует. Да и вообще событий у него по сравнению с TcxGridDBTableView по части DataController`a не сильно и много. Кто с таким сталкивался?
20 дек 17, 15:59    [21049135]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1136
Леонов Юрий
Финансовая организация, народ специфический, им нужен весь набор, по которому можно делать фильтры, сортировки и т.п. хрень. Мое предложение в виде предформы, на которой можно было бы настроить нужный фильтр, было отвергнуто. Лично мне СТОЛЬКО данных и в пупок не впирались))


Толковый бизнес-аналитик после сбора требований разложит этот супер мега отчет на 20 небольших но решающих конкретный задачи. Ведь вашим пользователям после фильтраций и еще чего, нужен какой-то результат. Логичнее отдавать этот результат сразу.

Например если надо на основании показателей за прошлый год надо решить прогноз на будущее.. не надо выгружать показатели... Надо расписать алгоритм пользователя который на основании показателей считает прогноз... И при вводимых коэффициентах сразу выводится прогноз. и т.п.
20 дек 17, 22:22    [21050271]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
X-Cite
Толковый бизнес-аналитик после сбора требований разложит этот супер мега отчет на 20 небольших но решающих конкретный задачи. Ведь вашим пользователям после фильтраций и еще чего, нужен какой-то результат. Логичнее отдавать этот результат сразу.

Например если надо на основании показателей за прошлый год надо решить прогноз на будущее.. не надо выгружать показатели... Надо расписать алгоритм пользователя который на основании показателей считает прогноз... И при вводимых коэффициентах сразу выводится прогноз. и т.п.


А кто вам сказал что это отчет? Это счета клиентов. И работать надо с ними со всеми. Другое дело что запрос умирает с "Out of memory" на сильно большом количестве. Построение отчетов тут ни к чему, откуда вы это взяли?
21 дек 17, 10:01    [21050826]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1136
Леонов Юрий
X-Cite
Толковый бизнес-аналитик после сбора требований разложит этот супер мега отчет на 20 небольших но решающих конкретный задачи. Ведь вашим пользователям после фильтраций и еще чего, нужен какой-то результат. Логичнее отдавать этот результат сразу.

Например если надо на основании показателей за прошлый год надо решить прогноз на будущее.. не надо выгружать показатели... Надо расписать алгоритм пользователя который на основании показателей считает прогноз... И при вводимых коэффициентах сразу выводится прогноз. и т.п.


А кто вам сказал что это отчет? Это счета клиентов. И работать надо с ними со всеми. Другое дело что запрос умирает с "Out of memory" на сильно большом количестве. Построение отчетов тут ни к чему, откуда вы это взяли?


Такой объем данных необходим только для мега отчетов. Во всех остальных случаях не надо тянуть ВСЕ счета клиентов.

Выбрали одного клиента, загрузили его счета, поработали. Выбрали второго клиента, загрузили счета, поработали.

Работать сразу с миллионом счетов, зачем? Чтобы потом в Excel отфильтровать и работать с 20?

Вам надо понять что они делают с этими счетами, они же какой-то результат на основании работы с ними получают.. Можно же сразу результат этот им и выдавать...
21 дек 17, 14:21    [21051885]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
vavan
Member

Откуда: Казань
Сообщений: 3107
X-Cite
Работать сразу с миллионом счетов, зачем? Чтобы потом в Excel отфильтровать и работать с 20?

Вам надо понять что они делают с этими счетами, они же какой-то результат на основании работы с ними получают.. Можно же сразу результат этот им и выдавать
иногда бывает что отбор на сервере происходит существенно дольше чем загрузить "менее отфильтрованный" набор на клиента и дорезать его локально
21 дек 17, 14:26    [21051918]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
vavan
Member

Откуда: Казань
Сообщений: 3107
X-Cite
Толковый бизнес-аналитик
при наличии его и соответствующих инструментов можно вообще отказаться от дельфового приложения
X-Cite
Надо расписать алгоритм пользователя
хорошо когда удается всю задачу формализовать и автоматизировать, тогда и пользователь глядишь не нужен
21 дек 17, 14:29    [21051938]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
X-Cite,

это конечно хорошо, выбрать одного клиента... Только учтите, что в основном у каждого клиента как раз один счет и есть, консолидированный. Речь идет не о банке как таковом, а о Фонде гарантирования вкладов, у них уже 90% всех клиентов имеют по одному счету. И откуда тогда выбирать клиента? Списочек на миллион строк? Так и комбобох любой загнется...

Этой проблеме не один год, уже много вариантов было проиграно
27 дек 17, 11:53    [21066081]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1136
Леонов Юрий
X-Cite,

это конечно хорошо, выбрать одного клиента... Только учтите, что в основном у каждого клиента как раз один счет и есть, консолидированный. Речь идет не о банке как таковом, а о Фонде гарантирования вкладов, у них уже 90% всех клиентов имеют по одному счету. И откуда тогда выбирать клиента? Списочек на миллион строк? Так и комбобох любой загнется...

Этой проблеме не один год, уже много вариантов было проиграно

Ммм.. А если такой вариант...
Они с этими счетами что-то делают.. Например (из головы в порядке бреда) сначала смотрят по каким не было движения, потом смотрят например какие истекли, потом смотрят еще что-то... Или например продлить все счета где то и то...
Тогда делается 3 отчета...
Счета без движения, Счета истекшие, Счета еще чего-то...... Функционал по продлению счетов где то-то и то-то....
27 дек 17, 14:59    [21066792]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
X-Cite
Ммм.. А если такой вариант...
Они с этими счетами что-то делают.. Например (из головы в порядке бреда) сначала смотрят по каким не было движения, потом смотрят например какие истекли, потом смотрят еще что-то... Или например продлить все счета где то и то...
Тогда делается 3 отчета...
Счета без движения, Счета истекшие, Счета еще чего-то...... Функционал по продлению счетов где то-то и то-то....


Им нужны счета. Чтобы все было на одной форме. Весь необходимый функционал они хотят иметь тут же (хотя большей половиной его никогда не пользовались и зачем заказывали непонятно). У людей мозг завязан только на Excel. Им по барабану сколько записей в наборе, но не хотят ждать пока он откроется.

Да, они тупые. Да, они реально уже бесят! Но они платят. И платят жирно. Вот такой вот парадокс...
Вам такие не попадались?
27 дек 17, 16:14    [21067287]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2838
Леонов Юрий,

пагинация? или любое другое разбиение данных на части? не обязательно кидаться в крайности - показывать одного клиента или миллион. может сделать тысяч 20 + пагинацию?
27 дек 17, 16:16    [21067298]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Леонов Юрий
Member

Откуда: Украина, Харьков
Сообщений: 382
makhaon
пагинация? или любое другое разбиение данных на части? не обязательно кидаться в крайности - показывать одного клиента или миллион. может сделать тысяч 20 + пагинацию?


Вот про паггинацию подробнее можно? Сейчас тоже возникла про это мысль. Не читал про такую возможность у cxGrid.
29 дек 17, 12:06    [21072296]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
vavan
Member

Откуда: Казань
Сообщений: 3107
а разве servermode не занимается как раз таки пейджингом?
29 дек 17, 12:36    [21072413]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2838
Леонов Юрий,

не всё же компоненты должны за тебя делать :) хотя некоторые и умеют нативно. руками.
29 дек 17, 15:48    [21073012]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2838
хотя лучше бы умели сами показывать постранично, конечно. ручной skip набора - то еще удовольствие. с другой стороны - я слабо верю, что кому-то реально нужно больше 20ти тысяч записей одновременно. если для поиска - то в миллионе записей всё равно глазами найти что-то практически невозможно, фильтры нужны, и тогда проблема количества записей исчезнет сама собой.
может просто ограничить набор 20ю-50ю тысячами записей?
29 дек 17, 15:53    [21073026]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
чччД
Guest
Леонов Юрий
...Суть в том, что в ServerMode режиме полуторамиллионник открывается около 7 минут...


Сделай минимальное тестовое приложение, с "полуторамиллионником" в данных и выложи здесь.

Будет код - будет что обсуждать. Не будет кода - будет болтовня еще на 10 страниц.
29 дек 17, 17:23    [21073236]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / Delphi Ответить