Извлечь 2% данных из базы данных SQL Server - PullRequest
0 голосов
/ 13 августа 2010

Размер нашей производственной базы данных составляет 25 ГБ (приблизительно) и 700 таблиц, я просто хочу импортировать около 2% данных для каждой таблицы в моей локальной базе данных для целей разработки / тестирования ... (данные должны быть импортированыспособ сохранения ограничения внешнего ключа) ???

Ваши комментарии и предложения будут тепло приветствоваться !!!

Ответы [ 2 ]

1 голос
/ 13 августа 2010

Вы не найдете полностью автоматизированного способа сделать это.Структура и бизнес-правила вашей базы данных потребуются для того, чтобы определить, как уменьшить данные.

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

Для того, чтобы реально выполнить импорт / экспорт данных.Я бы на самом деле подумал о том, чтобы сделать резервную копию и копию базы данных, а затем выполнить кучу операторов delete, пока она не достигнет необходимого вам размера.Затем реорганизация, сжатие и резервное копирование для локального восстановления.

0 голосов
/ 13 августа 2010

Как и в случае с Робином, удаление намного проще, чем выборочные вставки с помощью сценариев

Если у вас есть RI и нет каскадного удаления, вы можете легко работать в обратном направлении с вложенными критериями

Startс этого пути ...

1

delete from table1 where table1PK IN
(somecriteria for table1 deletion)

2

delete from table2 where table2PK in
(select table2PK from table2 where
table1PK in (somecriteria for table1 deletion) -- same as above
) 

- и т. д. ... продолжить вложение в дерево

, нозатем, когда вы запускаете удаление, очевидно, вам нужно изменить порядок удаления на

N .. 2 .. 1

Это может быть много работы для 700 таблиц, нообычно большая часть данных находится в нескольких таблицах - вам просто нужно сосредоточиться на больших таблицах?

HTH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...