|
|
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
white_nigger НеофитSQL Мы тут не теоретической математикой занимаемся, а прикладные задачи решаем. Чужая работа редко кажется важной :) Я признаю что вопрос был поставлен узко, и без контекста. Вот контекст, чтобы желающие могли поразить мозги. Мне досталась древняя система (win32 терминал -- аппсервер-оракл11), в которой некоторые операции занимают непозволительно дорого, десятки секунд. Например, адресная книжка на 20тыс заказчиков выскакивает за 20 сек, если фильтр не выставлен с прошлого раза. Показать всех - это существующее бизнес требование,к нему претензий нет. Оптимизация неоправданно сложного запроса позволила мне ускорить с 20 до 2секунд, без изменений архитектуры. Две секунды почти приемлемо для адресной книги, но есть другие, ещё бОльшие таблицы. Измерения показали что эти 2 сек происходят на клиенте,создание формы, принятие данных и популяция грида. 10к строк/сек это ограничение грид-контроля в условиях маломощного ЦПУ. Чтобы делать быстрее, пришлось закэшировать форму. Теперь адресная книга выскакивает мгновенно, но в ней данные с прошлого раза. Обновления адресной книги: - в бэкграунде, подлинном. Грубо и растра но - в бэкграунде, уведомлениями с сервера - нет такого грида, и нет таких технологий - во время вызова книги, целиком - нет толку, так же долго как создать с нуля - во время вызова, инкрементально - приличное количество кастом кода на клиенте И сервере, который делает диффы - сразу после вызова целиком, без подвисания UI - это вроде перспективное направление,посмотрю в понедельник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2020, 17:03 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
s62 НеофитSQL ... Если бы базы данных обладали способностями веб серверов конца прошлого века, можно было бы подписаться на оповещения об изменениях и не мудрить с доморощенными решениями. ... Спасибо. Хотя я не смогу это использовать, было интересно узнать что СУБД развиваются в этом направлении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2020, 17:06 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
white_nigger А ещё слабо представляют реакцию пользователя, когда исподволь обновляются поля участвующие в сортировах и группировках грида... Я опишу реакцию: "Ой, телефон на одной строчке поменялся? Прямо на глазах! В точности как в демо, когда нам показывали в тренинге про улучшения в системе. Сейчас позвоню Аллочке что заметила ее правку живьем". Корпоративная среда, все легко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2020, 17:13 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
НеофитSQL Я опишу реакцию За 20 лет я насмотрелся пользователей которые хотели от TcxGrid странного. Правда в большинстве случаев саппорт сам разбирался с такими, мне доставались только запущенные случаи. Конкретно для тебя, я бы рекомендовал не маяться дурью а использовать ServerMode. Твои десятки тысяч записей на клиенте никому не нужны, особенно если вдруг придется через медленные каналы стучаться к серверу. ServerMode сам за тебя разрулит и при неконсистенте - перечитает данные. Впрочем решать тебе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2020, 22:57 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
white_nigger, Server mode - это на первый взгляд то, что нужно. Посмотрю в этом направлении, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2020, 02:17 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
11.10.2020 17:03, НеофитSQL пишет: > Показать всех - это существующее бизнес требование,к нему претензий нет. тогда и к "скорости" претензий быть не должно. не нужно кидаться грудью под танки, пытаясь реализовать тупые заманухи юзеров. юзер стоит на самой низкой ступени развития. (С) - М.Булгаков он не знает КАК НУЖНО и не понимает КАК МОЖНО. как раз один из примеров тупых желаний юзеров: "дай мне полный список ВСЕГО, а я мышкой найду то что мне нужно". это не "бизнес требование". это классический пример вопиющей компьютерной безграмотности. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2020, 13:10 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, Я согласен с общим подходом образования заказчика что некоторые хотелки слишком дороги, или нежелательны по другим причинам, который я могу артикулировать. Это, имхо, не тот случай. Аутлук умеет мгновенно показать адресную книгу на 100+ тыс, поэтому "сделай адресную книгу как в аутлуке" это довольно резонное требование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2020, 18:55 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
НеофитSQLАутлук умеет мгновенно показать адресную книгу на 100+ тыс Внезапно, но - не может. Первый десяток адресов из этой книги - да, но чтобы все 100+ тыс... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2020, 18:58 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
НеофитSQL Аутлук умеет мгновенно показать адресную книгу на 100+ тыс, поэтому "сделай адресную книгу как в аутлуке" это довольно резонное требование. Ну, я в одном из приложений показываю "100 000 записей мгновенно". Но я не гружу их все на клиента, показываю только только то, что помещается на экран (и ещё немножко подгружаю на случай, если он листать быстро будет). На клиента я гружу идентификаторы записей, это быстро: 100 000 * 4 = 400 000 байт. И изменения отображаются мгновенно. Без "дельт", я просто перечитываю то, что помещается на экрана, это быстро. Если запись была другим юзером удалена - она отображается пустой (или внезапно "побледневшей") строкой. Если запись была добавлена - у юзера подсвечивается кнопка "обновить" - по этой кнопке перечитывается буфер идентификаторов и данные текущего экрана, если новая запись должна появится в данной позиции экрана - она появится. Удаленные записи после кнопки "обновить" перестают отображаться. Естественно, при включении группировок "вся эта автоматизация" отключается, так как юзер нервничает, когда исчезает целая группа, данные обновляются по явному запросу. Нужно просто продумать, что ты хочешь получить, и использовать знакомый тебе механизм. Например, гриды DevEx в связке с кастомным датасорцом. Или TVirtualStringTree. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2020, 19:15 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov НеофитSQLАутлук умеет мгновенно показать адресную книгу на 100+ тыс Внезапно, но - не может. Первый десяток адресов из этой книги - да, но чтобы все 100+ тыс... Аутлук тянет корпоративную адресную книгу из локального кэша, который периодически обновляется в фоне. Помню что обновления в адресной книге аутлука 2000/exchange 5.5 запаздывали на минут 5-10, что резонно для справочника который редактируется извне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2020, 20:46 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov НеофитSQLАутлук умеет мгновенно показать адресную книгу на 100+ тыс Внезапно, но - не может. Первый десяток адресов из этой книги - да, но чтобы все 100+ тыс... Аутлук тянет корпоративную адресную книгу из локального кэша, который периодически обновляется в фоне. Помню что обновления в адресной книге аутлука 2000/exchange 5.5 запаздывали на минут 5-10, что резонно для справочника который редактируется извне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2020, 02:59 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
ъъъъъ не гружу их все на клиента, показываю только только то, что помещается на экран (и ещё немножко подгружаю на случай, если он листать быстро будет) ъъъъъ при включении группировок "вся эта автоматизация" отключается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2020, 10:28 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
НеофитSQLАутлук тянет корпоративную адресную книгу из локального кэша, который периодически обновляется в фоне. Ну так и ты показывай свой список из локального файла, который обновляй периодически. В чём проблема-то? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2020, 13:23 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, В оракловой ветке ТС писал, что сам запрос он смог загнать в mat view refresh on commit. Но не уточнял, смог ли добавить в него что-либо для выявления дельты по обновившимся строкам. упд. И скорость изменения адресной книги аутлука обычно не такая уж большая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2020, 14:10 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov НеофитSQLАутлук тянет корпоративную адресную книгу из локального кэша, который периодически обновляется в фоне. Ну так и ты показывай свой список из локального файла, который обновляй периодически. В чём проблема-то? У меня уже все в памяти и в гриде сидит, файл не нужен. Проблема в "периодически". несколько сотен открытых клиентов "периодически" тянут данные с сервера, на всякий случай. Это для меня плохой дизайн, мучать сервер без повода. Если забылось: > Я работаю над задачей, для реализации которой было бы удобно иметь таблицу на экране, которая авто-синхронизируется с таблицей данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2020, 20:00 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
Я топик не читал, но in-memory датасеты уже предлагали? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2020, 20:42 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
Лучше и не читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2020, 21:07 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
Автор, выделяй третье звено. IIS, сокеты с тредами - не суть ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2020, 03:04 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам in-memory датасеты уже предлагали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2020, 09:43 |
|
||
|
DBGrid синхронизованный с таблицей
|
|||
|---|---|---|---|
|
#18+
MixrudАвтор, выделяй третье звено. У него уже трёхзвенка. Второе третье звено выделить не получится, только пятое (колесо к телеге). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2020, 12:48 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40010049&tid=2037917]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
17ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 338ms |

| 0 / 0 |
