Что вставляет быстрее, поле XML или поле Varchar (max)? - PullRequest
5 голосов
/ 06 мая 2010

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

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

Спасибо.

Ответы [ 2 ]

6 голосов
/ 06 мая 2010

Зависит от проблемы производительности.

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

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

3 голосов
/ 06 мая 2010

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

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