Вниз
Скачать: CL | DM;

Множественные изменения   Найти похожие ветки 

← →
irq ©   (2002-02-06 13:05) [0]

Здравствуйте! В базу Interbase с клиента 1 нужно внести сразу много изменений (в одну таблицу - добавление записей, в другую - изменение записей). Все остальные клиенты должны ждать, пока клиент 1 не закончит работу. Как можно ускорить этот процесс? Заранее спасибо.


← →
Johnmen ©   (2002-02-06 13:27) [1]

Обрабатывай событие отрисовки ячейки.


← →
Johnmen ©   (2002-02-06 13:30) [2]

Прошу прощения - это из др.конфы :(


← →
Fareader ©   (2002-02-06 13:42) [3]

Что значит ждать? Не могут достучаться к серверу или должны увидеть эту информацию, а потом подолжить работу?


← →
irq ©   (2002-02-06 13:55) [4]

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


← →
Johnmen ©   (2002-02-06 14:02) [5]

Интересно, а кто им запрещает ? :)


← →
irq ©   (2002-02-06 14:05) [6]

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


← →
Fareader ©   (2002-02-06 15:01) [7]

Правильно споректировать БД и запросы на изменение. И что это вообще за згадочная система?


← →
irq ©   (2002-02-06 15:22) [8]

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


← →
Fareader ©   (2002-02-06 15:59) [9]

А сколько записей обновляется и добавляется и как долго это происходит?


← →
Johnmen ©   (2002-02-06 16:05) [10]

...не в том, что это за система....Ну прямо тайны мадридского двора ;o))))))

делай 2 запроса : на изменение в табл.№1 и на добавление в т.№2


← →
irq ©   (2002-02-06 16:10) [11]

Обновляется каждая запись в таблице 1, у которой значение поля 1 не равно вновь полученному. Сколько это в количественном измерении сказать трудно, будем считать пока, что в пределах 1 тысячи. Добавляющихся записей в ~3 раза меньше. Время пока не засекалось, но поскольку работа построена таким образом, что сохранение изменений по каждой записи передается серверу, то, думаю, что это не малое количество времени.


← →
Fareader ©   (2002-02-06 16:15) [12]

Как данные обновлются с помощью Update на SQL или обход Query по всем записям? Это не объем для тормоза системы. Попробуй компоненты прямого доступа к IB - FIBPlus - на больших объемах они быстрее BDE.


← →
Ura   (2002-02-06 16:17) [13]

Попробуй организовать систему через сообщения сервера
Пришел супер запрос на изменения -> Всем клиентам посылается сообщение ЖДАТЬ
Запрос на изменеия закончился в конце посылаем от сервера РАБОТА или ОБНОВИТЬ.
Плохо конечно что придеться часть логики делать в приложении но...


← →
irq ©   (2002-02-06 16:38) [14]

Ura: заставлять ждать клиентов я с обриаюсь именно таким образом, спасибо. но проблема немного не в этом.

Fareader: если это не множественное изменение, то сохраняется текущая в query запись. можно ли с множественным изменением обойтись как-то без обхода query по всем записям?


← →
yaJohn ©   (2002-02-06 17:08) [15]

Sentencia: Bistree hranimih procedur bivaut tol"ko hranimie proceduri.
Esli kritichen imenno prostoy ostalnih klientov, a ne obshaya proizvoditelnost" - zapolniaem dannimi vremennie tablici, a potom v odnoy tranzakcii perepravliaem danie iz nih v osnovnie. Eto 2 SQL zaprosa.
Vremennie chistim. Krivo, konechno, no v ramkah postavlenoy zadachi...


← →
irq ©   (2002-02-06 17:24) [16]

yaJohn: kak osushestvit" sbros vsex dannyx v ramkax odnoj tranzakcii? ispol"zovat" UpdateSQL ili net?


← →
Ura   (2002-02-06 17:30) [17]

Перечитал.
> сохранение изменений по каждой записи передается серверу
Т.е. логика перенесена на клиента сразу!!!
Сделай тожда кеширование. Обработай все. Можно построить индексы или удалить индексы. А потом одним махом синхронизируй...
1) Обработка в твоих руках
2) Нет промежуточных пересылок


← →
erik ©   (2002-02-06 19:26) [18]

Как я понял пользователи не меняют данные. Тогда все просто, делается 3-х звенка в ClientDataSet заливаются новые данные с него считывают все клиенты. В отдельном треде делается clone с ClientDataSet и заливаются в базу. Все нет проблем, даже клиентам ничего посылать ненадо все делается автоматически.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.007 c
7-9314
Еремин Дмитрий
2001-11-30 09:39
2002.03.04
Вопрос по системе


7-9312
UN9GW
2001-11-29 21:46
2002.03.04
как получить данные извне с регистра 0x378 LPT порта?


1-9208
Fighter
2002-02-15 04:26
2002.03.04
Подскажите какой самый безглючный компонент FTP клиент?


1-9222
Lotus
2002-02-13 10:33
2002.03.04
всплывающий список


14-9271
модератор
2002-01-14 11:19
2002.03.04
По вопросам модерирования просьба обращаться по адресу




   Наверх