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

Откуда: SPB
Сообщений: 954
Добрый день. Имеется табличка с порядка 5 млн. строк. На ней кластерный индекс и несколько некластерных
Периодически необходимо обновлять 1 поле в ней. Это поле не входит в кластерный индекс, однако попадает в несколько некл.инд.
Поиск идет по класт.индекс. За сутки необходимо обновить порядка 1млн. строк в 1 поле.
Возник вопрос. Как правильно провести обновление. Размазать равными порциями в течении дня, часа итд. или большими порциями обновлять, но как можно реже. Таблица активно используется в других запросах.
Модель Full. Сервер 2014 ентерпрайз.
Спасибо
17 сен 15, 11:26    [18159696]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
RasimS
Добрый день. Имеется табличка с порядка 5 млн. строк. На ней кластерный индекс и несколько некластерных
Периодически необходимо обновлять 1 поле в ней. Это поле не входит в кластерный индекс, однако попадает в несколько некл.инд.
Поиск идет по класт.индекс. За сутки необходимо обновить порядка 1млн. строк в 1 поле.
Возник вопрос. Как правильно провести обновление. Размазать равными порциями в течении дня, часа итд. или большими порциями обновлять, но как можно реже. Таблица активно используется в других запросах.
Модель Full. Сервер 2014 ентерпрайз.
Спасибо


если не секционированная, то порциями по < 5000 штук (lock escalation threshold)
17 сен 15, 12:14    [18160038]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
секционированная там же млн, а не млрд.
17 сен 15, 12:17    [18160069]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
edyaN
Member

Откуда:
Сообщений: 185
вы не указали вашу проблему.
Почему нельзя обновить все записи сразу?
17 сен 15, 12:21    [18160093]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
RasimS,

Сначала надо ответить на другой другой вопрос. А что в этот момент с этой таблицей делают другие транзакции?

Есть разные сценарии подходящие в разных ситуациях.

Например, можно ночью, когда активность нулевая, вообще заблокировать таблицу, задисейблить индексы, замерджить данные и включить/перестроить индексы.

Либо надо аккуратно небольшими порциями делать обновления, чтобы не мешать другим транзакциями.
17 сен 15, 12:23    [18160119]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
RasimS
Member

Откуда: SPB
Сообщений: 954
edyaN,
Да проблем пока еще нету. )
17 сен 15, 12:29    [18160163]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
RasimS
Member

Откуда: SPB
Сообщений: 954
a_voronin
RasimS,

Сначала надо ответить на другой другой вопрос. А что в этот момент с этой таблицей делают другие транзакции?

Есть разные сценарии подходящие в разных ситуациях.

Например, можно ночью, когда активность нулевая, вообще заблокировать таблицу, задисейблить индексы, замерджить данные и включить/перестроить индексы.

Либо надо аккуратно небольшими порциями делать обновления, чтобы не мешать другим транзакциями.


Из это таблицы активно читают другие данные.
Вот я думаю какой вариант выбрать.
1 ночью все за раз
2 частично небольшими порциями.
17 сен 15, 12:31    [18160174]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
edyaN
Member

Откуда:
Сообщений: 185
RasimS
edyaN,
Да проблем пока еще нету. )

Решайте проблемы по мере поступления. Если вы хотите предотвратить возможную проблему, вы должны убедиться в неизбежности ее наступления.
Для того чтобы дать вам совет как решить проблему, которой нет, вы дали слишком мало данных. Какая нагрузка на таблицу/базу/сервер/диски, есть ли часы для регламентных работ, насколько большая таблица в байтах?
Я недавно тоже большой update делал, так у меня шаги были по 5 млн. Но можно ли применить этот опыт к вашему случаю?
17 сен 15, 12:43    [18160296]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
invm
Member

Откуда: Москва
Сообщений: 9402
RasimS
Из это таблицы активно читают другие данные.
Если работаете на read committed, включите у БД RCSI и обновлятели перестанут мешать читателям.
17 сен 15, 12:46    [18160318]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
RasimS
Member

Откуда: SPB
Сообщений: 954
edyaN,
Попробую обновлять порциями.
17 сен 15, 18:06    [18162518]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
edyaN
Member

Откуда:
Сообщений: 185
а какие аргументы против решения от invm?
на мой взгляд оно самое разумное. Тогда можете обновлять когда угодно и как угодно.
17 сен 15, 18:36    [18162639]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
ты заходи если че
Guest
RasimS
edyaN,
Попробую обновлять порциями.

че приходил-то? ))
17 сен 15, 18:54    [18162695]     Ответить | Цитировать Сообщить модератору
 Re: Правильный update. Много и редко или Часто и мало  [new]
Mike_za
Member

Откуда: Москва
Сообщений: 1176
А что за задача вообще? Опишите логику поподробней
17 сен 15, 21:13    [18163100]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить