Я вижу огромный успех в нашем корпоративном приложении при изменении коллекции XML-схемы данного столбца на большой таблице. Упрощенно говоря, мы делаем что-то вроде этого:изменение коллекции схем xml - огромный успех.
ALTER TABLE HugeTable ALTER COLUMN CustomFields XML
(примечание: CustomFields ранее был связан с XML (CustomFieldsSchemaCollection, но, конечно, нам нужно изменить, что XML-схемы, так что нам нужно это заявление так, что эта схема может быть изменен)
, а затем, после изменения CustomFieldSchemaCollection, мы делаем это:.
ALTER TABLE HugeTable ALTER COLUMN CustomFields XML(CustomFieldSchemaCollection)
Первое утверждение занимает 8 минут, а второй оператор занимает 10 минут
Мы обнаружили, что может немного оптимизировать первое утверждение (50% прирост производительности), используя следующий:
ALTER TABLE HugeTable ALTER COLUMN CustomFields nvarchar(max)
Эффекта является то, что первым оператор занимает 4 минуты, а второе утверждение занимает 10 (так, 14 мин, с 18).
линия вопрос Низ ... Есть ли способ сделать это «XML-схемы повторного связывания» (или что один называет его) таким образом, чтобы избежать совершенно ненужной и избыточную проверку в SQL Server каждого значения в колонке? (Примечание: да, мы можем с уверенностью предположить, что существующие XML-данные в этой таблице будут соответствовать новой коллекции схем xml.)
Спасибо всем, кто может помочь!
, если это изменение на один раз, что с ним связано? 15-20 минут? –
KM: отличный вопрос! это часть процесса обновления. к сожалению, на даже полу-больших базах данных это занимает много времени - и приводит к неудачным обновлениям (ошибкам таймаута). Как компания, мы пытаемся отойти от решения «просто увеличить пороговое значение времени ожидания», так как это слишком сильно укусило нас в прошлом. – Garrett