синхронизация
От: vitalik_4  
Дата: 24.09.07 14:39
Оценка:
Подскажите, как реализовать следующее. Есть 5-6 таблиц в которые принимаются данные с разных клиентов.
надо эти таблицы синхронизировать (удалить из каждой зи таблиц все данные которые есть в других таблицах).
Был вариант сделать так:

DELETE FROM datagps WHERE Mobitel_id IN

(SELECT Mobitel_id from datagps_1)
AND UnixTime IN (SELECT UnixTime from datagps_1)

но я так и не дождался окончания выполнения этого запроса. Как еще можгно решать данную задачу ?



27.09.07 08:19: Перенесено модератором из '.NET' — TK
Re: синхронизация
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 24.09.07 17:20
Оценка:
Здравствуйте, vitalik_4, Вы писали:

_>Подскажите, как реализовать следующее. Есть 5-6 таблиц в которые принимаются данные с разных клиентов.

_>надо эти таблицы синхронизировать (удалить из каждой зи таблиц все данные которые есть в других таблицах).
_>Был вариант сделать так:

_>DELETE FROM datagps WHERE Mobitel_id IN


_> (SELECT Mobitel_id from datagps_1)

_> AND UnixTime IN (SELECT UnixTime from datagps_1)

_>но я так и не дождался окончания выполнения этого запроса. Как еще можгно решать данную задачу ?


Написать в другой форум.
А размеры таблиц какие?
Re: синхронизация
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.09.07 05:56
Оценка:
Здравствуйте, vitalik_4, Вы писали:
_>но я так и не дождался окончания выполнения этого запроса. Как еще можгно решать данную задачу ?
Во-первых, постараться не нагибать сервер запросами сложностью N*N. Ну и вообще стараться писать запросы в соответствии с их смыслом. Телепатически угадываю, что ты имел в виду:
DELETE FROM datagps dg WHERE 
exists(select * from datagps_1 d1 where d1.id = dg.id and d1.UnixTime = dg.UnixTime)


Во-вторых, не забыть добавить индексы по (id, unixtime) в обе таблицы.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: синхронизация
От: Аноним  
Дата: 26.09.07 13:09
Оценка:
_>>но я так и не дождался окончания выполнения этого запроса. Как еще можгно решать данную задачу ?
S>Во-первых, постараться не нагибать сервер запросами сложностью N*N. Ну и вообще стараться писать запросы в соответствии с их смыслом.
Та это понятно что надо стараться не нагибать сервер. Ну а если нужно ?

Телепатически угадываю, что ты имел в виду:
S>
S>DELETE FROM datagps dg WHERE 
S>exists(select * from datagps_1 d1 where d1.id = dg.id and d1.UnixTime = dg.UnixTime)
S>


так точно, именно это и имел ввиду

S>Во-вторых, не забыть добавить индексы по (id, unixtime) в обе таблицы.

такой возможности нет. Базу изменять нельзя.
Re[3]: синхронизация
От: Andrbig  
Дата: 26.09.07 13:22
Оценка:
Здравствуйте, Аноним, Вы писали:

А>такой возможности нет. Базу изменять нельзя.


Залей данные во времянку, сделай там нужный индекс. Надо смотреть на задачу, в некоторых случаях (правда нечастых ) может помочь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.