Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 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]     Ответить | Цитировать Сообщить модератору
 Re: ServerMode и несколько миллионов записей  [new]
Мимопроходящий
Member

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

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

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

Posted via ActualForum NNTP Server 1.5

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

Posted via ActualForum NNTP Server 1.5

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

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

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

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

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

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

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

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


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

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

Откуда: Нижний Новгород
Сообщений: 5864
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Откуда: Казань
Сообщений: 2912
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

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