powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBGrid синхронизованный с таблицей
21 сообщений из 46, страница 2 из 2
DBGrid синхронизованный с таблицей
    #40007453
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_nigger
НеофитSQL
Мы тут не теоретической математикой занимаемся, а прикладные задачи решаем.
А мне кажется фигнёй страдаете. И к сожалению не видите этого.


Чужая работа редко кажется важной :)

Я признаю что вопрос был поставлен узко, и без контекста.

Вот контекст, чтобы желающие могли поразить мозги.

Мне досталась древняя система (win32 терминал -- аппсервер-оракл11), в которой некоторые операции занимают непозволительно дорого, десятки секунд.
Например, адресная книжка на 20тыс заказчиков выскакивает за 20 сек, если фильтр не выставлен с прошлого раза. Показать всех - это существующее бизнес требование,к нему претензий нет.

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

10к строк/сек это ограничение грид-контроля в условиях маломощного ЦПУ. Чтобы делать быстрее, пришлось закэшировать форму. Теперь адресная книга выскакивает мгновенно, но в ней данные с прошлого раза.

Обновления адресной книги:
- в бэкграунде, подлинном. Грубо и растра но
- в бэкграунде, уведомлениями с сервера - нет такого грида, и нет таких технологий
- во время вызова книги, целиком - нет толку, так же долго как создать с нуля
- во время вызова, инкрементально - приличное количество кастом кода на клиенте И сервере, который делает диффы
- сразу после вызова целиком, без подвисания UI - это вроде перспективное направление,посмотрю в понедельник.
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40007454
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
s62
НеофитSQL
...
Если бы базы данных обладали способностями веб серверов конца прошлого века, можно было бы подписаться на оповещения об изменениях и не мудрить с доморощенными решениями.
...
Так они, по крайней мере некоторые, могут это делать. https://it.wikireading.ru/36959


Спасибо. Хотя я не смогу это использовать, было интересно узнать что СУБД развиваются в этом направлении.
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40007456
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_nigger
А ещё слабо представляют реакцию пользователя, когда исподволь обновляются поля участвующие в сортировах и группировках грида...


Я опишу реакцию:

"Ой, телефон на одной строчке поменялся? Прямо на глазах! В точности как в демо, когда нам показывали в тренинге про улучшения в системе. Сейчас позвоню Аллочке что заметила ее правку живьем".

Корпоративная среда, все легко.
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40007509
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
Я опишу реакцию
Да вот хрен ты угадал)) Теперь представь что отсортировано по фамилии или по телефону и какая-то запись, которую пытается осознать "Аллочка" исчезает с экрана? "Аааа... программисты мЧудаки! Ничего не работает! Всё пропало!"
За 20 лет я насмотрелся пользователей которые хотели от TcxGrid странного. Правда в большинстве случаев саппорт сам разбирался с такими, мне доставались только запущенные случаи. Конкретно для тебя, я бы рекомендовал не маяться дурью а использовать ServerMode. Твои десятки тысяч записей на клиенте никому не нужны, особенно если вдруг придется через медленные каналы стучаться к серверу. ServerMode сам за тебя разрулит и при неконсистенте - перечитает данные.
Впрочем решать тебе...
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40007525
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_nigger,

Server mode - это на первый взгляд то, что нужно. Посмотрю в этом направлении, спасибо.
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40007691
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
11.10.2020 17:03, НеофитSQL пишет:
> Показать всех - это существующее бизнес требование,к нему претензий нет.

тогда и к "скорости" претензий быть не должно.

не нужно кидаться грудью под танки, пытаясь реализовать тупые заманухи юзеров.
юзер стоит на самой низкой ступени развития. (С) - М.Булгаков
он не знает КАК НУЖНО и не понимает КАК МОЖНО.
как раз один из примеров тупых желаний юзеров:
"дай мне полный список ВСЕГО, а я мышкой найду то что мне нужно".

это не "бизнес требование".
это классический пример вопиющей компьютерной безграмотности.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40007818
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий,

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

Это, имхо, не тот случай. Аутлук умеет мгновенно показать адресную книгу на 100+ тыс, поэтому "сделай адресную книгу как в аутлуке" это довольно резонное требование.
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40007819
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQLАутлук умеет мгновенно показать адресную книгу на 100+ тыс

