我們在我們的數據庫中有一個表,用於將XML存儲在其中一列中。通過Web服務響應收到的一組3種不同XML格式的XML總是採用完全相同的格式。我們需要非常頻繁地在這個表格(和XML字段內)查找信息。這是XML數據類型的糟糕用法嗎?在SQL Server中存儲具有標準結構的XML是否使用了XML數據類型?
我的建議是爲每個不同的XML結構創建單獨的表,因爲我們只談論3,每年可能有一個新表的增長率。
我們在我們的數據庫中有一個表,用於將XML存儲在其中一列中。通過Web服務響應收到的一組3種不同XML格式的XML總是採用完全相同的格式。我們需要非常頻繁地在這個表格(和XML字段內)查找信息。這是XML數據類型的糟糕用法嗎?在SQL Server中存儲具有標準結構的XML是否使用了XML數據類型?
我的建議是爲每個不同的XML結構創建單獨的表,因爲我們只談論3,每年可能有一個新表的增長率。
我想這終究是偏好的問題,但這裏有一些原因,我更喜歡不到這樣的數據存儲在XML領域:在TSQL對XML
編寫查詢很慢。對於少量的數據可能不會太糟糕,但是您一定會注意到數據量很大。
有時需要特殊的邏輯來處理XML blob。如果您將XML直接存儲在SQL中,那麼您會發現自己重複了整個邏輯。我之前曾看到過這樣的情況,那就是把XML寫入一個領域的人早已離開,每個人都想知道如何使用它。有時元素在那裏,有時不在等等。
與(2)類似,在我看來它破壞了數據庫的純度。就像很多人建議反對在字段中存儲HTML一樣,我建議不要存儲原始XML。
儘管有這三點......它可以工作,TSQL絕對支持對它的查詢。
您是否正在閱讀的領域比你寫的更多?
您想要在最不經常的步驟或不涉及用戶的步驟上進行轉換。
我們只寫一次數據。所以每次我們讀取數據時,都必須查看XML。 –
您是否有任何文檔鏈接支持在TSQL中查詢XML的速度很慢?這正是我正在尋求支持我的論點。謝謝瑞恩! –
http://stackoverflow.com/questions/6270857/are-select-for-xml-querys-slow特別注意XML是如何作爲CLR類型實現的。另外我不確定這是否值得,但我個人的經驗是,對XML的查詢很慢。 – ryan1234