Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Множественные изменения [D5, IB5.x]


irq ©   (2002-02-06 13:05:00) 

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


erik   (2002-02-06 19:26:00) [1]

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


Ura   (2002-02-06 17:30:00) [2]

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


irq   (2002-02-06 17:24:00) [3]

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


yaJohn   (2002-02-06 17:08:00) [4]

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 16:38:00) [5]

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

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


Ura   (2002-02-06 16:17:00) [6]

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


Fareader   (2002-02-06 16:15:00) [7]

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


irq   (2002-02-06 16:10:00) [8]

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


Johnmen   (2002-02-06 16:05:00) [9]

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

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


Fareader   (2002-02-06 15:59:00) [10]

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


irq   (2002-02-06 15:22:00) [11]

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


Fareader   (2002-02-06 15:01:00) [12]

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


irq   (2002-02-06 14:05:00) [13]

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


Johnmen   (2002-02-06 14:02:00) [14]

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


irq   (2002-02-06 13:55:00) [15]

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


Fareader   (2002-02-06 13:42:00) [16]

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


Johnmen   (2002-02-06 13:30:00) [17]

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


Johnmen   (2002-02-06 13:27:00) [18]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо