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

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

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

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

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

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

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

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

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

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

+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

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

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

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


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

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

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

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


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

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


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


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

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

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

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

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


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

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

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

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

Posted via ActualForum NNTP Server 1.5

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

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


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

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


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

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

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

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

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

Posted via ActualForum NNTP Server 1.5

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

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

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


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

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

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

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


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


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

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


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


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

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

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

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

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

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

Другое дело, что листов может быть 65 тыщ )))
6 дек 17, 15:35    [21011421]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Delphi Ответить