Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.04;
Скачать: 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 вся ветка

Текущий архив: 2002.03.04;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
3-9075
Vks
2002-02-05 12:19
2002.03.04
Есть несколько относительно больших баз......


7-9320
AlexKniga
2001-11-27 18:10
2002.03.04
Не в тему. Про аудио системы.


1-9116
vinni2000
2002-02-05 16:00
2002.03.04
Как получить список файлов в директории включая поддиректории?


1-9158
макар
2002-02-13 17:00
2002.03.04
Вопрос


14-9272
Ghost!
2002-01-11 20:42
2002.03.04
Деление String по пробелу