Вызывают ли ограничения SQL медлительность? - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть несколько ограничений (по умолчанию значение столбца) на обновляемую таблицу. Обновление очень медленное, и мне было интересно, может ли это быть ошибка ограничений?

Рассматриваемое ограничение:

ALTER TABLE [dbo].[OrderCustomers] ADD  CONSTRAINT [DF_OrderCustomers_AmountTotal]  DEFAULT ((0.00)) FOR [AmountTotal]

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

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

Ответы [ 2 ]

5 голосов
/ 27 сентября 2011

Маловероятно, что ограничение по умолчанию для столбца будет даже заметно. Есть так много вещей, которые могут вызвать медленное обновление. Однако первое, на что я бы обратил внимание - это любые триггеры на обновляемой таблице. Это может привести к целому ряду проблем с производительностью.

Один из лучших способов диагностировать это - запустить SQL Profiler и посмотреть, что происходит на вашем SQL Server, когда вы делаете обновление. Вы можете быть очень удивлены тем, что происходит.

4 голосов
/ 27 сентября 2011

Если вы не очень плохо их кодировали, то нет.

Под "плохим" я подразумеваю такие вещи, как UDF, для доступа к таблице для генерации значения.Или отправка электронного письма RBAR в триггере.

Медленная запись может быть вызвана многими причинами.Я сомневаюсь в ограничениях.См. Почему ОБНОВЛЕНИЕ занимает намного больше времени, чем ВЫБОР?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...