Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как быстрее вставить столбец в огромную таблицу / 9 сообщений из 9, страница 1 из 1
29.10.2002, 10:00:02
    #32062541
Пашка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстрее вставить столбец в огромную таблицу
Посоветуйте.
Табличка 9 млн. строк, есть уникальный составной индекс по 5 полям и пара внешних ключей.
Надо добавиь столбец. Не ключевой, обычный столбик.
Если добавляю через EM - делается ОЧЕНЬ долго и лог растет очень сильно. В общем, тяжело получается.
Нет ли идей, как можно вставить столбец похитрее, а? :)
...
Рейтинг: 0 / 0
29.10.2002, 10:05:49
    #32062544
dao
dao
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстрее вставить столбец в огромную таблицу
Изменение структуры таблицы - разовая операция.При этом производиться куча работы.Если это надо сделать один раз - то ничего потерпишь :)).А если ... впрочем никакого если не должно быть!Иначе чего-то у вас с логикой приложения ни так...
...
Рейтинг: 0 / 0
29.10.2002, 10:16:48
    #32062549
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстрее вставить столбец в огромную таблицу
Если добавляю через EM - делается ОЧЕНЬ долго и лог растет очень сильно

А что, вы наверное добавляете столбец с default значением ?
Если так, то все равно, что после добавления столбца запустить UPDATE для всех 9 млн. записей.
Попробуйте добавть столбец с allow nulls

Или если добавляете столбец куда-нибудь в середину, т.е. меняете порядок следования столбцов. Такая операция происходит вообще через временную таблицу, куда копируется все содержимое оригинальной таблицы.
...
Рейтинг: 0 / 0
29.10.2002, 10:59:46
    #32062585
Пашка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстрее вставить столбец в огромную таблицу
2dao: Конечно разовая операция, конечно потерплю, но ведь всегда хочется все сделать поотимальнее :)

2Glory: Не, добавляю я с Allow Null, конечно, но не совсем в конец... В конец будет быстрее? Спасибо, ща попробую!
...
Рейтинг: 0 / 0
29.10.2002, 11:31:20
    #32062603
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстрее вставить столбец в огромную таблицу
а recovery model в simple переключить чтобы лог не дергать?
...
Рейтинг: 0 / 0
29.10.2002, 11:31:46
    #32062604
AAron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстрее вставить столбец в огромную таблицу
EM перед сохранением позволяет посмотреть скрипт, который будет использован для изменения таблицы. Я бы посоветовал его просмотреть. Как правило (и Glory это уже говорил) EM создает отдельную таблицу, куда вливает все данные, затем удаляет / переименовывает. К тому же еще снимает / накладывает ограничения и индексы. Возможно при использовании ALTER TABLE из QA это произойдет намного быстрее
...
Рейтинг: 0 / 0
29.10.2002, 11:39:41
    #32062612
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстрее вставить столбец в огромную таблицу
Наверное имеет смысл представлять как на сервере хранятся данные.

Сначала идут колонки, которые имеют фиксированный размер (int, char). Затем колонки, имеющие нефиксированный размер (varchar, все колонки которые могут иметь значеине null). Если поле имеет значение null, то оно вообще не записывается. Так что по идее если к таблице добавляется колонка, которая может содержать null, то в данных никаких изменений происходить не должно - только в заголовке.

Это я про 6.5 читал, вряд что-то принципиально изменилось
...
Рейтинг: 0 / 0
29.10.2002, 12:11:52
    #32062642
Пашка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстрее вставить столбец в огромную таблицу
Recovery Model конечно в Simple, но лог то все равно растет, куды ж ему деваться :)

А насчет просмотра скрипта перед сорхранением таблицы - очень спасибо, что-то мне это в голову и не пришло, интересно посмотреть как он там столбцы вставляет!
...
Рейтинг: 0 / 0
29.10.2002, 12:23:51
    #32062648
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстрее вставить столбец в огромную таблицу
Попробуйте через ALTER TABLE table ADD field varchar(10).

EM делает через копирование таблицы.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как быстрее вставить столбец в огромную таблицу / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]