Вниз
Скачать: 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.006 c
1-9178
IronHawk
2002-02-11 18:57
2002.03.04
Где в DBGrid поставить разделитель между столбцами !


1-9110
f0rm
2002-02-15 19:33
2002.03.04
Нужен компонент


7-9308
neodiX
2001-11-29 15:40
2002.03.04
Kak programno otkliucit klavu i mysh v WinNT i Win2k?


14-9276
VEG
2002-01-16 23:05
2002.03.04
Народ!!! Как можно качнуть всю инфу с картриджа 8 и 16 битных приставок???


4-9333
mIg
2001-12-19 10:46
2002.03.04
Скажите, как отловить событие открытие файла на чтение...




   Наверх