Я использую простую таблицу с 6 столбцами, 3 из которых имеют тип XML, а не с ограничениями схемы. Когда таблица достигает размера около 120 000 или 150 000 строк, я вижу значительную стоимость исполнения при выполнении любого запроса в таблице. Для сравнения у меня есть другая таблица, которая растет в размере примерно с той же скоростью, но содержит только скалярные типы (int, datetime, несколько столбцов float). Эта таблица отлично работает даже после 200 000 строк. И, кстати, я не использую XQuery в столбцах xml, я использую только обычные запросы SQL-запросов.Влияние производительности при использовании столбцов XML в таблице с MS SQL 2008
Некоторые особенности: обе таблицы содержат поле DateTime, называемое SampleTime. заявление как (это в хранимой процедуре, но я покажу вам фактическое заявление)
SELECT MAX(sampleTime) SampleTime
FROM dbo.MyRecords
WHERE [email protected]
занимает 0 секунд на столе без XML-столбцов, и все, что от 13 до 20 секунд на столе со столбцами XML. Это зависит от того, на каком диске я устанавливаю свою базу данных. На данный момент он сидит на другом шпинделе (не C :) и занимает 13 секунд.
Кто-нибудь видел это поведение раньше или имел какой-либо намек на то, что я делаю неправильно? Я пробовал это с SQL 2008 EXPRESS и полномасштабным SQL Server 2008, который не имел никакого значения. О, одна последняя деталь: я делаю это из приложения C#, .NET 3.5, используя SqlConnection, SqlReader и т. Д.
Буду признателен за понимание этого, спасибо!
Сэм
Производительность улучшилась, когда я помещаю указатель на два столбца, которые я использую для поиска в таблице. Спасибо! –