|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
Всем привет. Подскажите, будет ли разница, если я: 1. Создам новое поле c NULL значением на таблице, заполню его значениями и начну строить по этому полю индекс. 2. Создам новое поле c NULL значением на таблице, создам индекс по пустому полю, а потом начну заполнять это поле. Смогу ли я избежать длинной блокировки таблицы используя второй вариант или сиквелу все равно придется сканить все строки и разницы в длине блокировки между этими вариантами не будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 11:55 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
teCa, Версия 2016St ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 11:57 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
Вроде как рекомендуют сначала заполнить, а потом строить индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 12:17 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
teCa, на Enterprise можно использовать ONLINE построение индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 12:34 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
Владислав Колосов teCa, на Enterprise можно использовать ONLINE построение индекса. teCa Смогу ли я избежать длинной блокировки таблицы используя второй вариант или сиквелу все равно придется сканить все строки и разницы в длине блокировки между этими вариантами не будет? Если онлайн-индексация недоступна, а длительное отключение запрещено, то это безальтернативный вариант. Хоть месяц заполняйте. Как то переделывал многотерабайтную таблицу, что то типа ПК с гуида на инт, без прерывания работы сервиса. И ничего, за месяц отработало, без пострадавших юзеров :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 20:46 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
alexeyvg, Разумеется, заполнять поля я буду порциями, меня интересует, если я перед заполнением построение индекса запущу, он быстро построится или все равно залочит всю таблицу целиком и будет сканировать все строки в таблицу, невзирая на то, что мы то знаем, что все поля пустые, сиквел этого при построении индекса не будет же знать или будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 00:40 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
teCa, Грубо говоря, если я запущу построение индекса по полю, в котором 500млн NULL, индекс быстро построится?) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 00:48 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
teCa, Во втором случае блокировка будет минимальной. Когда добавляется столбец в котором допускается NULL, то фактически строки не изменяются. А создающийся вслед за этим индекс (только из этого ключевого поля и без инклюдов) создаст кратковременную блокировку. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 01:01 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
teCa Грубо говоря, если я запущу построение индекса по полю, в котором 500млн NULL, индекс быстро построится?) Не быстрее чем обычно. А вот обновление потребует внесения изменений в таблицу и индекс ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 01:28 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
teCa alexeyvg, Разумеется, заполнять поля я буду порциями, меня интересует, если я перед заполнением построение индекса запущу, он быстро построится или все равно залочит всю таблицу целиком и будет сканировать все строки в таблицу, невзирая на то, что мы то знаем, что все поля пустые, сиквел этого при построении индекса не будет же знать или будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 14:57 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
Mr. X teCa, Во втором случае блокировка будет минимальной. Когда добавляется столбец в котором допускается NULL, то фактически строки не изменяются. А создающийся вслед за этим индекс (только из этого ключевого поля и без инклюдов) создаст кратковременную блокировку. пункт 1 верный, пункт 2 полный бред. у ТС Стандард, никаких онлайновых индексов. и на все время построения индекса таблица будет недоступной. а читать придется ровно те же строки, если их 400Гб, то все 400Гб, хоть там и все наллы в нужном поле. так что никакой вам "кратковременной блокировки". ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 15:47 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
На стандарте сервер не может работать 24/7, покупайте для этого Enterprise. Иначе планируйте время на регламентное обслуживание. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 16:26 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
Владислав Колосов На стандарте сервер не может работать 24/7, покупайте для этого Enterprise. Иначе планируйте время на регламентное обслуживание. он вроде не о покупке Энтерпраиза спрашивал, а авторили все равно залочит всю таблицу целиком и будет сканировать все строки в таблицу, невзирая на то, что мы то знаем, что все поля пустые, сиквел этого при построении индекса не будет же знать или будет? ответ: мы-то знаем, а сканироваться будет вся таблица. ему пофиг, чем вы там заполняли, его, возможно, смог бы убедить check constraint, не позволяющий писать неналлы в это поле, но только трастед. a получить трастед чек это тоже залочить таблицу на все время проверки ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 16:36 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
Yasha123 ответ: мы-то знаем, а сканироваться будет вся таблица. ему пофиг, чем вы там заполняли, его, возможно, смог бы убедить check constraint, не позволяющий писать неналлы в это поле, но только трастед. a получить трастед чек это тоже залочить таблицу на все время проверки не смог бы. в любом случае, для построения некластерного индекса потребуется значение ключа кластерного всех строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 16:39 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
msLex в любом случае, для построения некластерного индекса потребуется значение ключа кластерного всех строк. Впрочем, для понимания, как следует писать запросы, разницы нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 16:48 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
alexeyvg msLex в любом случае, для построения некластерного индекса потребуется значение ключа кластерного всех строк. Впрочем, для понимания, как следует писать запросы, разницы нет. хмм, как вы себе представляете индекс, в котором нет никакой ссылки на данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 16:56 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
msLex в любом случае, для построения некластерного индекса потребуется значение ключа кластерного всех строк. да уж. хоть RID, хоть ключ кластерного, обратная связь должна быть, все верно. а раз вы тут, может, ответите про фильтрованный индекс? сейчас создам тему ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 16:58 |
|
Новое поле и новый индекс на большую таблицу?
|
|||
---|---|---|---|
#18+
msLex alexeyvg пропущено... "потребуется" в данном случае особенность реализации, а не объективная необходимость. Впрочем, для понимания, как следует писать запросы, разницы нет. хмм, как вы себе представляете индекс, в котором нет никакой ссылки на данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 18:10 |
|
|
start [/forum/topic.php?fid=46&msg=40011269&tid=1685504]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 288ms |
total: | 405ms |
0 / 0 |