Внезапно, но - не может. Первый десяток адресов из этой книги - да, но чтобы все 100+ тыс...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40007821
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НеофитSQL
Аутлук умеет мгновенно показать адресную книгу на 100+ тыс, поэтому "сделай адресную книгу как в аутлуке" это довольно резонное требование.

Ну, я в одном из приложений показываю "100 000 записей мгновенно".
Но я не гружу их все на клиента, показываю только только то, что помещается на экран (и ещё немножко подгружаю на случай, если он листать быстро будет). На клиента я гружу идентификаторы записей, это быстро: 100 000 * 4 = 400 000 байт.
И изменения отображаются мгновенно. Без "дельт", я просто перечитываю то, что помещается на экрана, это быстро. Если запись была другим юзером удалена - она отображается пустой (или внезапно "побледневшей") строкой. Если запись была добавлена - у юзера подсвечивается кнопка "обновить" - по этой кнопке перечитывается буфер идентификаторов и данные текущего экрана, если новая запись должна появится в данной позиции экрана - она появится. Удаленные записи после кнопки "обновить" перестают отображаться.

Естественно, при включении группировок "вся эта автоматизация" отключается, так как юзер нервничает, когда исчезает целая группа, данные обновляются по явному запросу.

Нужно просто продумать, что ты хочешь получить, и использовать знакомый тебе механизм. Например, гриды DevEx в связке с кастомным датасорцом. Или TVirtualStringTree.
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40007841
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

НеофитSQLАутлук умеет мгновенно показать адресную книгу на 100+ тыс

Внезапно, но - не может. Первый десяток адресов из этой книги - да, но чтобы все 100+ тыс...


Аутлук тянет корпоративную адресную книгу из локального кэша, который периодически обновляется в фоне. Помню что обновления в адресной книге аутлука 2000/exchange 5.5 запаздывали на минут 5-10, что резонно для справочника который редактируется извне.
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40007918
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

НеофитSQLАутлук умеет мгновенно показать адресную книгу на 100+ тыс

Внезапно, но - не может. Первый десяток адресов из этой книги - да, но чтобы все 100+ тыс...


Аутлук тянет корпоративную адресную книгу из локального кэша, который периодически обновляется в фоне. Помню что обновления в адресной книге аутлука 2000/exchange 5.5 запаздывали на минут 5-10, что резонно для справочника который редактируется извне.
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40007968
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
не гружу их все на клиента, показываю только только то, что помещается на экран (и ещё немножко подгружаю на случай, если он листать быстро будет)
ъъъъъ
при включении группировок "вся эта автоматизация" отключается
похоже на работу девэкса в gridmode, но в принципе тут можно и весь датасет поиметь заранее при необходимости
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40008061
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQLАутлук тянет корпоративную адресную книгу из локального кэша, который периодически
обновляется в фоне.

Ну так и ты показывай свой список из локального файла, который обновляй периодически. В
чём проблема-то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40008085
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

В оракловой ветке ТС писал, что сам запрос он смог загнать в mat view refresh on commit. Но не уточнял, смог ли добавить в него что-либо для выявления дельты по обновившимся строкам.

упд. И скорость изменения адресной книги аутлука обычно не такая уж большая.
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40009990
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

НеофитSQLАутлук тянет корпоративную адресную книгу из локального кэша, который периодически
обновляется в фоне.

Ну так и ты показывай свой список из локального файла, который обновляй периодически. В
чём проблема-то?


У меня уже все в памяти и в гриде сидит, файл не нужен.

Проблема в "периодически". несколько сотен открытых клиентов "периодически" тянут данные с сервера, на всякий случай.
Это для меня плохой дизайн, мучать сервер без повода.

Если забылось:

> Я работаю над задачей, для реализации которой было бы удобно иметь таблицу на экране, которая авто-синхронизируется с таблицей данных
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40010001
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я топик не читал, но in-memory датасеты уже предлагали?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40010007
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лучше и не читать.
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40010049
Mixrud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Автор, выделяй третье звено. IIS, сокеты с тредами - не суть !
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40010087
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
in-memory датасеты уже предлагали?
как же иначе
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40010140
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixrudАвтор, выделяй третье звено.

У него уже трёхзвенка. Второе третье звено выделить не получится, только пятое (колесо к
телеге).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
DBGrid синхронизованный с таблицей
    #40010229
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Давно сделал, небось.
И молчит.
И - непонятно, что ТС хотел.
...
Рейтинг: 0 / 0
21 сообщений из 46, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBGrid синхронизованный с таблицей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]