powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Продолжительнй ALTER TABLE
21 сообщений из 21, страница 1 из 1
Продолжительнй ALTER TABLE
    #39623291
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приветствую

Имеется таблица с большим кол-вом записей приблизительно 210М.

Код: sql
1.
2.
ALTER TABLE <table> 
ADD <column> AS MONTH(<date_column>) PERSISTED; 


вІьполняется около двух часов.

Вопрос: есть ли возможность ускорить ?

на таблице 2-а индекса.

В доках не нашел упоминания что если дропнуть индексІь, перед добавлением то ето повлият на скорость
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623292
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_human,

а проставить ваши 210М должно мигом?
после дропа индекса его прийдётся ещё и создавать
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623294
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно было сначала новую таблицу сделать, перелить данные в неё из старой, дропнуть старую, а потом переименовать новую
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623298
Фотография Knyazev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
альтернатива:
1) создать поле NULL
2) посчитать его порциями
3) повесить логику вычисления MONTH(<date_column>) на триггер
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623304
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

ситуация такая что индексьІ будут дропрутьІ позже, но как я понимаю ето не поможет.
Konst_Oneнужно было сначала новую таблицу сделать, перелить данные в неё из старой, дропнуть старую, а потом переименовать новую

хм, имеете ввиду SELECT *, MONTH(<date_column>) INTO <new TABLE> FROM ... ?
не вижу как ето ускорит
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623307
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не будет мешать работе основной системы
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623310
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_human,

индексы вообще не причём. Серверу надо сохранить все значения.
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623314
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneэто не будет мешать работе основной системы
идею понял, но тут не тот случай.
Knyazev Alexey2) посчитать его порциями
3) повесить логику вычисления MONTH(<date_column>) на триггер
а можете чуть делальнее ?
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623317
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_human,

вы с какой целью добавляете PERSISTED
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623318
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

partitioning
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623350
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_human,

А чем 2 часа плохо? Один раз можно и подождать.
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623359
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

Так и будет если ничего бьІстрее не напишу
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623415
AlanDenton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_humanpartitioning
Не хочу тупить в пятницу, но разве нужно чтобы вычисляемое поле было PERSISTED, чтобы могло участвовать в функции секционирования?

И почему не подсунуть в функцию секционирования поле DATETIME, а не плодить еще один столбец? Который еще и будет ложить в одну секцию данные с разных годов (март 2017, март 2018).
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623417
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlanDenton,


AlanDentonНе хочу тупить в пятницу
ну ето как бьІ закон давньІм давно

Да, поле должно бьІть PERSISTED.

AlanDentonИ почему не подсунуть в функцию секционирования поле DATETIME
Потому что только 12 кусков. + не нужно постоянно поддерживать парт. ф-ию

+Целевая таблица не хранит и не будет хранить исторических данньІх
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623420
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlanDenton_humanpartitioning
Не хочу тупить в пятницу, но разве нужно чтобы вычисляемое поле было PERSISTED, чтобы могло участвовать в функции секционирования?

И почему не подсунуть в функцию секционирования поле DATETIME, а не плодить еще один столбец? Который еще и будет ложить в одну секцию данные с разных годов (март 2017, март 2018).
для самого секционирования не надо, но вопрос как они потом будут работать, ну и последнее предложение в точку
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623421
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_human,

авторну ето как бьІ закон давньІм давно
закон чего? джунглей?
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623424
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Knyazev Alexey,


Knyazev Alexeyальтернатива:
1) создать поле NULL
2) посчитать его порциями
3) повесить логику вычисления MONTH(<date_column>) на триггер

Можете пояснить свое решение ?
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623426
AlanDenton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaKдля самого секционирования не надо
Спасибо. То начал думал, что чего-то таки не знаю. Если раньше на обычном вычисляемом столбце все крутилось.

_human не нужно постоянно поддерживать парт. ф-ию
А не легче нагенерить диапазон на несколько лет вперед и складировать в рамках одной файловой группы?
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623429
_human
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlanDentonА не легче нагенерить диапазон на несколько лет вперед и складировать в рамках одной файловой группы?
нет не лучше.

давайте по теме, если больше предложений нет
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623431
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlanDenton,

не по полю должно быть persisted, но секционировать можно и по существующему полю date_column
...
Рейтинг: 0 / 0
Продолжительнй ALTER TABLE
    #39623437
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_humanAlanDentonА не легче нагенерить диапазон на несколько лет вперед и складировать в рамках одной файловой группы?
нет не лучше.

давайте по теме, если больше предложений нет
быстрого способа нет. Либо проставить целиком, или проставить частями и считать дальше чем угодно.
Второй способ точно не быстрее, но объект не умрёт на время выполнения
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Продолжительнй ALTER TABLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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