Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / один или несколько update? / 3 сообщений из 3, страница 1 из 1
19.01.2002, 06:16
    #32021036
Dimanch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
один или несколько update?
Есть таблица, которая содержит, скажем так, достаточно большое количество строк. Эта таблица участвует во многих запросах и при многих операциях. Необходимо пересчитать один из столбцов этой таблицы. Вопрос состоит в том, обновлять ли всю таблицу одним 'update' или использовать множество 'update'?
...
Рейтинг: 0 / 0
20.01.2002, 07:22
    #32021044
Replicant
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
один или несколько update?
Все зависит от того как надо пересчитать, но вобщем возможны варианты:

* Один, но ДООООООЛГИЙ "update":
если 1 транзакция (если очень много строк, то transaction log может серьезно вырасти),
к-рую всю можно потом откатить без проблем даже если строки апдейтились
в зависимости от значений других строк(хотя в таких случаях пользуются курсорами),
если без курсора, то можно надолго заблокировать всю таблицу

* Много, но КОРОТКИХ "update'ov":
если поумолчанию (autocommit), то откатить строку назад уже нельзя(если строка может быть
изменена только для конкертных значений,то данный вариант не подходит),
зато блокируется только одна строка
если все в пределах 1 транзакции, то разницы никакой нет - все равно что один ДООООООЛГИЙ "update"

Удачи
...
Рейтинг: 0 / 0
20.01.2002, 14:34
    #32021051
один или несколько update?
Я так понимаю, что ты говоришь про обновление обязательно в рамках одной транзакции?
Тогда только один UPDATE with(rowlock).
Один совет - Иногда может помочь расчёт нового значения столбца (или его дельты) вынести в отдельную операцию (вставка в переменную-таблицу), для максимального ускорения самого UPDATE.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / один или несколько update? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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