我正在尋找關於如何在SQL Server 2012數據庫中存儲「數組」和「字典」類型信息的建議。到現在爲止,我已經使用XML類型,因爲我可以很容易地查詢這個已經,並且它們可以被簡單地表示,如:在SQL Server中存儲「字典」和「數組」
<Array><i>1</i><i>2</i><i>3</i></Array>
<Dictionary><Item1>Value1</Item1><Item2>Value2</Item2></Dictionary>
到現在爲止,我認爲XML數據類型將受益PAGE壓縮,但今天我意識到情況並非如此。這是一個相當大的問題,因爲數據庫每天都會存儲數以十萬計的這些記錄,而且似乎很多數據都是這個未壓縮的XML。
所以我正在尋找解決方法。我想我可能會列出這些數據。例如,數據字典表:
[ID] bigint PK,
[OwnerID] bigint,
[Name] varchar(32),
[Value] varchar(32)
和陣列:
[OwnerID] bigint PK
[Index] int PK
[Value] varchar(32)
這工作,但我很擔心如何「可查詢」這種方法是 - 即「WHERE對象ID的X字典正確= Y'。我可以爲此寫一個標量函數,但是我知道會導致性能問題。
我已經閱讀了這個特定的問題,但一般的共識似乎是'使用xml列,不用擔心',但考慮到我需要的數據量,我不'我認爲這對我來說是一種選擇。
任何意見或見解將非常感激。
你有多少數據?我正在做一個類似的方法,我達到了10GB的數據。我正在使用.exists()和主要和次要索引。 –