Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
Добрый день всем. Можете помочь с проблемой долгого добавления колонки в табличку с 24 млн записей, ограничением NOT NULL и дефолтным значением '' ? SQL Server 2016 Погуглил, сходу ничего простого не нашлось. Только сложные варианты http://qaru.site/questions/109057/how-do-you-add-a-not-null-column-to-a-large-table-in-sql-server Я раньше работал с ораклом, там в 9-й версии была такая же проблема. Начиная с версии 10 добавление происходит очень быстро, буквально за секунды. Как пояснял мне админ, там при добавлении столбца с ограничением NOT NULL и дефолтным значением, значением не пишется во все записи, а хранится в определении таблички и из-за этого удается достичь такого ускорения. Это было очень удобно. Я подумал, неужели в SQL Server к 2016-й версии не изобрели что-то аналогичное ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 12:34 |
|
||
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
Павел677, версия конкретно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 12:35 |
|
||
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
не важно, только в enterprise авторStarting with SQL Server 2012 (11.x) Enterprise Edition, adding a NOT NULL column with a default value is an online operation when the default value is a runtime constant. This means that the operation is completed almost instantaneously despite the number of rows in the table. Because, the existing rows in the table aren't updated during the operation. Instead, the default value is stored only in the metadata of the table and the value is looked up, as needed, in queries that access these rows. This behavior is automatic. No additional syntax is required to implement the online operation beyond the ADD COLUMN syntax. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 12:43 |
|
||
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
Павел677, а куда вы торопитесь? Речь-то, всё-таки, идёт о разовом изменении структуры. Пока вы ждёте здесь ответа, поле в таблицу уже давно бы добавилось, а? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 12:43 |
|
||
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
select @@version выдает Microsoft SQL Server 2016 (SP2-CU5) (KB4475776) - 13.0.5264.1 (X64) Jan 10 2019 18:51:38 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) (Hypervisor) Запрос думал 726 секунд. Но это похоже и-за того что сервак мощный. На деве/тесте будут слезы на 1-2 часа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 12:44 |
|
||
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
[quot TaPaK]не важно, только в enterprise Спасибо за отклик. Попробовал с той же табличкой в Enterprise версии, все сработало мгновенно. Не ожидал такой подставы. Вопрос закрыт. P.S. А для стандарт версии есть какие-нить обходные способы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 12:55 |
|
||
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
iapПавел677, а куда вы торопитесь? Речь-то, всё-таки, идёт о разовом изменении структуры. Пока вы ждёте здесь ответа, поле в таблицу уже давно бы добавилось, а? На нашем проекте это не такая редкая ситуация. Плюс в момент таких изменений весь SQL как бы фризится. С ним становится невозможно работать и никто из разработчиков в деве не может работать. В общем, отдел разработки уходит курить на 1-2 часа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 12:57 |
|
||
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
Павел677А для стандарт версии есть какие-нить обходные способы ?Добавить столбец как null. Проапдейтить порциями. Сделать столбец not null А разработчиков перевести на Developer Edition ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 13:04 |
|
||
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
invmПавел677А для стандарт версии есть какие-нить обходные способы ?Добавить столбец как null. Проапдейтить порциями. Сделать столбец not null А разработчиков перевести на Developer Edition +1 Ну или запустить скрипт в джобе ночью, когда ваши разработчики спят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 13:59 |
|
||
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
Павел677iapПавел677, а куда вы торопитесь? Речь-то, всё-таки, идёт о разовом изменении структуры. Пока вы ждёте здесь ответа, поле в таблицу уже давно бы добавилось, а? На нашем проекте это не такая редкая ситуация. Плюс в момент таких изменений весь SQL как бы фризится. С ним становится невозможно работать и никто из разработчиков в деве не может работать. В общем, отдел разработки уходит курить на 1-2 часа. вопрос зачем девам стандарт не ясен :) ну и сервер не для личной разработки желательно лучше калькулятора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 14:03 |
|
||
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
stiinvmпропущено... Добавить столбец как null. Проапдейтить порциями. Сделать столбец not null А разработчиков перевести на Developer Edition +1 Ну или запустить скрипт в джобе ночью, когда ваши разработчики спят.Вот, например, у нас если спят в Москве, то работать начинают где-нибудь в Америке. Или на Дальнем Востоке. Разные бывают ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 14:12 |
|
||
|
Быстро добавить колонку в большую табличку SQL Server 2016 с дефолтным значением
|
|||
|---|---|---|---|
|
#18+
iapstiпропущено... +1 Ну или запустить скрипт в джобе ночью, когда ваши разработчики спят.Вот, например, у нас если спят в Москве, то работать начинают где-нибудь в Америке. Или на Дальнем Востоке. Разные бывают ситуации. тогда страдать должны те, чьё рабочее время дешевле. или те, у кого производительность ниже это если исключить более разумные варианты :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2019, 14:42 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39817015&tid=1687796]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 410ms |

| 0 / 0 |
