Который вставляет быстрее, поле XML или Varchar (макс.) поле?

У нас есть таблица истории, которая хранит xml запросы к веб-сервису и ответы. В настоящее время это хранит их в поле XML, но у нас есть проблемы производительности со вставками. Мы только вставляем записи, никакие обновления, выбирает или удаляет. Мы имеем усеченный таблица и восстановили индекс, напрасно. Таблица имеет Основной кластерный индекс на поле идентификационных данных и значение по умолчанию, GetDate (), на поле даты и времени. Мы выполняем Сервер SQL 2005, но база данных находится в режиме эмуляции SQL 2000.

Если бы мы изменяем тип поля от XML до VarChar (макс.) или VarChar (xxx), это ускорило бы вставки? Есть ли что-либо еще, на что мы должны смотреть?

Спасибо.

5
задан Jim 6 May 2010 в 15:38
поделиться

2 ответа

varchar работает быстрее - синтаксический анализ не требуется. Тип данных XML выполняет довольно тяжелую внутреннюю работу.

3
ответ дан 14 December 2019 в 01:03
поделиться

Это зависит от того, в чем заключается проблема производительности.

  • Если проблема связана с процессором, то проверка XML может быть фактором, и varchar(max) может быть быстрее.
  • Если проблема связана с IO, то сжатое хранение XML лучше, чем свободный формат nvarchar(max), и вы потеряете в производительности.
  • С другой стороны, если проблемные фрагменты XML малы, то хранение varchar дает возможность хранения в ряду и может быть лучше, чем XML
  • С другой стороны, хранение в ряду уменьшит плотность строк листовых страниц и вызовет проблемы с производительностью при чтении.
  • Если проблема не в CPU и не в IO, а в борьбе за блокировку, то вопрос XML vs. varchar является ортогональным к проблеме производительности. То же самое относится и к проблеме блокировки страниц в горячих точках вставки. И опять же, то же самое относится к проблеме производительности при промывке журнала. Все они будут проявляться как "медленные вставки" (при определенном определении медленных), и ни одна из них нисколько не изменится от замены XML на varchar.

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

6
ответ дан 14 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: