Форум: "Базы";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
ВнизМножественные изменения Найти похожие ветки
← →
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 вся ветка
Форум: "Базы";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c