
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.06.2007, 14:47
|
|||
|---|---|---|---|
|
|||
Проверка дубликатов при импорте |
|||
|
#18+
Задача такая - перенести данные из таблицы-источника одний СУБД в целевую таблицу другой СУБД, не создав при этом записей-дубликатов в целевой таблице. проверка проходит по совокупности столбцов. Пробовал выгружать источник и целевую таблицу в DataTable и сравнивать каждую запись источника со всей целевой таблицей....получается очень долго (в источнике и целевой таблицах по миллиону записей). Использовал и DataTable.Select и DataTable.Rows.Find и foreach. (Очень удивился, когда Select отработал медленнее, чем foreach). Пробовал делать запрос в БД на импорт каждой записи из источника, что получилось не быстрее, чем первый вариант. Как можно еще ускорить процесс переноса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2007, 14:59
|
|||
|---|---|---|---|
Проверка дубликатов при импорте |
|||
|
#18+
СУБД какая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.06.2007, 15:39
|
|||
|---|---|---|---|
|
|||
Проверка дубликатов при импорте |
|||
|
#18+
Если проверка на повтор осуществляется по совокупности столбцов, то можно создать хеш-таблицу, у которой в качестве ключей будет сумма всех значений полей результирующей таблицы, приведенной к типу string. Далее при добавлении нужно использовать метод HashTable.ContainsKey(object Key). Этот метод работает очень быстро и вся операция займет всего два цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=17&mobile=1&tid=1352764]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 347ms |

| 0 / 0 |
