Пропуск конфликтов первичного ключа с копией SQL - PullRequest
1 голос
/ 19 октября 2008

У меня есть большая коллекция необработанных данных (около 300 миллионов строк) с примерно 10% реплицированных данных. Мне нужно получить данные в базу данных. Ради производительности я пытаюсь использовать SQL-копию. Проблема заключается в том, что когда я фиксирую данные, исключения первичного ключа препятствуют обработке любых данных. Могу ли я изменить поведение первичных ключей так, чтобы конфликтующие данные просто игнорировались или заменялись? В любом случае мне все равно - мне нужна только одна уникальная копия каждого из данных.

Ответы [ 3 ]

2 голосов
/ 19 октября 2008

Я думаю, что вам лучше всего снять ограничение, загрузить данные, затем очистить их и повторно применить ограничение.

0 голосов
/ 20 октября 2008

Используйте оператор выбора, чтобы выбрать именно те данные, которые вы хотите вставить, без дубликатов.

Используйте это как основу для CREATE TABLE XYZ AS SELECT * FROM (query-just-non-dupes)

Вы можете проверить ASKTOM идеи о том, как выбрать неповторяющиеся строки

0 голосов
/ 19 октября 2008

Это то, что я собирался сделать, но беспокоился о производительности избавления от 30 миллионов случайно размещенных строк в базе данных с 300 миллионами записей. Дублирующиеся данные также имеют пространственную взаимосвязь, поэтому я хотел попытаться исправить проблему при загрузке данных, а не после того, как все они были загружены.

...