Как «разбавить» таблицу базы данных? - PullRequest
1 голос
/ 09 июня 2009

У меня есть большая таблица БД, которую я использую для тестирования. Он содержит 7,3 млн записей телефонных звонков. Я хотел бы удалить многие из них, но при этом сохранить хороший разброс по номерам телефонов и датам. Есть ли способ достичь этого? Может быть, что-то делать с table sample?

Ответы [ 2 ]

6 голосов
/ 09 июня 2009

Удалить, где идентификатор заканчивается на 1 или 6? Или подобное, в зависимости от того, сколько именно вам нужно удалить.

т.е. чтобы сохранить только 10% записей для тестирования, удалите все записи, которые не заканчиваются (скажем) 7.

(Обратите внимание, что такое удаление может занять некоторое время. Возможно, вам лучше создать CREATE TABLE AS только с нужными вам записями.)

3 голосов
/ 09 июня 2009

Скопируйте данные, которые вы хотите сохранить:

ВЫБРАТЬ ТОП 1000 * В dbo.Buffer FROM Data.Numbers ЗАКАЗАТЬ ПО NewID ()

Удалить все данные:

TRUNCATE TABLE Data.Numbers

Переместить назад сохраненные данные

INSET INTO Data.Numbers (список столбцов) SELECT FROM dbo.Buffer

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