我正在使用一個包含6列的簡單表,其中3個屬於XML類型,不受模式約束。 當表達到大約120,000或150,000行的大小時,我發現在表中執行任何查詢都會產生巨大的性能成本。爲了比較,我有另一個表,它的大小以相同的速度增長,但只包含標量類型(int,datetime和幾個浮點列)。即使在200,000行之後,該表格的表現仍然很好。 順便說一句,我沒有在xml列上使用XQuery,我只使用常規的SQL查詢語句。在MS SQL 2008的表中使用XML列時對性能的影響
一些細節:這兩個表都包含一個名爲SampleTime的DateTime字段。 像一個聲明(這是在存儲過程,但我告訴你實際的語句)
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等這樣做。
我想感謝一些洞察,謝謝!
山姆
當我將索引放在我用來搜索表格的兩列時,性能有所提高。 謝謝! – 2010-06-11 21:18:22