![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Множественные изменения [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]Обрабатывай событие отрисовки ячейки.