Как быстрее заполнить базу MSSQL?

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Как быстрее заполнить базу MSSQL?

Сообщение tyomitch » 05.07.2006 (Ср) 14:38

Есть база с кучей индексов. В тестовых целях её надо набить случайным мусором до размера в 5Гб.
Забивается уже час, забилось пока на 5%.
У меня возникла идея, что если снести индексы на время заполнения базы, а потом их повесить обратно, то может выйти быстрее.
Выйдет или не выйдет?
Изображение

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 05.07.2006 (Ср) 15:08

Должно быть значительно быстрее. Я всегда перед массовым переносом/копированием данных удаляю индексы. По завершении создаю их по-новой и обновляю статистику. Правда все это под Sybase'ом, но я думаю в данном случае это не принципиально.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.07.2006 (Ср) 15:19

Удалил индексы, заполнение пошло быстрее раз в шесть.
Остаётся надеяться, что добавление индексов в заполненную базу займёт потом меньше суток :-)
Изображение

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 05.07.2006 (Ср) 17:28

tyomitch писал(а):Остаётся надеяться, что добавление индексов в заполненную базу займёт потом меньше суток :-)

Это смотря сколько у тебя индексов. Мне встречалась одна БД, в которой индексных страниц было больше, чем страниц с данными, раза в полтора. Как раз тот случай, когда при повышении нагрузки первыми начинают валиться инсерты...

Если же данные к индексам по объему относятся хотя бы 2:1, то довольно быстро. На среднем сервере БД в 5 гиг... ну, меньше часа навскидку, но конечно очень сильно зависит от дискового контроллера и собственно дисков. На каком-нить АТА/100 даже боюсь представить, сколько может занять :).

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 05.07.2006 (Ср) 17:50

Ennor писал(а):На среднем сервере БД в 5 гиг... ну, меньше часа навскидку, но конечно очень сильно зависит от дискового контроллера и собственно дисков. На каком-нить АТА/100 даже боюсь представить, сколько может занять :).

Эт точно. После смены сервера и, соответсвенно, RAID-контроллера скорость работы нашей БД возрасла раза в 2-3. Имею в виду скорость выполнения процедур переноса данных (с удалением и пересозданием индексов) и создания дампа, хотя юзера тоже заметили улучшения.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.07.2006 (Чт) 12:35

Обычный писюк с обычным АТА/100-диском.
Объём индексов грубо оцениваю как 20%
Действительно, заняло меньше часа: 54 минуты. Ура :-)
Изображение


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList