我打算使用SQL Server爲我的應用程序存儲XML BLOB。我正在努力進行設計決策,並尋找有關本主題經驗豐富的人的指導或建議。設計表來存儲SQL Server 2008 R2中的XML數據
需要作爲XML存儲的數據有大約100個簡單的數據點。它們可以很容易地分成每組20個數據點。在將來的應用程序版本中,我們計劃通過添加新的數據點來增加數據的範圍,其中一些將是分層的(列表,字典等)。
我們不預期需要對XML數據執行查詢。最多他們將是非常簡單的查詢,如果需要,我們可以將任何數據點提升到關係列。
我不確定是否應該創建一個巨大的XML BLOB來保存所有這些數據,或者是否應該將其分解爲多個XML列。在SQL Server 2008 R2中是否有任何有關處理XML數據類型的最佳實踐或準則可以幫助我做出最佳決策?它甚至重要嗎?
編輯:我已經設置使用XML作爲數據類型,我試圖做出是否我應該使用一個大的BLOB或將其分解成多個XML列的決定。
你見過? http://msdn.microsoft.com/en-us/library/hh403385.aspx –
Mikael,我已經讀過這個了。不過,我仍然不確定是將我的xml分解成多列還是隻有一個巨大的blob。我知道有一個2GB的大小限制,但我不擔心達到這個限制。有一段關於XML粒度的部分我認爲涉及到了我的問題,但說實話我已經多次閱讀過它,但我仍然不知道要走哪條路。 –
如果邏輯上有一個XML列,那麼你應該這樣做。關於粒度的鏈接中提到的內容與在更新時鎖定一小部分數據的行上分割XML的影響有關。使用更多的列對鎖定沒有任何影響。當您使用XML索引時,更新XML的一部分時,該鏈接還提到了優化,並且在不更新列時不應該更快地更新。 –