Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Оптимизация UPDATE  [new]
andMegaM
Member

Откуда: ***
Сообщений: 474
Имеется таблица товаров, в ней более 1млн. записей.
Нужно заменить поле flag на NULL
простой вроде запрос
UPDATE  Tovar SET Flag = NULL  WHERE Flag IS NOT NULL


Позиций с Flag IS NOT NULL примерно 35000

Запрос выполняется очень долго.
Можно ли как-то ускорить выполнение запроса?
4 апр 12, 15:35    [12365068]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация UPDATE  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Сделать фильтрованный индекс по Flag IS NOT NULL.
4 апр 12, 15:40    [12365106]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация UPDATE  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3755
andMegaM
Имеется таблица товаров, в ней более 1млн. записей.
Нужно заменить поле flag на NULL
простой вроде запрос
UPDATE  Tovar SET Flag = NULL  WHERE Flag IS NOT NULL


Позиций с Flag IS NOT NULL примерно 35000

Запрос выполняется очень долго.
Можно ли как-то ускорить выполнение запроса?

конкретно этого - легко
drop column Flag
add column Flag
Нулловая колонка бобавляется мгновенно. Удаляется тоже мгновенно
4 апр 12, 16:02    [12365295]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация UPDATE  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
Гавриленко Сергей Алексеевич
Сделать фильтрованный индекс по Flag IS NOT NULL.
В таком запросе, думаю, проблема не в поиске записей, а в апдейе большого количества случайно разбросанных страниц.

Хотя нужно экспериментировать...
4 апр 12, 16:05    [12365322]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация UPDATE  [new]
andMegaM
Member

Откуда: ***
Сообщений: 474
Ivan Durak
andMegaM
Имеется таблица товаров, в ней более 1млн. записей.
Нужно заменить поле flag на NULL
простой вроде запрос
UPDATE  Tovar SET Flag = NULL  WHERE Flag IS NOT NULL


Позиций с Flag IS NOT NULL примерно 35000

Запрос выполняется очень долго.
Можно ли как-то ускорить выполнение запроса?

конкретно этого - легко
drop column Flag
add column Flag
Нулловая колонка бобавляется мгновенно. Удаляется тоже мгновенно


Один из индексов, содержащий данное поле, не позволяет делать DROP Column flag
4 апр 12, 17:13    [12365984]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация UPDATE  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3755
andMegaM,
ну проблемы индексов шерифа не волнуют
4 апр 12, 17:22    [12366072]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация UPDATE  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
andMegaM
Ivan Durak
пропущено...

конкретно этого - легко
drop column Flag
add column Flag
Нулловая колонка бобавляется мгновенно. Удаляется тоже мгновенно


Один из индексов, содержащий данное поле, не позволяет делать DROP Column flag
Понятно, то есть ещё и индексы обновляются :-(
4 апр 12, 18:20    [12366564]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить