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

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

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

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

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

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

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

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


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