Pull to refresh

Comments 9

Неочевидная проблема получала неочевидное решение.
После серии красивых картинок и эпиграфов на неподготовленного читателя неожиданно ухнул большой кусок кода без комментариев.
За подсказку спасибо — комментарии вернул.

Насчет неочевидного решения — хорошо хоть патчить не пришлось ;-)
Еще бы перевести их, эти комментарии.
Поймите правильно, проблема не в том, что код слишком сложен или кто-то не знает английского. Проблема в контрасте между первой и второй частями статьи — для их восприятия требуются слишком разные уровни знаний.
А не проще бы было использовать ETL процесс?
Как то у меня рука не поднимается поставить ETL, процесс и просто в одно предложение.
Исходя из текста, скорее всего используется MSSQL, что не должно вызывать больших проблем.
Я, вот, сейчас думаю как решить проблему когда записей на вставку за раз могут быть миллионы (экономим память вставляя пачками, периодически прибивая уже вставленные объекты и контекст), а дупов (записей, с уже имеющимися в базе значениями ключа) среди них может получиться даже большинство (и их надо просто пропускать и вставлять нормальные (если они вообще есть)). В MySQL на этот случай есть прекрасная шткука «INSERT IGNORE», но ни в EF ни в T-SQL такого, увы, нет…
можно вставлять во временную таблицу, где нет ограничений, а дальше тупым SQL-ем переливать
insert into FINAL_TABLE (...)
select… from TEMP_TABLE
where not exists(...);
delete from TEMP_TABLE;
Sign up to leave a comment.

Articles